fix shader creation in window

This commit is contained in:
faiface 2016-12-16 20:46:24 +01:00
parent ddfede847e
commit 1c8297b7ab
1 changed files with 10 additions and 11 deletions

View File

@ -56,7 +56,6 @@ type Window struct {
enabled bool enabled bool
window *glfw.Window window *glfw.Window
config WindowConfig config WindowConfig
contextHolder pixelgl.ContextHolder
defaultShader *pixelgl.Shader defaultShader *pixelgl.Shader
// need to save these to correctly restore a fullscreen window // need to save these to correctly restore a fullscreen window
@ -107,20 +106,20 @@ func NewWindow(config WindowConfig) (*Window, error) {
w.SetFullscreen(config.Fullscreen) w.SetFullscreen(config.Fullscreen)
defaultShader, err := pixelgl.NewShader( w.Do(func(pixelgl.Context) {
&w.contextHolder, w.defaultShader, err = pixelgl.NewShader(
defaultVertexFormat, pixelgl.NoOpDoer,
defaultUniformFormat, defaultVertexFormat,
defaultVertexShader, defaultUniformFormat,
defaultFragmentShader, 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.defaultShader = defaultShader
return w, nil return w, nil
} }
@ -304,7 +303,7 @@ func (w *Window) Do(sub func(pixelgl.Context)) {
if w.defaultShader != nil { if w.defaultShader != nil {
w.defaultShader.Do(sub) w.defaultShader.Do(sub)
} else { } else {
w.contextHolder.Do(sub) sub(pixelgl.Context{})
} }
w.enabled = false w.enabled = false
} }