gpu/internal/opengl: avoid crash when uniform buffers are not supported

Found by Dan Kortschak.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2021-08-21 16:06:45 +02:00
parent c9970cb8e3
commit 6ee8a1cb7c
+7 -4
View File
@@ -1008,16 +1008,19 @@ func (b *Backend) BindFragmentUniforms(buf driver.Buffer) {
func (p *program) updateUniforms() { func (p *program) updateUniforms() {
f := p.backend.funcs f := p.backend.funcs
if p.backend.ubo {
if b := p.backend.vertUniforms; b != nil { if b := p.backend.vertUniforms; b != nil {
if p.backend.ubo {
p.backend.glstate.bindBufferBase(f, gl.UNIFORM_BUFFER, 0, b.obj) p.backend.glstate.bindBufferBase(f, gl.UNIFORM_BUFFER, 0, b.obj)
} else {
p.vertUniforms.update(f, b)
}
} }
if b := p.backend.fragUniforms; b != nil { if b := p.backend.fragUniforms; b != nil {
if p.backend.ubo {
p.backend.glstate.bindBufferBase(f, gl.UNIFORM_BUFFER, 1, b.obj) p.backend.glstate.bindBufferBase(f, gl.UNIFORM_BUFFER, 1, b.obj)
}
} else { } else {
p.vertUniforms.update(f, p.backend.vertUniforms) p.fragUniforms.update(f, b)
p.fragUniforms.update(f, p.backend.fragUniforms) }
} }
} }