瀏覽代碼

Fix the active GL texture unit not always being set properly.

Fixes issues where texture methods wouldn't have any effect, depending on the current internal opengl state.
Alex Szpakowski 5 年之前
父節點
當前提交
9c2454816f
共有 1 個文件被更改,包括 5 次插入0 次删除
  1. 5 0
      src/modules/graphics/opengl/OpenGL.cpp

+ 5 - 0
src/modules/graphics/opengl/OpenGL.cpp

@@ -993,6 +993,11 @@ void OpenGL::bindTextureToUnit(TextureType target, GLuint texture, int textureun
 		else
 			state.curTextureUnit = textureunit;
 	}
+	else if (!restoreprev && textureunit != state.curTextureUnit)
+	{
+		glActiveTexture(GL_TEXTURE0 + textureunit);
+		state.curTextureUnit = textureunit;
+	}
 }
 
 void OpenGL::bindTextureToUnit(Texture *texture, int textureunit, bool restoreprev)