summaryrefslogtreecommitdiffstats
path: root/drivers/gles3/storage/texture_storage.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-01-08 11:50:12 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-01-08 11:50:12 +0100
commit774c4631fd316cb51eb45c6972bfd54633ed86f9 (patch)
tree746e967a391d4c2ee0a3101876082c4a2e83f2b3 /drivers/gles3/storage/texture_storage.cpp
parentdf29fc91edabf712d5e597d0ddd4cf015d99722e (diff)
parente69968b79432d1a3f9544e70b634f8fe08cb1aa8 (diff)
downloadredot-engine-774c4631fd316cb51eb45c6972bfd54633ed86f9.tar.gz
Merge pull request #84733 from clayjohn/GL-CanvasGroup-performance
Only copy the relevant portion of the screen when copying to backbuffer in Compatibility backend
Diffstat (limited to 'drivers/gles3/storage/texture_storage.cpp')
-rw-r--r--drivers/gles3/storage/texture_storage.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gles3/storage/texture_storage.cpp b/drivers/gles3/storage/texture_storage.cpp
index a44352a3e4..dc47338b05 100644
--- a/drivers/gles3/storage/texture_storage.cpp
+++ b/drivers/gles3/storage/texture_storage.cpp
@@ -2647,7 +2647,10 @@ void TextureStorage::render_target_copy_to_back_buffer(RID p_render_target, cons
glBindFramebuffer(GL_FRAMEBUFFER, rt->backbuffer_fbo);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, rt->color);
- GLES3::CopyEffects::get_singleton()->copy_screen();
+ Rect2 normalized_region = region;
+ normalized_region.position = normalized_region.position / Size2(rt->size);
+ normalized_region.size = normalized_region.size / Size2(rt->size);
+ GLES3::CopyEffects::get_singleton()->copy_to_and_from_rect(normalized_region);
if (p_gen_mipmaps) {
GLES3::CopyEffects::get_singleton()->gaussian_blur(rt->backbuffer, rt->mipmap_count, region, rt->size);