diff options
Diffstat (limited to 'servers/rendering_server.h')
-rw-r--r-- | servers/rendering_server.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/servers/rendering_server.h b/servers/rendering_server.h index 6b00213440..02a90dad3b 100644 --- a/servers/rendering_server.h +++ b/servers/rendering_server.h @@ -816,6 +816,7 @@ public: virtual void camera_set_cull_mask(RID p_camera, uint32_t p_layers) = 0; virtual void camera_set_environment(RID p_camera, RID p_env) = 0; virtual void camera_set_camera_attributes(RID p_camera, RID p_camera_attributes) = 0; + virtual void camera_set_compositor(RID p_camera, RID p_compositor) = 0; virtual void camera_set_use_vertical_aspect(RID p_camera, bool p_enable) = 0; /* VIEWPORT API */ @@ -1046,6 +1047,37 @@ public: virtual void sky_set_material(RID p_sky, RID p_material) = 0; virtual Ref<Image> sky_bake_panorama(RID p_sky, float p_energy, bool p_bake_irradiance, const Size2i &p_size) = 0; + /* COMPOSITOR EFFECTS API */ + + enum CompositorEffectFlags { + COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR = 1, + COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH = 2, + COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS = 4, + COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS = 8, + COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR = 16, + }; + + enum CompositorEffectCallbackType { + COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE, + COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE, + COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY, + COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT, + COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT, + COMPOSITOR_EFFECT_CALLBACK_TYPE_MAX, + COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY = -1, + }; + + virtual RID compositor_effect_create() = 0; + virtual void compositor_effect_set_enabled(RID p_effect, bool p_enabled) = 0; + virtual void compositor_effect_set_callback(RID p_effect, CompositorEffectCallbackType p_callback_type, const Callable &p_callback) = 0; + virtual void compositor_effect_set_flag(RID p_effect, CompositorEffectFlags p_flag, bool p_set) = 0; + + /* COMPOSITOR API */ + + virtual RID compositor_create() = 0; + + virtual void compositor_set_compositor_effects(RID p_compositor, const TypedArray<RID> &p_effects) = 0; + /* ENVIRONMENT API */ virtual RID environment_create() = 0; @@ -1241,6 +1273,7 @@ public: virtual void scenario_set_environment(RID p_scenario, RID p_environment) = 0; virtual void scenario_set_fallback_environment(RID p_scenario, RID p_environment) = 0; virtual void scenario_set_camera_attributes(RID p_scenario, RID p_camera_attributes) = 0; + virtual void scenario_set_compositor(RID p_scenario, RID p_compositor) = 0; /* INSTANCING API */ @@ -1737,6 +1770,8 @@ VARIANT_ENUM_CAST(RenderingServer::ViewportSDFOversize); VARIANT_ENUM_CAST(RenderingServer::ViewportSDFScale); VARIANT_ENUM_CAST(RenderingServer::ViewportVRSMode); VARIANT_ENUM_CAST(RenderingServer::SkyMode); +VARIANT_ENUM_CAST(RenderingServer::CompositorEffectCallbackType); +VARIANT_ENUM_CAST(RenderingServer::CompositorEffectFlags); VARIANT_ENUM_CAST(RenderingServer::EnvironmentBG); VARIANT_ENUM_CAST(RenderingServer::EnvironmentAmbientSource); VARIANT_ENUM_CAST(RenderingServer::EnvironmentReflectionSource); |