Browse Source

pgraph: Allow passing int vectors to float struct member in GLSL

rdb 5 years ago
parent
commit
a172a79f57
1 changed files with 7 additions and 1 deletions
  1. 7 1
      panda/src/pgraph/shaderAttrib.cxx

+ 7 - 1
panda/src/pgraph/shaderAttrib.cxx

@@ -367,10 +367,16 @@ get_shader_input_vector(const InternalName *id) const {
           memcpy(&vectord[0], ptr._ptr, sizeof(double) * ptr._size);
           return LCAST(PN_stdfloat, vectord);
         }
+      case ShaderType::ST_int:
+        {
+          LVector4i vectori;
+          memcpy(&vectori[0], ptr._ptr, sizeof(int) * ptr._size);
+          return LCAST(PN_stdfloat, vectori);
+        }
       default:
        {
           ostringstream strm;
-          strm << "Shader input " << id->get_name() << " does not contain floating-point data.\n";
+          strm << "Shader input " << id->get_name() << " does not contain numeric data.\n";
           nassert_raise(strm.str());
           return resfail;
         }