aboutsummaryrefslogtreecommitdiff
path: root/servers/visual/visual_server_raster.cpp
diff options
context:
space:
mode:
authorSaracen2016-01-31 12:56:53 +0000
committerSaracen2016-02-06 18:03:20 +0000
commitde5281c3989fd4071cf57e5b7bc0cbbc174524e8 (patch)
tree085eb62134c2d04811af67dba0231a03dd4b5edc /servers/visual/visual_server_raster.cpp
parent987bfb4b5e99bb11ecfd914e80d59b9bde62e26f (diff)
downloadgodot-de5281c3989fd4071cf57e5b7bc0cbbc174524e8.tar.gz
godot-de5281c3989fd4071cf57e5b7bc0cbbc174524e8.tar.zst
godot-de5281c3989fd4071cf57e5b7bc0cbbc174524e8.zip
Ability to colourize baked lighting in real time.
Diffstat (limited to 'servers/visual/visual_server_raster.cpp')
-rw-r--r--servers/visual/visual_server_raster.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/servers/visual/visual_server_raster.cpp b/servers/visual/visual_server_raster.cpp
index 367519432..7ee8431e1 100644
--- a/servers/visual/visual_server_raster.cpp
+++ b/servers/visual/visual_server_raster.cpp
@@ -1081,6 +1081,9 @@ RID VisualServerRaster::baked_light_create() {
baked_light->data.octree_lattice_divide=0;
baked_light->data.octree_steps=1;
baked_light->data.lightmap_multiplier=1.0;
+ baked_light->data.realtime_color_enabled=false;
+ baked_light->data.realtime_color=Color(1.0, 1.0, 1.0);
+ baked_light->data.realtime_energy = 1.0;
return baked_light_owner.make_rid( baked_light );
@@ -1326,6 +1329,63 @@ void VisualServerRaster::baked_light_clear_lightmaps(RID p_baked_light){
}
+void VisualServerRaster::baked_light_set_realtime_color_enabled(RID p_baked_light, const bool p_enabled) {
+
+ VS_CHANGED;
+ BakedLight *baked_light = baked_light_owner.get(p_baked_light);
+ ERR_FAIL_COND(!baked_light);
+
+ baked_light->data.realtime_color_enabled = p_enabled;
+
+}
+
+bool VisualServerRaster::baked_light_get_realtime_color_enabled(RID p_baked_light) const{
+
+ const BakedLight *baked_light = baked_light_owner.get(p_baked_light);
+ ERR_FAIL_COND_V(!baked_light, false);
+
+ return baked_light->data.realtime_color_enabled;
+
+}
+
+void VisualServerRaster::baked_light_set_realtime_color(RID p_baked_light, const Color& p_color) {
+
+ VS_CHANGED;
+ BakedLight *baked_light = baked_light_owner.get(p_baked_light);
+ ERR_FAIL_COND(!baked_light);
+
+ baked_light->data.realtime_color = p_color;
+
+}
+
+Color VisualServerRaster::baked_light_get_realtime_color(RID p_baked_light) const{
+
+ const BakedLight *baked_light = baked_light_owner.get(p_baked_light);
+ ERR_FAIL_COND_V(!baked_light, Color(1.0, 1.0, 1.0));
+
+ return baked_light->data.realtime_color;
+
+}
+
+void VisualServerRaster::baked_light_set_realtime_energy(RID p_baked_light, const float p_energy) {
+
+ VS_CHANGED;
+ BakedLight *baked_light = baked_light_owner.get(p_baked_light);
+ ERR_FAIL_COND(!baked_light);
+
+ baked_light->data.realtime_energy = p_energy;
+
+}
+
+float VisualServerRaster::baked_light_get_realtime_energy(RID p_baked_light) const{
+
+ const BakedLight *baked_light = baked_light_owner.get(p_baked_light);
+ ERR_FAIL_COND_V(!baked_light, 1.0f);
+
+ return baked_light->data.realtime_energy;
+
+}
+
/* BAKED LIGHT SAMPLER */