Optimize *GLShader.Update() by allocating array before for loop

This commit is contained in:
Alexandru-Paul Copil 2021-07-09 10:44:48 +03:00
parent aae9927b58
commit bb0a0f485e
1 changed files with 7 additions and 6 deletions

View File

@ -68,13 +68,14 @@ func NewGLShader(fragmentShader string) *GLShader {
// Update reinitialize GLShader data and recompile the underlying gl shader object // Update reinitialize GLShader data and recompile the underlying gl shader object
func (gs *GLShader) Update() { func (gs *GLShader) Update() {
gs.uf = nil gs.uf = make([]glhf.Attr, len(gs.uniforms))
for _, u := range gs.uniforms { for idx := range gs.uniforms {
gs.uf = append(gs.uf, glhf.Attr{ gs.uf[idx] = glhf.Attr{
Name: u.Name, Name: gs.uniforms[idx].Name,
Type: u.Type, Type: gs.uniforms[idx].Type,
}) }
} }
var shader *glhf.Shader var shader *glhf.Shader
mainthread.Call(func() { mainthread.Call(func() {
var err error var err error