|
|
@@ -1055,10 +1055,22 @@ namespace bgfx { namespace gl
|
|
|
|
|
|
typedef void (*PostSwapBuffersFn)(uint32_t _width, uint32_t _height);
|
|
|
|
|
|
+ void flushGlError()
|
|
|
+ {
|
|
|
+ for (GLenum err = glGetError(); err != 0; err = glGetError() );
|
|
|
+ }
|
|
|
+
|
|
|
+ GLenum getGlError()
|
|
|
+ {
|
|
|
+ GLenum err = glGetError();
|
|
|
+ flushGlError();
|
|
|
+ return err;
|
|
|
+ }
|
|
|
+
|
|
|
static const char* getGLString(GLenum _name)
|
|
|
{
|
|
|
const char* str = (const char*)glGetString(_name);
|
|
|
- glGetError(); // ignore error if glGetString returns NULL.
|
|
|
+ getGlError(); // ignore error if glGetString returns NULL.
|
|
|
if (NULL != str)
|
|
|
{
|
|
|
return str;
|
|
|
@@ -1070,7 +1082,7 @@ namespace bgfx { namespace gl
|
|
|
static uint32_t getGLStringHash(GLenum _name)
|
|
|
{
|
|
|
const char* str = (const char*)glGetString(_name);
|
|
|
- glGetError(); // ignore error if glGetString returns NULL.
|
|
|
+ getGlError(); // ignore error if glGetString returns NULL.
|
|
|
if (NULL != str)
|
|
|
{
|
|
|
return bx::hash<bx::HashMurmur2A>(str, (uint32_t)bx::strLen(str) );
|
|
|
@@ -1155,7 +1167,7 @@ namespace bgfx { namespace gl
|
|
|
{
|
|
|
GLint result = 0;
|
|
|
glGetIntegerv(_pname, &result);
|
|
|
- GLenum err = glGetError();
|
|
|
+ GLenum err = getGlError();
|
|
|
BX_WARN(0 == err, "glGetIntegerv(0x%04x, ...) failed with GL error: 0x%04x.", _pname, err);
|
|
|
return 0 == err ? result : 0;
|
|
|
}
|
|
|
@@ -1168,11 +1180,6 @@ namespace bgfx { namespace gl
|
|
|
tfi.m_type = _type;
|
|
|
}
|
|
|
|
|
|
- void flushGlError()
|
|
|
- {
|
|
|
- for (GLenum err = glGetError(); err != 0; err = glGetError() );
|
|
|
- }
|
|
|
-
|
|
|
static void texSubImage(
|
|
|
GLenum _target
|
|
|
, GLint _level
|
|
|
@@ -1457,7 +1464,7 @@ namespace bgfx { namespace gl
|
|
|
uint32_t block = bx::uint32_max(4, dim);
|
|
|
size = (block*block*bpp)/8;
|
|
|
compressedTexImage(target, ii, internalFmt, dim, dim, 0, 0, size, data);
|
|
|
- err |= glGetError();
|
|
|
+ err |= getGlError();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
@@ -1467,7 +1474,7 @@ namespace bgfx { namespace gl
|
|
|
dim = bx::uint32_max(1, dim);
|
|
|
size = (dim*dim*bpp)/8;
|
|
|
texImage(target, 0, ii, internalFmt, dim, dim, 0, 0, tfi.m_fmt, tfi.m_type, data);
|
|
|
- err |= glGetError();
|
|
|
+ err |= getGlError();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1513,7 +1520,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
|
|
|
, _dim
|
|
|
, _dim
|
|
|
);
|
|
|
- err = glGetError();
|
|
|
+ err = getGlError();
|
|
|
}
|
|
|
|
|
|
if (0 == err)
|
|
|
@@ -1532,7 +1539,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
|
|
|
&& _mipAutogen)
|
|
|
{
|
|
|
glGenerateMipmap(target);
|
|
|
- err = glGetError();
|
|
|
+ err = getGlError();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1556,7 +1563,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
|
|
|
GLenum err = 0;
|
|
|
|
|
|
glTexStorage2D(GL_TEXTURE_2D, 1, s_imageFormat[_format], _dim, _dim);
|
|
|
- err |= glGetError();
|
|
|
+ err |= getGlError();
|
|
|
if (0 == err)
|
|
|
{
|
|
|
glBindImageTexture(0
|
|
|
@@ -1567,7 +1574,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
|
|
|
, GL_READ_WRITE
|
|
|
, s_imageFormat[_format]
|
|
|
);
|
|
|
- err |= glGetError();
|
|
|
+ err |= getGlError();
|
|
|
}
|
|
|
|
|
|
GL_CHECK(glDeleteTextures(1, &id) );
|
|
|
@@ -1606,7 +1613,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
|
|
|
glBindRenderbuffer(GL_RENDERBUFFER, 0);
|
|
|
glDeleteRenderbuffers(1, &rbo);
|
|
|
|
|
|
- GLenum err = glGetError();
|
|
|
+ GLenum err = getGlError();
|
|
|
return 0 == err;
|
|
|
}
|
|
|
|
|
|
@@ -1648,7 +1655,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
|
|
|
, id
|
|
|
, 0
|
|
|
);
|
|
|
- err = glGetError();
|
|
|
+ err = getGlError();
|
|
|
|
|
|
if (0 == err)
|
|
|
{
|
|
|
@@ -1892,7 +1899,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
|
|
|
if (BX_ENABLED(BGFX_CONFIG_RENDERER_USE_EXTENSIONS) )
|
|
|
{
|
|
|
const char* extensions = (const char*)glGetString(GL_EXTENSIONS);
|
|
|
- glGetError(); // ignore error if glGetString returns NULL.
|
|
|
+ getGlError(); // ignore error if glGetString returns NULL.
|
|
|
if (NULL != extensions)
|
|
|
{
|
|
|
bx::StringView ext(extensions);
|
|
|
@@ -1912,7 +1919,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
|
|
|
{
|
|
|
GLint numExtensions = 0;
|
|
|
glGetIntegerv(GL_NUM_EXTENSIONS, &numExtensions);
|
|
|
- glGetError(); // ignore error if glGetIntegerv returns NULL.
|
|
|
+ getGlError(); // ignore error if glGetIntegerv returns NULL.
|
|
|
|
|
|
for (GLint index = 0; index < numExtensions; ++index)
|
|
|
{
|
|
|
@@ -2205,7 +2212,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
|
|
|
, 1
|
|
|
, &maxSamples
|
|
|
);
|
|
|
- GLenum err = glGetError();
|
|
|
+ GLenum err = getGlError();
|
|
|
supported |= 0 == err && maxSamples > 0
|
|
|
? BGFX_CAPS_FORMAT_TEXTURE_FRAMEBUFFER_MSAA
|
|
|
: BGFX_CAPS_FORMAT_TEXTURE_NONE
|
|
|
@@ -2217,7 +2224,7 @@ BX_TRACE("%d, %d, %d, %s", _array, _srgb, _mipAutogen, getName(_format) );
|
|
|
, 1
|
|
|
, &maxSamples
|
|
|
);
|
|
|
- err = glGetError();
|
|
|
+ err = getGlError();
|
|
|
supported |= 0 == err && maxSamples > 0
|
|
|
? BGFX_CAPS_FORMAT_TEXTURE_MSAA
|
|
|
: BGFX_CAPS_FORMAT_TEXTURE_NONE
|