diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-01-08 11:50:12 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-01-08 11:50:12 +0100 |
commit | 774c4631fd316cb51eb45c6972bfd54633ed86f9 (patch) | |
tree | 746e967a391d4c2ee0a3101876082c4a2e83f2b3 /drivers/gles3/storage/texture_storage.cpp | |
parent | df29fc91edabf712d5e597d0ddd4cf015d99722e (diff) | |
parent | e69968b79432d1a3f9544e70b634f8fe08cb1aa8 (diff) | |
download | redot-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.cpp | 5 |
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); |