fix window context holder
This commit is contained in:
parent
2af64d4204
commit
63c9ab68e2
|
@ -55,6 +55,7 @@ type Window struct {
|
||||||
window *glfw.Window
|
window *glfw.Window
|
||||||
config WindowConfig
|
config WindowConfig
|
||||||
contextHolder pixelgl.ContextHolder
|
contextHolder pixelgl.ContextHolder
|
||||||
|
defaultShader *pixelgl.Shader
|
||||||
|
|
||||||
// need to save these to correctly restore a fullscreen window
|
// need to save these to correctly restore a fullscreen window
|
||||||
restore struct {
|
restore struct {
|
||||||
|
@ -104,13 +105,13 @@ func NewWindow(config WindowConfig) (*Window, error) {
|
||||||
|
|
||||||
w.SetFullscreen(config.Fullscreen)
|
w.SetFullscreen(config.Fullscreen)
|
||||||
|
|
||||||
defaultShader, err := pixelgl.NewShader(w, defaultVertexFormat, defaultUniformFormat, defaultVertexShader, defaultFragmentShader)
|
defaultShader, err := pixelgl.NewShader(&w.contextHolder, defaultVertexFormat, defaultUniformFormat, defaultVertexShader, defaultFragmentShader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.Delete()
|
w.Delete()
|
||||||
return nil, errors.Wrap(err, "creating window failed")
|
return nil, errors.Wrap(err, "creating window failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
w.contextHolder.Context = pixelgl.Context{}.WithShader(defaultShader)
|
w.defaultShader = defaultShader
|
||||||
|
|
||||||
return w, nil
|
return w, nil
|
||||||
}
|
}
|
||||||
|
@ -311,7 +312,11 @@ func (w *Window) Do(sub func(pixelgl.Context)) {
|
||||||
currentWindow.handler = w
|
currentWindow.handler = w
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if w.defaultShader != nil {
|
||||||
|
w.defaultShader.Do(sub)
|
||||||
|
} else {
|
||||||
w.contextHolder.Do(sub)
|
w.contextHolder.Do(sub)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var defaultVertexFormat = pixelgl.VertexFormat{
|
var defaultVertexFormat = pixelgl.VertexFormat{
|
||||||
|
|
Loading…
Reference in New Issue