diff options
author | Qiqi Wu <1258552199@qq.com> | 2023-06-21 16:13:01 +0800 |
---|---|---|
committer | Qiqi Wu <1258552199@qq.com> | 2023-06-22 09:13:24 +0800 |
commit | df740f686541c69fc44247ec4a303cc9eeca56c3 (patch) | |
tree | 48f5bcd3f13e8bbfda68bb5589d804fde76f745b /drivers/gles3/storage/texture_storage.cpp | |
parent | b6ba664830d9ff1bd7eeb72294fa1e7a3827e42e (diff) | |
download | redot-engine-df740f686541c69fc44247ec4a303cc9eeca56c3.tar.gz |
free color and depth texture after check framebuffer complete failed
Diffstat (limited to 'drivers/gles3/storage/texture_storage.cpp')
-rw-r--r-- | drivers/gles3/storage/texture_storage.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gles3/storage/texture_storage.cpp b/drivers/gles3/storage/texture_storage.cpp index f362a21d8c..59a483da39 100644 --- a/drivers/gles3/storage/texture_storage.cpp +++ b/drivers/gles3/storage/texture_storage.cpp @@ -1744,7 +1744,12 @@ void TextureStorage::_update_render_target(RenderTarget *rt) { GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); if (status != GL_FRAMEBUFFER_COMPLETE) { glDeleteFramebuffers(1, &rt->fbo); - GLES3::Utilities::get_singleton()->texture_free_data(rt->color); + if (rt->overridden.color.is_null()) { + GLES3::Utilities::get_singleton()->texture_free_data(rt->color); + } + if (rt->overridden.depth.is_null()) { + GLES3::Utilities::get_singleton()->texture_free_data(rt->depth); + } rt->fbo = 0; rt->size.x = 0; rt->size.y = 0; |