mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-17 20:52:36 +01:00
Work around emscripten double-reporting GL error
This commit is contained in:
committed by
Бранимир Караџић
parent
6838719246
commit
3d460e0445
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user