diff options
| author | Juan Linietsky | 2017-07-26 00:39:41 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2017-07-26 00:40:32 -0300 |
| commit | f5277e347df4228fc875acaa3acb9581a30ab43e (patch) | |
| tree | d84c8a326acfd95ed143789eb9f6bed14a2c5a23 /drivers/gles3/rasterizer_storage_gles3.cpp | |
| parent | d2d48e2a7a7ed04331597bcfd7b6c719da2b67c3 (diff) | |
| download | godot-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.cpp | 9 |
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); |
