summaryrefslogtreecommitdiff
path: root/servers/visual
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2016-10-21 07:27:13 -0300
committerJuan Linietsky <reduzio@gmail.com>2016-10-21 07:27:13 -0300
commitcb34b70df13ad9f7942b0c363edc71cfd417bb21 (patch)
tree0d1aefab73e839ae9a4d27547938ca4546a380a8 /servers/visual
parent4428115916144b45c4697cd65d9c8c093631bec6 (diff)
More scene work, can display a skybox
Diffstat (limited to 'servers/visual')
-rw-r--r--servers/visual/rasterizer.h21
-rw-r--r--servers/visual/visual_server_raster.h12
-rw-r--r--servers/visual/visual_server_scene.cpp48
-rw-r--r--servers/visual/visual_server_scene.h19
4 files changed, 30 insertions, 70 deletions
diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h
index d3f27687ca..81cdcf6a25 100644
--- a/servers/visual/rasterizer.h
+++ b/servers/visual/rasterizer.h
@@ -39,6 +39,26 @@
class RasterizerScene {
public:
+ /* ENVIRONMENT API */
+
+ virtual RID environment_create()=0;
+
+ virtual void environment_set_background(RID p_env,VS::EnvironmentBG p_bg)=0;
+ virtual void environment_set_skybox(RID p_env,RID p_skybox,int p_radiance_size,int p_irradiance_size)=0;
+ virtual void environment_set_skybox_scale(RID p_env,float p_scale)=0;
+ virtual void environment_set_bg_color(RID p_env,const Color& p_color)=0;
+ virtual void environment_set_bg_energy(RID p_env,float p_energy)=0;
+ virtual void environment_set_canvas_max_layer(RID p_env,int p_max_layer)=0;
+ virtual void environment_set_ambient_light(RID p_env,const Color& p_color,float p_energy=1.0,float p_skybox_energy=0.0)=0;
+
+ virtual void environment_set_glow(RID p_env,bool p_enable,int p_radius,float p_intensity,float p_strength,float p_bloom_treshold,VS::EnvironmentGlowBlendMode p_blend_mode)=0;
+ virtual void environment_set_fog(RID p_env,bool p_enable,float p_begin,float p_end,RID p_gradient_texture)=0;
+
+ virtual void environment_set_tonemap(RID p_env,bool p_enable,float p_exposure,float p_white,float p_min_luminance,float p_max_luminance,float p_auto_exp_speed,VS::EnvironmentToneMapper p_tone_mapper)=0;
+ virtual void environment_set_brightness(RID p_env,bool p_enable,float p_brightness)=0;
+ virtual void environment_set_contrast(RID p_env,bool p_enable,float p_contrast)=0;
+ virtual void environment_set_saturation(RID p_env,bool p_enable,float p_saturation)=0;
+ virtual void environment_set_color_correction(RID p_env,bool p_enable,RID p_ramp)=0;
struct InstanceBase : RID_Data {
@@ -126,6 +146,7 @@ public:
virtual void texture_debug_usage(List<VS::TextureInfo> *r_info)=0;
+ virtual RID texture_create_pbr_cubemap(RID p_source,VS::PBRCubeMapMode p_mode,int p_resolution=-1) const=0;
/* SHADER API */
diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h
index 62d45f8206..a2502e89f9 100644
--- a/servers/visual/visual_server_raster.h
+++ b/servers/visual/visual_server_raster.h
@@ -620,6 +620,7 @@ public:
BIND1RC(uint32_t,texture_get_width,RID)
BIND1RC(uint32_t,texture_get_height,RID)
BIND3(texture_set_size_override,RID,int,int)
+ BIND3RC(RID,texture_create_pbr_cubemap,RID,PBRCubeMapMode,int)
@@ -848,15 +849,17 @@ public:
#undef BINDBASE
//from now on, calls forwarded to this singleton
-#define BINDBASE VSG::scene
+#define BINDBASE VSG::scene_render
BIND0R(RID,environment_create)
BIND2(environment_set_background,RID ,EnvironmentBG )
- BIND3(environment_set_skybox,RID,RID ,float )
+ BIND4(environment_set_skybox,RID,RID ,int,int )
+ BIND2(environment_set_skybox_scale,RID,float)
BIND2(environment_set_bg_color,RID,const Color& )
+ BIND2(environment_set_bg_energy,RID,float )
BIND2(environment_set_canvas_max_layer,RID,int )
- BIND3(environment_set_ambient_light,RID,const Color& ,float )
+ BIND4(environment_set_ambient_light,RID,const Color& ,float,float )
BIND7(environment_set_glow,RID,bool ,int ,float ,float ,float ,EnvironmentGlowBlendMode )
BIND5(environment_set_fog,RID,bool ,float ,float ,RID )
@@ -871,6 +874,9 @@ public:
/* SCENARIO API */
+#undef BINDBASE
+#define BINDBASE VSG::scene
+
BIND0R(RID,scenario_create)
BIND2(scenario_set_debug,RID,ScenarioDebugMode )
diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp
index a3b1d76fb8..8fdf3d160d 100644
--- a/servers/visual/visual_server_scene.cpp
+++ b/servers/visual/visual_server_scene.cpp
@@ -69,54 +69,6 @@ void VisualServerScene::camera_set_use_vertical_aspect(RID p_camera,bool p_enabl
}
-
-/* ENVIRONMENT API */
-
-RID VisualServerScene::environment_create(){
-
- return RID();
-}
-
-void VisualServerScene::environment_set_background(RID p_env,VS::EnvironmentBG p_bg){
-
-}
-void VisualServerScene::environment_set_skybox(RID p_env,RID p_skybox,float p_energy){
-
-}
-void VisualServerScene::environment_set_bg_color(RID p_env,const Color& p_color){
-
-}
-void VisualServerScene::environment_set_canvas_max_layer(RID p_env,int p_max_layer){
-
-}
-void VisualServerScene::environment_set_ambient_light(RID p_env,const Color& p_color,float p_energy){
-
-}
-
-void VisualServerScene::environment_set_glow(RID p_env,bool p_enable,int p_radius,float p_intensity,float p_strength,float p_bloom_treshold,VS::EnvironmentGlowBlendMode p_blend_mode){
-
-}
-void VisualServerScene::environment_set_fog(RID p_env,bool p_enable,float p_begin,float p_end,RID p_gradient_texture){
-
-}
-
-void VisualServerScene::environment_set_tonemap(RID p_env,bool p_enable,float p_exposure,float p_white,float p_min_luminance,float p_max_luminance,float p_auto_exp_speed,VS::EnvironmentToneMapper p_tone_mapper){
-
-}
-void VisualServerScene::environment_set_brightness(RID p_env,bool p_enable,float p_brightness){
-
-}
-void VisualServerScene::environment_set_contrast(RID p_env,bool p_enable,float p_contrast){
-
-}
-void VisualServerScene::environment_set_saturation(RID p_env,bool p_enable,float p_saturation){
-
-}
-void VisualServerScene::environment_set_color_correction(RID p_env,bool p_enable,RID p_ramp){
-
-}
-
-
/* SCENARIO API */
diff --git a/servers/visual/visual_server_scene.h b/servers/visual/visual_server_scene.h
index ceec4af598..515d52db7b 100644
--- a/servers/visual/visual_server_scene.h
+++ b/servers/visual/visual_server_scene.h
@@ -139,25 +139,6 @@ public:
};
*/
- /* ENVIRONMENT API */
-
- virtual RID environment_create();
-
- virtual void environment_set_background(RID p_env,VS::EnvironmentBG p_bg);
- virtual void environment_set_skybox(RID p_env,RID p_skybox,float p_energy=1.0);
- virtual void environment_set_bg_color(RID p_env,const Color& p_color);
- virtual void environment_set_canvas_max_layer(RID p_env,int p_max_layer);
- virtual void environment_set_ambient_light(RID p_env,const Color& p_color,float p_energy=1.0);
-
- virtual void environment_set_glow(RID p_env,bool p_enable,int p_radius,float p_intensity,float p_strength,float p_bloom_treshold,VS::EnvironmentGlowBlendMode p_blend_mode);
- virtual void environment_set_fog(RID p_env,bool p_enable,float p_begin,float p_end,RID p_gradient_texture);
-
- virtual void environment_set_tonemap(RID p_env,bool p_enable,float p_exposure,float p_white,float p_min_luminance,float p_max_luminance,float p_auto_exp_speed,VS::EnvironmentToneMapper p_tone_mapper);
- virtual void environment_set_brightness(RID p_env,bool p_enable,float p_brightness);
- virtual void environment_set_contrast(RID p_env,bool p_enable,float p_contrast);
- virtual void environment_set_saturation(RID p_env,bool p_enable,float p_saturation);
- virtual void environment_set_color_correction(RID p_env,bool p_enable,RID p_ramp);
-
/* SCENARIO API */