summaryrefslogtreecommitdiffstats
path: root/drivers/gles3/storage/light_storage.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gles3/storage/light_storage.h')
-rw-r--r--drivers/gles3/storage/light_storage.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gles3/storage/light_storage.h b/drivers/gles3/storage/light_storage.h
index 2fb4dcaeca..7ab0286098 100644
--- a/drivers/gles3/storage/light_storage.h
+++ b/drivers/gles3/storage/light_storage.h
@@ -155,6 +155,11 @@ struct Lightmap {
Dependency dependency;
};
+struct LightmapInstance {
+ RID lightmap;
+ Transform3D transform;
+};
+
class LightStorage : public RendererLightStorage {
public:
enum ShadowAtlastQuadrant {
@@ -179,9 +184,14 @@ private:
/* LIGHTMAP */
Vector<RID> lightmap_textures;
+ float lightmap_probe_capture_update_speed = 4;
mutable RID_Owner<Lightmap, true> lightmap_owner;
+ /* LIGHTMAP INSTANCE */
+
+ mutable RID_Owner<LightmapInstance> lightmap_instance_owner;
+
/* SHADOW ATLAS */
// Note: The ShadowAtlas in the OpenGL is virtual. Each light gets assigned its
@@ -622,6 +632,9 @@ public:
/* LIGHTMAP INSTANCE */
+ LightmapInstance *get_lightmap_instance(RID p_rid) { return lightmap_instance_owner.get_or_null(p_rid); };
+ bool owns_lightmap_instance(RID p_rid) { return lightmap_instance_owner.owns(p_rid); };
+
virtual RID lightmap_instance_create(RID p_lightmap) override;
virtual void lightmap_instance_free(RID p_lightmap) override;
virtual void lightmap_instance_set_transform(RID p_lightmap, const Transform3D &p_transform) override;