|
@@ -147,20 +147,17 @@ void OpenGLState::Apply() {
|
|
|
|
|
|
|
|
// Textures
|
|
// Textures
|
|
|
for (unsigned texture_index = 0; texture_index < ARRAY_SIZE(texture_units); ++texture_index) {
|
|
for (unsigned texture_index = 0; texture_index < ARRAY_SIZE(texture_units); ++texture_index) {
|
|
|
- if (texture_units[texture_index].enabled_2d != cur_state.texture_units[texture_index].enabled_2d) {
|
|
|
|
|
|
|
+ if (texture_units[texture_index].enabled_2d != cur_state.texture_units[texture_index].enabled_2d ||
|
|
|
|
|
+ texture_units[texture_index].texture_2d != cur_state.texture_units[texture_index].texture_2d) {
|
|
|
|
|
+
|
|
|
glActiveTexture(GL_TEXTURE0 + texture_index);
|
|
glActiveTexture(GL_TEXTURE0 + texture_index);
|
|
|
|
|
|
|
|
if (texture_units[texture_index].enabled_2d) {
|
|
if (texture_units[texture_index].enabled_2d) {
|
|
|
- glEnable(GL_TEXTURE_2D);
|
|
|
|
|
|
|
+ glBindTexture(GL_TEXTURE_2D, texture_units[texture_index].texture_2d);
|
|
|
} else {
|
|
} else {
|
|
|
- glDisable(GL_TEXTURE_2D);
|
|
|
|
|
|
|
+ glBindTexture(GL_TEXTURE_2D, 0);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- if (texture_units[texture_index].texture_2d != cur_state.texture_units[texture_index].texture_2d) {
|
|
|
|
|
- glActiveTexture(GL_TEXTURE0 + texture_index);
|
|
|
|
|
- glBindTexture(GL_TEXTURE_2D, texture_units[texture_index].texture_2d);
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Framebuffer
|
|
// Framebuffer
|