summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-02-12 23:29:32 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-02-12 23:29:32 +0100
commit3be3d5099cc75a2db544b3a0964a430c3eb00909 (patch)
treec9741446ca06cfddf7a0861749565d0932ce243a /servers/rendering/renderer_rd/renderer_compositor_rd.cpp
parentc66f87daa796f4ddea70156f5fec582db6c525f6 (diff)
parent73eff10c76c201a083193c044de1836217b4d72b (diff)
downloadredot-engine-3be3d5099cc75a2db544b3a0964a430c3eb00909.tar.gz
Merge pull request #87340 from DarioSamo/rd_common_context
Finish splitting functionality of the `RenderingDevice` backends into `RenderingDeviceDriver`.
Diffstat (limited to 'servers/rendering/renderer_rd/renderer_compositor_rd.cpp')
-rw-r--r--servers/rendering/renderer_rd/renderer_compositor_rd.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
index a69877e680..012451a5cd 100644
--- a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
@@ -33,16 +33,16 @@
#include "core/config/project_settings.h"
#include "core/io/dir_access.h"
-void RendererCompositorRD::prepare_for_blitting_render_targets() {
- RD::get_singleton()->prepare_screen_for_drawing();
-}
-
void RendererCompositorRD::blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const BlitToScreen *p_render_targets, int p_amount) {
- RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin_for_screen(p_screen);
- if (draw_list == RD::INVALID_ID) {
- return; // Window is minimized and does not have valid swapchain, skip drawing without printing errors.
+ Error err = RD::get_singleton()->screen_prepare_for_drawing(p_screen);
+ if (err != OK) {
+ // Window is minimized and does not have valid swapchain, skip drawing without printing errors.
+ return;
}
+ RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin_for_screen(p_screen);
+ ERR_FAIL_COND(draw_list == RD::INVALID_ID);
+
for (int i = 0; i < p_amount; i++) {
RID rd_texture = texture_storage->render_target_get_rd_texture(p_render_targets[i].render_target);
ERR_CONTINUE(rd_texture.is_null());
@@ -122,7 +122,7 @@ void RendererCompositorRD::initialize() {
blit.shader_version = blit.shader.version_create();
for (int i = 0; i < BLIT_MODE_MAX; i++) {
- blit.pipelines[i] = RD::get_singleton()->render_pipeline_create(blit.shader.version_get_shader(blit.shader_version, i), RD::get_singleton()->screen_get_framebuffer_format(), RD::INVALID_ID, RD::RENDER_PRIMITIVE_TRIANGLES, RD::PipelineRasterizationState(), RD::PipelineMultisampleState(), RD::PipelineDepthStencilState(), i == BLIT_MODE_NORMAL_ALPHA ? RenderingDevice::PipelineColorBlendState::create_blend() : RenderingDevice::PipelineColorBlendState::create_disabled(), 0);
+ blit.pipelines[i] = RD::get_singleton()->render_pipeline_create(blit.shader.version_get_shader(blit.shader_version, i), RD::get_singleton()->screen_get_framebuffer_format(DisplayServer::MAIN_WINDOW_ID), RD::INVALID_ID, RD::RENDER_PRIMITIVE_TRIANGLES, RD::PipelineRasterizationState(), RD::PipelineMultisampleState(), RD::PipelineDepthStencilState(), i == BLIT_MODE_NORMAL_ALPHA ? RenderingDevice::PipelineColorBlendState::create_blend() : RenderingDevice::PipelineColorBlendState::create_disabled(), 0);
}
//create index array for copy shader
@@ -169,7 +169,7 @@ void RendererCompositorRD::set_boot_image(const Ref<Image> &p_image, const Color
return;
}
- RD::get_singleton()->prepare_screen_for_drawing();
+ RD::get_singleton()->screen_prepare_for_drawing(DisplayServer::MAIN_WINDOW_ID);
RID texture = texture_storage->texture_allocate();
texture_storage->texture_2d_initialize(texture, p_image);