Browse Source

fix LP bug 1219422: fix ShaderGenerator errors when LightRampAttrib is in use but no diffuse is present

rdb 11 years ago
parent
commit
89b824597c
1 changed files with 2 additions and 2 deletions
  1. 2 2
      panda/src/pgraphnodes/shaderGenerator.cxx

+ 2 - 2
panda/src/pgraphnodes/shaderGenerator.cxx

@@ -1160,7 +1160,7 @@ synthesize_shader(const RenderState *rs) {
       }
       }
     }
     }
     const LightRampAttrib *light_ramp = DCAST(LightRampAttrib, rs->get_attrib_def(LightRampAttrib::get_class_slot()));
     const LightRampAttrib *light_ramp = DCAST(LightRampAttrib, rs->get_attrib_def(LightRampAttrib::get_class_slot()));
-    if(_auto_ramp_on) {
+    if (_auto_ramp_on && _have_diffuse) {
       switch (light_ramp->get_mode()) {
       switch (light_ramp->get_mode()) {
       case LightRampAttrib::LRT_single_threshold:
       case LightRampAttrib::LRT_single_threshold:
         {
         {
@@ -1406,7 +1406,7 @@ synthesize_shader(const RenderState *rs) {
       text << "\t result.rgb = result.rgb + tot_specular.rgb;\n";
       text << "\t result.rgb = result.rgb + tot_specular.rgb;\n";
     }
     }
   }
   }
-  if(_auto_ramp_on) {
+  if (_auto_ramp_on) {
     const LightRampAttrib *light_ramp = DCAST(LightRampAttrib, rs->get_attrib_def(LightRampAttrib::get_class_slot()));
     const LightRampAttrib *light_ramp = DCAST(LightRampAttrib, rs->get_attrib_def(LightRampAttrib::get_class_slot()));
     switch (light_ramp->get_mode()) {
     switch (light_ramp->get_mode()) {
     case LightRampAttrib::LRT_hdr0:
     case LightRampAttrib::LRT_hdr0: