package allg5ui

import (
	"opslag.de/schobers/allg5"
	"opslag.de/schobers/zntg/ui"
)

func init() {
	ui.SetRendererFactory(&rendererFactory{})
}

type rendererFactory struct{}

func (f rendererFactory) New(title string, width, height int, opts ui.NewRendererOptions) (ui.Renderer, error) {
	renderer, err := NewRenderer(width, height, allg5.NewDisplayOptions{
		Frameless: opts.Borderless,
		Resizable: opts.Resizable,
		Vsync:     opts.VSync,
	})
	if err != nil {
		return nil, err
	}
	renderer.SetWindowTitle(title)
	if opts.Location != nil {
		renderer.SetPosition(*opts.Location)
	}
	return renderer, nil
}