summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/renderer_compositor_rd.h
diff options
context:
space:
mode:
authorBastiaan Olij <mux213@gmail.com>2021-05-11 23:08:38 +1000
committerBastiaan Olij <mux213@gmail.com>2021-05-12 22:52:28 +1000
commit02980be83443ab685651cec7967f1e939351e55e (patch)
treeb12e6dbf54c96d77075d19cf5e47eb774d99e5d2 /servers/rendering/renderer_rd/renderer_compositor_rd.h
parent0c693f878147d6c1e1a5fc48a92a40b189c915ad (diff)
downloadredot-engine-02980be83443ab685651cec7967f1e939351e55e.tar.gz
Implementing blit shader with versions
Diffstat (limited to 'servers/rendering/renderer_rd/renderer_compositor_rd.h')
-rw-r--r--servers/rendering/renderer_rd/renderer_compositor_rd.h35
1 files changed, 30 insertions, 5 deletions
diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.h b/servers/rendering/renderer_rd/renderer_compositor_rd.h
index b3865de2bf..52552f7ee3 100644
--- a/servers/rendering/renderer_rd/renderer_compositor_rd.h
+++ b/servers/rendering/renderer_rd/renderer_compositor_rd.h
@@ -38,6 +38,7 @@
#include "servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h"
#include "servers/rendering/renderer_rd/renderer_canvas_render_rd.h"
#include "servers/rendering/renderer_rd/renderer_storage_rd.h"
+#include "servers/rendering/renderer_rd/shaders/blit.glsl.gen.h"
class RendererCompositorRD : public RendererCompositor {
protected:
@@ -45,11 +46,35 @@ protected:
RendererStorageRD *storage;
RendererSceneRenderRD *scene;
- RID copy_viewports_rd_shader;
- RID copy_viewports_rd_pipeline;
- RID copy_viewports_rd_index_buffer;
- RID copy_viewports_rd_array;
- RID copy_viewports_sampler;
+ enum BlitMode {
+ BLIT_MODE_NORMAL,
+ BLIT_MODE_USE_LAYER,
+ BLIT_MODE_LENS,
+ BLIT_MODE_MAX
+ };
+
+ struct BlitPushConstant {
+ float rect[4];
+
+ float eye_center[2];
+ float k1;
+ float k2;
+
+ float upscale;
+ float aspect_ratio;
+ uint32_t layer;
+ uint32_t pad1;
+ };
+
+ struct Blit {
+ BlitPushConstant push_constant;
+ BlitShaderRD shader;
+ RID shader_version;
+ RID pipelines[BLIT_MODE_MAX];
+ RID index_buffer;
+ RID array;
+ RID sampler;
+ } blit;
Map<RID, RID> render_target_descriptors;