From 490f51a20299f0084684a3b004128dc34e6b20ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20J=2E=20Est=C3=A9banez?= Date: Wed, 21 Dec 2016 02:24:47 +0100 Subject: [PATCH] Fix error when fragment and lighting code share an uniform --- drivers/gles2/rasterizer_gles2.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gles2/rasterizer_gles2.cpp b/drivers/gles2/rasterizer_gles2.cpp index 024b769279..7b33f6b656 100644 --- a/drivers/gles2/rasterizer_gles2.cpp +++ b/drivers/gles2/rasterizer_gles2.cpp @@ -4610,7 +4610,17 @@ void RasterizerGLES2::_update_shader( Shader* p_shader) const { } } - fragment_globals+=light_globals; //both fragment anyway + //light and fragment are both fragment so put their globals together + + Vector light_globals_lines=light_globals.split("\n"); + String* line=light_globals_lines.ptr(); + for (int i=0;ibegins_with("uniform ") && line->is_subsequence_of(fragment_globals)) { + continue; + } + fragment_globals+=*line; + } //print_line("compiled fragment: "+fragment_code);