fix window context holder

This commit is contained in:
faiface 2016-12-03 01:45:47 +01:00
parent 2af64d4204
commit 63c9ab68e2
1 changed files with 8 additions and 3 deletions

View File

@ -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{