summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/src/renderer_gl.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/src/renderer_gl.cpp')
-rw-r--r--3rdparty/bgfx/src/renderer_gl.cpp61
1 files changed, 32 insertions, 29 deletions
diff --git a/3rdparty/bgfx/src/renderer_gl.cpp b/3rdparty/bgfx/src/renderer_gl.cpp
index 255b17a0e24..c8088abe1c4 100644
--- a/3rdparty/bgfx/src/renderer_gl.cpp
+++ b/3rdparty/bgfx/src/renderer_gl.cpp
@@ -256,7 +256,7 @@ namespace bgfx { namespace gl
{ GL_RG16, GL_ZERO, GL_RG, GL_RG, GL_UNSIGNED_SHORT, false }, // RG16
{ GL_RG16I, GL_ZERO, RG_INTEGER, GL_RG_INTEGER, GL_SHORT, false }, // RG16I
{ GL_RG16UI, GL_ZERO, RG_INTEGER, GL_RG_INTEGER, GL_UNSIGNED_SHORT, false }, // RG16U
- { GL_RG16F, GL_ZERO, GL_RG, GL_RG, GL_FLOAT, false }, // RG16F
+ { GL_RG16F, GL_ZERO, GL_RG, GL_RG, GL_HALF_FLOAT, false }, // RG16F
{ GL_RG16_SNORM, GL_ZERO, GL_RG, GL_RG, GL_SHORT, false }, // RG16S
{ GL_RG32I, GL_ZERO, RG_INTEGER, GL_RG_INTEGER, GL_INT, false }, // RG32I
{ GL_RG32UI, GL_ZERO, RG_INTEGER, GL_RG_INTEGER, GL_UNSIGNED_INT, false }, // RG32U
@@ -4181,22 +4181,6 @@ namespace bgfx { namespace gl
uint32_t loc = _uniformBuffer.read();
-#define CASE_IMPLEMENT_UNIFORM(_uniform, _glsuffix, _dxsuffix, _type) \
- case UniformType::_uniform: \
- { \
- _type* value = (_type*)data; \
- setUniform##_glsuffix(loc, num, value); \
- } \
- break;
-
-#define CASE_IMPLEMENT_UNIFORM_T(_uniform, _glsuffix, _dxsuffix, _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, I, int);
- CASE_IMPLEMENT_UNIFORM(Vec4, 4fv, F, 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, F, float);
- CASE_IMPLEMENT_UNIFORM_T(Mat4, Matrix4fv, F, 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
-
}
}