|
@@ -1243,36 +1243,36 @@ bool RasterizerSceneGLES3::_setup_material(RasterizerStorageGLES3::Material *p_m
|
|
if (t->render_target)
|
|
if (t->render_target)
|
|
t->render_target->used_in_frame = true;
|
|
t->render_target->used_in_frame = true;
|
|
|
|
|
|
- if (storage->config.srgb_decode_supported) {
|
|
|
|
- //if SRGB decode extension is present, simply switch the texture to whathever is needed
|
|
|
|
- bool must_srgb = false;
|
|
|
|
|
|
+ target = t->target;
|
|
|
|
+ tex = t->tex_id;
|
|
|
|
+ }
|
|
|
|
|
|
- if (t->srgb && (texture_hints[i] == ShaderLanguage::ShaderNode::Uniform::HINT_ALBEDO || texture_hints[i] == ShaderLanguage::ShaderNode::Uniform::HINT_BLACK_ALBEDO)) {
|
|
|
|
- must_srgb = true;
|
|
|
|
- }
|
|
|
|
|
|
+ glBindTexture(target, tex);
|
|
|
|
|
|
- if (t->using_srgb != must_srgb) {
|
|
|
|
- if (must_srgb) {
|
|
|
|
- glTexParameteri(t->target, _TEXTURE_SRGB_DECODE_EXT, _DECODE_EXT);
|
|
|
|
|
|
+ if (t && storage->config.srgb_decode_supported) {
|
|
|
|
+ //if SRGB decode extension is present, simply switch the texture to whathever is needed
|
|
|
|
+ bool must_srgb = false;
|
|
|
|
+
|
|
|
|
+ if (t->srgb && (texture_hints[i] == ShaderLanguage::ShaderNode::Uniform::HINT_ALBEDO || texture_hints[i] == ShaderLanguage::ShaderNode::Uniform::HINT_BLACK_ALBEDO)) {
|
|
|
|
+ must_srgb = true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (t->using_srgb != must_srgb) {
|
|
|
|
+ if (must_srgb) {
|
|
|
|
+ glTexParameteri(t->target, _TEXTURE_SRGB_DECODE_EXT, _DECODE_EXT);
|
|
#ifdef TOOLS_ENABLED
|
|
#ifdef TOOLS_ENABLED
|
|
- if (t->detect_srgb) {
|
|
|
|
- t->detect_srgb(t->detect_srgb_ud);
|
|
|
|
- }
|
|
|
|
|
|
+ if (t->detect_srgb) {
|
|
|
|
+ t->detect_srgb(t->detect_srgb_ud);
|
|
|
|
+ }
|
|
#endif
|
|
#endif
|
|
|
|
|
|
- } else {
|
|
|
|
- glTexParameteri(t->target, _TEXTURE_SRGB_DECODE_EXT, _SKIP_DECODE_EXT);
|
|
|
|
- }
|
|
|
|
- t->using_srgb = must_srgb;
|
|
|
|
|
|
+ } else {
|
|
|
|
+ glTexParameteri(t->target, _TEXTURE_SRGB_DECODE_EXT, _SKIP_DECODE_EXT);
|
|
}
|
|
}
|
|
|
|
+ t->using_srgb = must_srgb;
|
|
}
|
|
}
|
|
-
|
|
|
|
- target = t->target;
|
|
|
|
- tex = t->tex_id;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- glBindTexture(target, tex);
|
|
|
|
-
|
|
|
|
if (i == 0) {
|
|
if (i == 0) {
|
|
state.current_main_tex = tex;
|
|
state.current_main_tex = tex;
|
|
}
|
|
}
|