fixed a bug on macos, nothing got rendered with disabled vertex attrib arrays

This commit is contained in:
Thomas Friedel 2020-06-02 11:06:21 +02:00
parent 5eb5dc34e1
commit 6586c5c7d1
2 changed files with 15 additions and 0 deletions

View file

@ -35,6 +35,7 @@ func (b *GoGLBackend) Clip(pts []backendbase.Vec) {
gl.BindBuffer(gl.ARRAY_BUFFER, b.buf)
gl.BufferData(gl.ARRAY_BUFFER, len(b.ptsBuf)*4, unsafe.Pointer(&b.ptsBuf[0]), gl.STREAM_DRAW)
gl.VertexAttribPointer(b.shd.Vertex, 2, gl.FLOAT, false, 0, nil)
gl.VertexAttribPointer(b.shd.TexCoord, 2, gl.FLOAT, false, 0, nil)
gl.UseProgram(b.shd.ID)
gl.Uniform4f(b.shd.Color, 1, 1, 1, 1)
@ -44,6 +45,7 @@ func (b *GoGLBackend) Clip(pts []backendbase.Vec) {
gl.Uniform1i(b.shd.UseAlphaTex, 0)
gl.Uniform1i(b.shd.Func, shdFuncSolid)
gl.EnableVertexAttribArray(b.shd.Vertex)
gl.EnableVertexAttribArray(b.shd.TexCoord)
gl.ColorMask(false, false, false, false)
@ -66,6 +68,7 @@ func (b *GoGLBackend) Clip(pts []backendbase.Vec) {
gl.DrawArrays(gl.TRIANGLE_FAN, 0, 4)
gl.DisableVertexAttribArray(b.shd.Vertex)
gl.DisableVertexAttribArray(b.shd.TexCoord)
gl.ColorMask(true, true, true, true)
gl.StencilOp(gl.KEEP, gl.KEEP, gl.KEEP)

View file

@ -49,9 +49,12 @@ func (b *GoGLBackend) Clear(pts [4]backendbase.Vec) {
gl.StencilFunc(gl.EQUAL, 0, 0xFF)
gl.VertexAttribPointer(b.shd.Vertex, 2, gl.FLOAT, false, 0, nil)
gl.VertexAttribPointer(b.shd.TexCoord, 2, gl.FLOAT, false, 0, nil)
gl.EnableVertexAttribArray(b.shd.Vertex)
gl.EnableVertexAttribArray(b.shd.TexCoord)
gl.DrawArrays(gl.TRIANGLE_FAN, 0, 4)
gl.DisableVertexAttribArray(b.shd.Vertex)
gl.DisableVertexAttribArray(b.shd.TexCoord)
gl.StencilFunc(gl.ALWAYS, 0, 0xFF)
@ -120,9 +123,12 @@ func (b *GoGLBackend) Fill(style *backendbase.FillStyle, pts []backendbase.Vec,
gl.StencilFunc(gl.EQUAL, 0, 0xFF)
gl.EnableVertexAttribArray(vertex)
gl.EnableVertexAttribArray(b.shd.TexCoord)
gl.VertexAttribPointer(vertex, 2, gl.FLOAT, false, 0, nil)
gl.VertexAttribPointer(b.shd.TexCoord, 2, gl.FLOAT, false, 0, nil)
gl.DrawArrays(mode, 4, int32(len(pts)))
gl.DisableVertexAttribArray(vertex)
gl.DisableVertexAttribArray(b.shd.TexCoord)
gl.StencilFunc(gl.ALWAYS, 0, 0xFF)
} else {
gl.ColorMask(false, false, false, false)
@ -140,9 +146,12 @@ func (b *GoGLBackend) Fill(style *backendbase.FillStyle, pts []backendbase.Vec,
gl.Uniform1i(b.shd.Func, shdFuncSolid)
gl.EnableVertexAttribArray(b.shd.Vertex)
gl.EnableVertexAttribArray(b.shd.TexCoord)
gl.VertexAttribPointer(b.shd.Vertex, 2, gl.FLOAT, false, 0, nil)
gl.VertexAttribPointer(b.shd.TexCoord, 2, gl.FLOAT, false, 0, nil)
gl.DrawArrays(mode, 4, int32(len(pts)))
gl.DisableVertexAttribArray(b.shd.Vertex)
gl.DisableVertexAttribArray(b.shd.TexCoord)
gl.ColorMask(true, true, true, true)
@ -150,10 +159,13 @@ func (b *GoGLBackend) Fill(style *backendbase.FillStyle, pts []backendbase.Vec,
vertex, _ := b.useShader(style, mat3identity, false, 0)
gl.EnableVertexAttribArray(vertex)
gl.EnableVertexAttribArray(b.shd.TexCoord)
gl.VertexAttribPointer(vertex, 2, gl.FLOAT, false, 0, nil)
gl.VertexAttribPointer(b.shd.TexCoord, 2, gl.FLOAT, false, 0, nil)
gl.DrawArrays(gl.TRIANGLE_FAN, 0, 4)
gl.DisableVertexAttribArray(vertex)
gl.DisableVertexAttribArray(b.shd.TexCoord)
gl.StencilOp(gl.KEEP, gl.KEEP, gl.KEEP)
gl.StencilFunc(gl.ALWAYS, 0, 0xFF)