Бранимир Караџић %!s(int64=4) %!d(string=hai) anos
pai
achega
925fbe30ae
Modificáronse 1 ficheiros con 31 adicións e 28 borrados
  1. 31 28
      src/renderer_gl.cpp

+ 31 - 28
src/renderer_gl.cpp

@@ -4181,22 +4181,6 @@ namespace bgfx { namespace gl
 
 				uint32_t loc = _uniformBuffer.read();
 
-#define CASE_IMPLEMENT_UNIFORM(_uniform, _glsuffix, _type) \
-		case UniformType::_uniform: \
-				{ \
-					_type* value = (_type*)data; \
-					setUniform##_glsuffix(loc, num, value); \
-				} \
-				break;
-
-#define CASE_IMPLEMENT_UNIFORM_T(_uniform, _glsuffix, _type) \
-		case UniformType::_uniform: \
-				{ \
-					_type* value = (_type*)data; \
-					setUniform##_glsuffix(loc, num, GL_FALSE, value); \
-				} \
-				break;
-
 				switch (type)
 				{
 #if BX_PLATFORM_EMSCRIPTEN
@@ -4204,19 +4188,42 @@ namespace bgfx { namespace gl
 				// since they need to marshal an array over from Wasm to JS, so optimize the case when there is exactly one
 				// uniform to upload.
 				case UniformType::Sampler:
-					if (num > 1) setUniform1iv(loc, num, (int*)data);
-					else setUniform1i(loc, *(int*)data);
+					if (num > 1)
+					{
+						setUniform1iv(loc, num, (int32_t*)data);
+					}
+					else
+					{
+						setUniform1i(loc, *(int32_t*)data);
+					}
 					break;
 				case UniformType::Vec4:
-					if (num > 1) setUniform4fv(loc, num, (float*)data);
-					else setUniform4f(loc, ( (float*)data)[0], ( (float*)data)[1], ( (float*)data)[2], ( (float*)data)[3]);
+					if (num > 1)
+					{
+						setUniform4fv(loc, num, (float*)data);
+					}
+					else
+					{
+						float* vec4 = (float*)data;
+						setUniform4f(loc, vec4[0], vec4[1], vec4[2], vec4[3]);
+					}
 					break;
 #else
-				CASE_IMPLEMENT_UNIFORM(Sampler, 1iv, int);
-				CASE_IMPLEMENT_UNIFORM(Vec4,    4fv, float);
+				case UniformType::Sampler:
+					setUniform1iv(loc, num, (int32_t*)data);
+					break;
+
+				case UniformType::Vec4:
+					setUniform4fv(loc, num, (float*)data);
+					break;
 #endif
-				CASE_IMPLEMENT_UNIFORM_T(Mat3, Matrix3fv, float);
-				CASE_IMPLEMENT_UNIFORM_T(Mat4, Matrix4fv, float);
+				case UniformType::Mat3:
+					setUniformMatrix3fv(loc, num, GL_FALSE, (float*)data);
+					break;
+
+				case UniformType::Mat4:
+					setUniformMatrix4fv(loc, num, GL_FALSE, (float*)data);
+					break;
 
 				case UniformType::End:
 					break;
@@ -4225,10 +4232,6 @@ namespace bgfx { namespace gl
 					BX_TRACE("%4d: INVALID 0x%08x, t %d, l %d, n %d, c %d", _uniformBuffer.getPos(), opcode, type, loc, num, copy);
 					break;
 				}
-
-#undef CASE_IMPLEMENT_UNIFORM
-#undef CASE_IMPLEMENT_UNIFORM_T
-
 			}
 		}