|
|
|
@ -56,16 +56,6 @@ OpenGLState::OpenGLState() { |
|
|
|
texture_unit.swizzle.a = GL_ALPHA; |
|
|
|
} |
|
|
|
|
|
|
|
lighting_lut.texture_buffer = 0; |
|
|
|
|
|
|
|
fog_lut.texture_buffer = 0; |
|
|
|
|
|
|
|
proctex_lut.texture_buffer = 0; |
|
|
|
proctex_diff_lut.texture_buffer = 0; |
|
|
|
proctex_color_map.texture_buffer = 0; |
|
|
|
proctex_alpha_map.texture_buffer = 0; |
|
|
|
proctex_noise_lut.texture_buffer = 0; |
|
|
|
|
|
|
|
draw.read_framebuffer = 0; |
|
|
|
draw.draw_framebuffer = 0; |
|
|
|
draw.vertex_array = 0; |
|
|
|
@ -229,48 +219,6 @@ void OpenGLState::Apply() const { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Lighting LUTs
|
|
|
|
if (lighting_lut.texture_buffer != cur_state.lighting_lut.texture_buffer) { |
|
|
|
glActiveTexture(TextureUnits::LightingLUT.Enum()); |
|
|
|
glBindTexture(GL_TEXTURE_BUFFER, lighting_lut.texture_buffer); |
|
|
|
} |
|
|
|
|
|
|
|
// Fog LUT
|
|
|
|
if (fog_lut.texture_buffer != cur_state.fog_lut.texture_buffer) { |
|
|
|
glActiveTexture(TextureUnits::FogLUT.Enum()); |
|
|
|
glBindTexture(GL_TEXTURE_BUFFER, fog_lut.texture_buffer); |
|
|
|
} |
|
|
|
|
|
|
|
// ProcTex Noise LUT
|
|
|
|
if (proctex_noise_lut.texture_buffer != cur_state.proctex_noise_lut.texture_buffer) { |
|
|
|
glActiveTexture(TextureUnits::ProcTexNoiseLUT.Enum()); |
|
|
|
glBindTexture(GL_TEXTURE_BUFFER, proctex_noise_lut.texture_buffer); |
|
|
|
} |
|
|
|
|
|
|
|
// ProcTex Color Map
|
|
|
|
if (proctex_color_map.texture_buffer != cur_state.proctex_color_map.texture_buffer) { |
|
|
|
glActiveTexture(TextureUnits::ProcTexColorMap.Enum()); |
|
|
|
glBindTexture(GL_TEXTURE_BUFFER, proctex_color_map.texture_buffer); |
|
|
|
} |
|
|
|
|
|
|
|
// ProcTex Alpha Map
|
|
|
|
if (proctex_alpha_map.texture_buffer != cur_state.proctex_alpha_map.texture_buffer) { |
|
|
|
glActiveTexture(TextureUnits::ProcTexAlphaMap.Enum()); |
|
|
|
glBindTexture(GL_TEXTURE_BUFFER, proctex_alpha_map.texture_buffer); |
|
|
|
} |
|
|
|
|
|
|
|
// ProcTex LUT
|
|
|
|
if (proctex_lut.texture_buffer != cur_state.proctex_lut.texture_buffer) { |
|
|
|
glActiveTexture(TextureUnits::ProcTexLUT.Enum()); |
|
|
|
glBindTexture(GL_TEXTURE_BUFFER, proctex_lut.texture_buffer); |
|
|
|
} |
|
|
|
|
|
|
|
// ProcTex Diff LUT
|
|
|
|
if (proctex_diff_lut.texture_buffer != cur_state.proctex_diff_lut.texture_buffer) { |
|
|
|
glActiveTexture(TextureUnits::ProcTexDiffLUT.Enum()); |
|
|
|
glBindTexture(GL_TEXTURE_BUFFER, proctex_diff_lut.texture_buffer); |
|
|
|
} |
|
|
|
|
|
|
|
// Framebuffer
|
|
|
|
if (draw.read_framebuffer != cur_state.draw.read_framebuffer) { |
|
|
|
glBindFramebuffer(GL_READ_FRAMEBUFFER, draw.read_framebuffer); |
|
|
|
@ -344,20 +292,6 @@ OpenGLState& OpenGLState::ResetTexture(GLuint handle) { |
|
|
|
unit.texture_2d = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
if (lighting_lut.texture_buffer == handle) |
|
|
|
lighting_lut.texture_buffer = 0; |
|
|
|
if (fog_lut.texture_buffer == handle) |
|
|
|
fog_lut.texture_buffer = 0; |
|
|
|
if (proctex_noise_lut.texture_buffer == handle) |
|
|
|
proctex_noise_lut.texture_buffer = 0; |
|
|
|
if (proctex_color_map.texture_buffer == handle) |
|
|
|
proctex_color_map.texture_buffer = 0; |
|
|
|
if (proctex_alpha_map.texture_buffer == handle) |
|
|
|
proctex_alpha_map.texture_buffer = 0; |
|
|
|
if (proctex_lut.texture_buffer == handle) |
|
|
|
proctex_lut.texture_buffer = 0; |
|
|
|
if (proctex_diff_lut.texture_buffer == handle) |
|
|
|
proctex_diff_lut.texture_buffer = 0; |
|
|
|
return *this; |
|
|
|
} |
|
|
|
|
|
|
|
|