summaryrefslogtreecommitdiff
path: root/drivers/gles3/rasterizer_storage_gles3.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gles3/rasterizer_storage_gles3.h')
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.h57
1 files changed, 52 insertions, 5 deletions
diff --git a/drivers/gles3/rasterizer_storage_gles3.h b/drivers/gles3/rasterizer_storage_gles3.h
index 0e3d47b61f..5f07efeb0a 100644
--- a/drivers/gles3/rasterizer_storage_gles3.h
+++ b/drivers/gles3/rasterizer_storage_gles3.h
@@ -226,6 +226,19 @@ public:
virtual RID texture_create_radiance_cubemap(RID p_source,int p_resolution=-1) const;
+ /* SKYBOX API */
+
+ struct SkyBox : public RID_Data {
+
+ RID cubemap;
+ GLuint radiance;
+ int radiance_size;
+ };
+
+ mutable RID_Owner<SkyBox> skybox_owner;
+
+ virtual RID skybox_create();
+ virtual void skybox_set_texture(RID p_skybox,RID p_cube_map,int p_radiance_size);
/* SHADER API */
@@ -679,18 +692,51 @@ public:
/* PROBE API */
+ struct ReflectionProbe : Instantiable {
+
+ VS::ReflectionProbeUpdateMode update_mode;
+ float intensity;
+ Color interior_ambient;
+ float interior_ambient_energy;
+ float interior_ambient_probe_contrib;
+ float max_distance;
+ Vector3 extents;
+ Vector3 origin_offset;
+ bool interior;
+ bool box_projection;
+ bool enable_shadows;
+ uint32_t cull_mask;
+
+ };
+
+ mutable RID_Owner<ReflectionProbe> reflection_probe_owner;
+
virtual RID reflection_probe_create();
+ virtual void reflection_probe_set_update_mode(RID p_probe, VS::ReflectionProbeUpdateMode p_mode);
virtual void reflection_probe_set_intensity(RID p_probe, float p_intensity);
- virtual void reflection_probe_set_clip(RID p_probe, float p_near, float p_far);
- virtual void reflection_probe_set_min_blend_distance(RID p_probe, float p_distance);
+ virtual void reflection_probe_set_interior_ambient(RID p_probe, const Color& p_ambient);
+ virtual void reflection_probe_set_interior_ambient_energy(RID p_probe, float p_energy);
+ virtual void reflection_probe_set_interior_ambient_probe_contribution(RID p_probe, float p_contrib);
+ virtual void reflection_probe_set_max_distance(RID p_probe, float p_distance);
virtual void reflection_probe_set_extents(RID p_probe, const Vector3& p_extents);
virtual void reflection_probe_set_origin_offset(RID p_probe, const Vector3& p_offset);
- virtual void reflection_probe_set_enable_parallax_correction(RID p_probe, bool p_enable);
- virtual void reflection_probe_set_resolution(RID p_probe, int p_resolution);
- virtual void reflection_probe_set_hide_skybox(RID p_probe, bool p_hide);
+ virtual void reflection_probe_set_as_interior(RID p_probe, bool p_enable);
+ virtual void reflection_probe_set_enable_box_projection(RID p_probe, bool p_enable);
+ virtual void reflection_probe_set_enable_shadows(RID p_probe, bool p_enable);
virtual void reflection_probe_set_cull_mask(RID p_probe, uint32_t p_layers);
+ virtual AABB reflection_probe_get_aabb(RID p_probe) const;
+ virtual VS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const;
+ virtual uint32_t reflection_probe_get_cull_mask(RID p_probe) const;
+
+ virtual Vector3 reflection_probe_get_extents(RID p_probe) const;
+ virtual Vector3 reflection_probe_get_origin_offset(RID p_probe) const;
+ virtual float reflection_probe_get_origin_max_distance(RID p_probe) const;
+ virtual bool reflection_probe_renders_shadows(RID p_probe) const;
+
+
+
/* ROOM API */
@@ -813,6 +859,7 @@ public:
Color clear_request_color;
int canvas_draw_commands;
float time[4];
+ uint64_t count;
} frame;
void initialize();