Reset gl state after drawing UI in drawUI

This commit is contained in:
bloeys
2022-01-23 07:50:50 +04:00
parent 6dee7b0f1d
commit e1e617e4e4
2 changed files with 8 additions and 12 deletions

View File

@ -90,7 +90,6 @@ func initOpenGL() error {
} }
gl.Enable(gl.DEPTH_TEST) gl.Enable(gl.DEPTH_TEST)
gl.Enable(gl.CULL_FACE) gl.Enable(gl.CULL_FACE)
gl.CullFace(gl.BACK) gl.CullFace(gl.BACK)
gl.FrontFace(gl.CCW) gl.FrontFace(gl.CCW)

19
main.go
View File

@ -355,8 +355,9 @@ func runGameLogic() {
func draw() { func draw() {
simpleMat.Bind() gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
simpleMat.Bind()
cubeMesh.BufObj.Bind() cubeMesh.BufObj.Bind()
tempModelMat := modelMat.Clone() tempModelMat := modelMat.Clone()
@ -373,13 +374,8 @@ func draw() {
cubeMesh.BufObj.UnBind() cubeMesh.BufObj.UnBind()
drawUI() drawUI()
window.SDLWin.GLSwap()
//Reset imgui changes before next draw window.SDLWin.GLSwap()
gl.Disable(gl.SCISSOR_TEST)
gl.Enable(gl.CULL_FACE)
gl.Enable(gl.DEPTH_TEST)
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
} }
func drawUI() { func drawUI() {
@ -455,7 +451,6 @@ func drawUI() {
} else { } else {
gl.BindTexture(gl.TEXTURE_2D, imguiInfo.texID) gl.BindTexture(gl.TEXTURE_2D, imguiInfo.texID)
// gl.BindTexture(gl.TEXTURE_2D, uint32(cmd.TextureID()))
clipRect := cmd.ClipRect() clipRect := cmd.ClipRect()
gl.Scissor(int32(clipRect.X), int32(fbHeight)-int32(clipRect.W), int32(clipRect.Z-clipRect.X), int32(clipRect.W-clipRect.Y)) gl.Scissor(int32(clipRect.X), int32(fbHeight)-int32(clipRect.W), int32(clipRect.Z-clipRect.X), int32(clipRect.W-clipRect.Y))
@ -464,7 +459,9 @@ func drawUI() {
} }
} }
gl.BindVertexArray(imguiInfo.vaoID) //Reset gl state
gl.BindBuffer(gl.ARRAY_BUFFER, imguiInfo.vboID) gl.Disable(gl.BLEND)
gl.BindBuffer(gl.ELEMENT_ARRAY_BUFFER, imguiInfo.indexBufID) gl.Disable(gl.SCISSOR_TEST)
gl.Enable(gl.CULL_FACE)
gl.Enable(gl.DEPTH_TEST)
} }