From bb0a0f485e5937df16b3d21c6ac97ea5719367eb Mon Sep 17 00:00:00 2001 From: Alexandru-Paul Copil Date: Fri, 9 Jul 2021 10:44:48 +0300 Subject: [PATCH] Optimize *GLShader.Update() by allocating array before for loop --- pixelgl/glshader.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pixelgl/glshader.go b/pixelgl/glshader.go index 3d10aa0..c76c9a3 100644 --- a/pixelgl/glshader.go +++ b/pixelgl/glshader.go @@ -68,13 +68,14 @@ func NewGLShader(fragmentShader string) *GLShader { // Update reinitialize GLShader data and recompile the underlying gl shader object func (gs *GLShader) Update() { - gs.uf = nil - for _, u := range gs.uniforms { - gs.uf = append(gs.uf, glhf.Attr{ - Name: u.Name, - Type: u.Type, - }) + gs.uf = make([]glhf.Attr, len(gs.uniforms)) + for idx := range gs.uniforms { + gs.uf[idx] = glhf.Attr{ + Name: gs.uniforms[idx].Name, + Type: gs.uniforms[idx].Type, + } } + var shader *glhf.Shader mainthread.Call(func() { var err error