aboutsummaryrefslogtreecommitdiff
path: root/drivers/gles3/rasterizer_storage_gles3.cpp
diff options
context:
space:
mode:
authorJuan Linietsky2017-07-26 00:39:41 -0300
committerJuan Linietsky2017-07-26 00:40:32 -0300
commitf5277e347df4228fc875acaa3acb9581a30ab43e (patch)
treed84c8a326acfd95ed143789eb9f6bed14a2c5a23 /drivers/gles3/rasterizer_storage_gles3.cpp
parentd2d48e2a7a7ed04331597bcfd7b6c719da2b67c3 (diff)
downloadgodot-f5277e347df4228fc875acaa3acb9581a30ab43e.tar.gz
godot-f5277e347df4228fc875acaa3acb9581a30ab43e.tar.zst
godot-f5277e347df4228fc875acaa3acb9581a30ab43e.zip
Fixes to glow and auto exposure, closes #9797, closes #9106
Diffstat (limited to 'drivers/gles3/rasterizer_storage_gles3.cpp')
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp
index 76df57d41..4eb44197a 100644
--- a/drivers/gles3/rasterizer_storage_gles3.cpp
+++ b/drivers/gles3/rasterizer_storage_gles3.cpp
@@ -6189,6 +6189,8 @@ void RasterizerStorageGLES3::_render_target_allocate(RenderTarget *rt) {
glBindTexture(GL_TEXTURE_2D, rt->effects.mip_maps[i].color);
int level = 0;
+ int fb_w = w;
+ int fb_h = h;
while (true) {
@@ -6206,13 +6208,15 @@ void RasterizerStorageGLES3::_render_target_allocate(RenderTarget *rt) {
level++;
}
- glTexStorage2DCustom(GL_TEXTURE_2D, level + 1, color_internal_format, rt->width, rt->height, color_format, color_type);
+ glTexStorage2DCustom(GL_TEXTURE_2D, level + 1, color_internal_format, fb_w, fb_h, color_format, color_type);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, level);
glDisable(GL_SCISSOR_TEST);
glColorMask(1, 1, 1, 1);
- glDepthMask(GL_TRUE);
+ if (rt->buffers.active == false) {
+ glDepthMask(GL_TRUE);
+ }
for (int j = 0; j < rt->effects.mip_maps[i].sizes.size(); j++) {
@@ -6235,7 +6239,6 @@ void RasterizerStorageGLES3::_render_target_allocate(RenderTarget *rt) {
float zero[4] = { 1, 0, 1, 0 };
glViewport(0, 0, rt->effects.mip_maps[i].sizes[j].width, rt->effects.mip_maps[i].sizes[j].height);
-
glClearBufferfv(GL_COLOR, 0, zero);
if (used_depth) {
glClearBufferfi(GL_DEPTH_STENCIL, 0, 1.0, 0);