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