summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2016-12-23 08:47:16 -0300
committerJuan Linietsky <reduzio@gmail.com>2016-12-23 08:47:16 -0300
commit3adb42e217d29033e0637ae334790aa1d742d194 (patch)
treed3e626459ce9158483b5b84ff9fb5207a4d6f12a
parent6b35211c53f14e5c9ea00b4e8382f497a11240c8 (diff)
Fixed many more bugs reported by Valgrind
-rw-r--r--drivers/gles3/rasterizer_scene_gles3.cpp4
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.cpp3
-rw-r--r--drivers/gles3/shader_compiler_gles3.cpp1
-rw-r--r--scene/main/viewport.cpp2
-rw-r--r--servers/visual/visual_server_viewport.h1
5 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp
index d559d96287..d380d8d149 100644
--- a/drivers/gles3/rasterizer_scene_gles3.cpp
+++ b/drivers/gles3/rasterizer_scene_gles3.cpp
@@ -454,6 +454,7 @@ RID RasterizerSceneGLES3::reflection_atlas_create() {
ReflectionAtlas *reflection_atlas = memnew( ReflectionAtlas );
reflection_atlas->subdiv=0;
reflection_atlas->color=0;
+ reflection_atlas->size=0;
for(int i=0;i<6;i++) {
reflection_atlas->fbo[i]=0;
}
@@ -4576,6 +4577,9 @@ void RasterizerSceneGLES3::_generate_brdf() {
void RasterizerSceneGLES3::initialize() {
+
+ render_pass=0;
+
state.scene_shader.init();
default_shader = storage->shader_create(VS::SHADER_SPATIAL);
diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp
index 24e6be588e..ec71f64049 100644
--- a/drivers/gles3/rasterizer_storage_gles3.cpp
+++ b/drivers/gles3/rasterizer_storage_gles3.cpp
@@ -1476,9 +1476,11 @@ void RasterizerStorageGLES3::_update_shader(Shader* p_shader) const {
p_shader->spatial.depth_draw_mode=Shader::Spatial::DEPTH_DRAW_OPAQUE;
p_shader->spatial.cull_mode=Shader::Spatial::CULL_MODE_BACK;
p_shader->spatial.uses_alpha=false;
+ p_shader->spatial.uses_discard=false;
p_shader->spatial.unshaded=false;
p_shader->spatial.ontop=false;
p_shader->spatial.uses_sss=false;
+ p_shader->spatial.uses_vertex=false;
shaders.actions_scene.render_mode_values["blend_add"]=Pair<int*,int>(&p_shader->spatial.blend_mode,Shader::Spatial::BLEND_MODE_ADD);
shaders.actions_scene.render_mode_values["blend_mix"]=Pair<int*,int>(&p_shader->spatial.blend_mode,Shader::Spatial::BLEND_MODE_MIX);
@@ -1501,6 +1503,7 @@ void RasterizerStorageGLES3::_update_shader(Shader* p_shader) const {
shaders.actions_scene.usage_flag_pointers["VERTEX"]=&p_shader->spatial.uses_vertex;
shaders.actions_scene.usage_flag_pointers["SSS_STRENGTH"]=&p_shader->spatial.uses_sss;
+ shaders.actions_scene.usage_flag_pointers["DISCARD"]=&p_shader->spatial.uses_discard;
actions=&shaders.actions_scene;
actions->uniforms=&p_shader->uniforms;
diff --git a/drivers/gles3/shader_compiler_gles3.cpp b/drivers/gles3/shader_compiler_gles3.cpp
index 5c7a72ab17..336cf7b34b 100644
--- a/drivers/gles3/shader_compiler_gles3.cpp
+++ b/drivers/gles3/shader_compiler_gles3.cpp
@@ -579,6 +579,7 @@ Error ShaderCompilerGLES3::compile(VS::ShaderMode p_mode, const String& p_code,
r_gen_code.uses_vertex_time=false;
+
used_name_defines.clear();
used_rmode_defines.clear();
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index 728997e794..8dec34a4cd 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -2760,7 +2760,7 @@ Viewport::Viewport() {
shadow_atlas_size=0;
for(int i=0;i<4;i++) {
- shadow_atlas_quadrant_subdiv[0]=SHADOW_ATLAS_QUADRANT_SUBDIV_MAX;
+ shadow_atlas_quadrant_subdiv[i]=SHADOW_ATLAS_QUADRANT_SUBDIV_MAX;
}
set_shadow_atlas_quadrant_subdiv(0,SHADOW_ATLAS_QUADRANT_SUBDIV_4);
set_shadow_atlas_quadrant_subdiv(1,SHADOW_ATLAS_QUADRANT_SUBDIV_4);
diff --git a/servers/visual/visual_server_viewport.h b/servers/visual/visual_server_viewport.h
index a9b8fe4e94..2eb0ea4679 100644
--- a/servers/visual/visual_server_viewport.h
+++ b/servers/visual/visual_server_viewport.h
@@ -71,6 +71,7 @@ public:
disable_environment=false;
viewport_to_screen=0;
shadow_atlas_size=0;
+ disable_3d=false;
}
};