Browse Source

Some improvements on SetShaderValue()

- Unsigned int not supported on OpenGL ES 2.0 -> Removed
- Reorganized enum -> Removed BOOL (not uniformType)
- Support sample2D uniform type
Ray 6 years ago
parent
commit
64fd131ed5
2 changed files with 15 additions and 27 deletions
  1. 5 9
      src/raylib.h
  2. 10 18
      src/rlgl.h

+ 5 - 9
src/raylib.h

@@ -678,19 +678,15 @@ typedef enum {
 
 
 // Shader uniform data types
 // Shader uniform data types
 typedef enum {
 typedef enum {
-    UNIFORM_BOOL = 0,
+    UNIFORM_FLOAT = 0,
+    UNIFORM_VEC2,
+    UNIFORM_VEC3,
+    UNIFORM_VEC4,
     UNIFORM_INT,
     UNIFORM_INT,
-    UNIFORM_UNIT,
-    UNIFORM_FLOAT,
     UNIFORM_IVEC2,
     UNIFORM_IVEC2,
     UNIFORM_IVEC3,
     UNIFORM_IVEC3,
     UNIFORM_IVEC4,
     UNIFORM_IVEC4,
-    UNIFORM_UVEC2,
-    UNIFORM_UVEC3,
-    UNIFORM_UVEC4,
-    UNIFORM_VEC2,
-    UNIFORM_VEC3,
-    UNIFORM_VEC4,
+    UNIFORM_SAMPLER2D
 } ShaderUniformDataType;
 } ShaderUniformDataType;
 
 
 // Material map type
 // Material map type

+ 10 - 18
src/rlgl.h

@@ -335,19 +335,15 @@ typedef unsigned char byte;
     
     
     // Shader uniform data types
     // Shader uniform data types
     typedef enum {
     typedef enum {
-        UNIFORM_BOOL = 0,
+        UNIFORM_FLOAT = 0,
+        UNIFORM_VEC2,
+        UNIFORM_VEC3,
+        UNIFORM_VEC4,
         UNIFORM_INT,
         UNIFORM_INT,
-        UNIFORM_UNIT,
-        UNIFORM_FLOAT,
         UNIFORM_IVEC2,
         UNIFORM_IVEC2,
         UNIFORM_IVEC3,
         UNIFORM_IVEC3,
         UNIFORM_IVEC4,
         UNIFORM_IVEC4,
-        UNIFORM_UVEC2,
-        UNIFORM_UVEC3,
-        UNIFORM_UVEC4,
-        UNIFORM_VEC2,
-        UNIFORM_VEC3,
-        UNIFORM_VEC4,
+        UNIFORM_SAMPLER2D
     } ShaderUniformDataType;
     } ShaderUniformDataType;
 
 
     #define LOC_MAP_DIFFUSE      LOC_MAP_ALBEDO
     #define LOC_MAP_DIFFUSE      LOC_MAP_ALBEDO
@@ -2922,19 +2918,15 @@ void SetShaderValueV(Shader shader, int uniformLoc, const void *value, int unifo
 
 
     switch (uniformType)
     switch (uniformType)
     {
     {
-        case UNIFORM_BOOL: glUniform1iv(uniformLoc, count, (int *)value); break;
-        case UNIFORM_INT: glUniform1iv(uniformLoc, count, (int *)value); break;
-        case UNIFORM_UNIT: glUniform1uiv(uniformLoc, count, (unsigned int *)value); break;
         case UNIFORM_FLOAT: glUniform1fv(uniformLoc, count, (float *)value); break;
         case UNIFORM_FLOAT: glUniform1fv(uniformLoc, count, (float *)value); break;
-        case UNIFORM_IVEC2: glUniform2iv(uniformLoc, count, (int *)value); break;
-        case UNIFORM_IVEC3: glUniform3iv(uniformLoc, count, (int *)value); break;
-        case UNIFORM_IVEC4: glUniform4iv(uniformLoc, count, (int *)value); break;
-        case UNIFORM_UVEC2: glUniform2uiv(uniformLoc, count, (unsigned int *)value); break;
-        case UNIFORM_UVEC3: glUniform3uiv(uniformLoc, count, (unsigned int *)value); break;
-        case UNIFORM_UVEC4: glUniform4uiv(uniformLoc, count, (unsigned int *)value); break;
         case UNIFORM_VEC2: glUniform2fv(uniformLoc, count, (float *)value); break;
         case UNIFORM_VEC2: glUniform2fv(uniformLoc, count, (float *)value); break;
         case UNIFORM_VEC3: glUniform3fv(uniformLoc, count, (float *)value); break;
         case UNIFORM_VEC3: glUniform3fv(uniformLoc, count, (float *)value); break;
         case UNIFORM_VEC4: glUniform4fv(uniformLoc, count, (float *)value); break;
         case UNIFORM_VEC4: glUniform4fv(uniformLoc, count, (float *)value); break;
+        case UNIFORM_INT: glUniform1iv(uniformLoc, count, (int *)value); break;
+        case UNIFORM_IVEC2: glUniform2iv(uniformLoc, count, (int *)value); break;
+        case UNIFORM_IVEC3: glUniform3iv(uniformLoc, count, (int *)value); break;
+        case UNIFORM_IVEC4: glUniform4iv(uniformLoc, count, (int *)value); break;
+        case UNIFORM_SAMPLER2D: glUniform1iv(uniformLoc, count, (int *)value); break;
         default: TraceLog(LOG_WARNING, "Shader uniform could not be set data type not recognized");
         default: TraceLog(LOG_WARNING, "Shader uniform could not be set data type not recognized");
     }
     }