summaryrefslogtreecommitdiff
path: root/drivers
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 /drivers
parent6b35211c53f14e5c9ea00b4e8382f497a11240c8 (diff)
Fixed many more bugs reported by Valgrind
Diffstat (limited to 'drivers')
-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
3 files changed, 8 insertions, 0 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();