Moved default NewRendererOptions to generic part instead of in specific renderers.
This commit is contained in:
parent
e2472cffef
commit
f20397c684
@ -11,11 +11,7 @@ func init() {
|
|||||||
|
|
||||||
type rendererFactory struct{}
|
type rendererFactory struct{}
|
||||||
|
|
||||||
func (f rendererFactory) New(title string, width, height int) (ui.Renderer, error) {
|
func (f rendererFactory) New(title string, width, height int, opts ui.NewRendererOptions) (ui.Renderer, error) {
|
||||||
return f.NewOptions(title, width, height, ui.NewRendererOptions{Resizable: true})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f rendererFactory) NewOptions(title string, width, height int, opts ui.NewRendererOptions) (ui.Renderer, error) {
|
|
||||||
renderer, err := NewRenderer(width, height, allg5.NewDisplayOptions{
|
renderer, err := NewRenderer(width, height, allg5.NewDisplayOptions{
|
||||||
Resizable: opts.Resizable,
|
Resizable: opts.Resizable,
|
||||||
Vsync: opts.VSync,
|
Vsync: opts.VSync,
|
||||||
|
@ -11,11 +11,7 @@ func init() {
|
|||||||
|
|
||||||
type rendererFactory struct{}
|
type rendererFactory struct{}
|
||||||
|
|
||||||
func (f rendererFactory) New(title string, width, height int) (ui.Renderer, error) {
|
func (f rendererFactory) New(title string, width, height int, opts ui.NewRendererOptions) (ui.Renderer, error) {
|
||||||
return f.NewOptions(title, width, height, ui.NewRendererOptions{Resizable: true})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f rendererFactory) NewOptions(title string, width, height int, opts ui.NewRendererOptions) (ui.Renderer, error) {
|
|
||||||
return NewRenderer(title, int32(width), int32(height), NewRendererOptions{
|
return NewRenderer(title, int32(width), int32(height), NewRendererOptions{
|
||||||
Location: sdl.Point{X: sdl.WINDOWPOS_UNDEFINED, Y: sdl.WINDOWPOS_UNDEFINED},
|
Location: sdl.Point{X: sdl.WINDOWPOS_UNDEFINED, Y: sdl.WINDOWPOS_UNDEFINED},
|
||||||
Resizable: opts.Resizable,
|
Resizable: opts.Resizable,
|
||||||
|
@ -116,7 +116,7 @@ func (b *basic) Init(ctx ui.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func run() error {
|
func run() error {
|
||||||
var render, err = ui.NewRenderer("Basic Example", 800, 600)
|
var render, err = ui.NewRendererDefault("Basic Example", 800, 600)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -6,18 +6,26 @@ import (
|
|||||||
"opslag.de/schobers/geom"
|
"opslag.de/schobers/geom"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// RendererFactory can be used to inject a new factory for creating renderers.
|
||||||
type RendererFactory interface {
|
type RendererFactory interface {
|
||||||
New(title string, width, height int) (Renderer, error)
|
New(title string, width, height int, opts NewRendererOptions) (Renderer, error)
|
||||||
NewOptions(title string, width, height int, opts NewRendererOptions) (Renderer, error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var rendererFactory RendererFactory
|
var rendererFactory RendererFactory
|
||||||
|
|
||||||
func NewRenderer(title string, width, height int) (Renderer, error) {
|
// NewRenderer creates a new renderer based on the registered renderer factory.
|
||||||
|
func NewRenderer(title string, width, height int, opts NewRendererOptions) (Renderer, error) {
|
||||||
if rendererFactory == nil {
|
if rendererFactory == nil {
|
||||||
return nil, errors.New("no renderer factory registered")
|
return nil, errors.New("no renderer factory registered")
|
||||||
}
|
}
|
||||||
return rendererFactory.New(title, width, height)
|
return rendererFactory.New(title, width, height, opts)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewRendererDefault creates a new renderer with default options set based on the registered renderer factory.
|
||||||
|
func NewRendererDefault(title string, width, height int) (Renderer, error) {
|
||||||
|
return rendererFactory.New(title, width, height, NewRendererOptions{
|
||||||
|
Resizable: true,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetRendererFactory sets the new factory that is used to create a new renderer.
|
// SetRendererFactory sets the new factory that is used to create a new renderer.
|
||||||
@ -25,6 +33,7 @@ func SetRendererFactory(factory RendererFactory) {
|
|||||||
rendererFactory = factory
|
rendererFactory = factory
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewRendererOptions provides options when creating a new renderer.
|
||||||
type NewRendererOptions struct {
|
type NewRendererOptions struct {
|
||||||
Location *geom.PointF32
|
Location *geom.PointF32
|
||||||
Resizable bool
|
Resizable bool
|
||||||
|
Loading…
Reference in New Issue
Block a user