GLES: Fixed glReadPixels format. Added IMG_shader_binary support.
This commit is contained in:
parent
1471a37366
commit
f540cd827b
@ -738,12 +738,11 @@ namespace bgfx
|
|||||||
{
|
{
|
||||||
if (NULL != m_capture)
|
if (NULL != m_capture)
|
||||||
{
|
{
|
||||||
GLint fmt = s_extension[Extension::EXT_texture_format_BGRA8888].m_supported ? GL_BGRA_EXT : GL_RGBA;
|
|
||||||
GL_CHECK(glReadPixels(0
|
GL_CHECK(glReadPixels(0
|
||||||
, 0
|
, 0
|
||||||
, m_resolution.m_width
|
, m_resolution.m_width
|
||||||
, m_resolution.m_height
|
, m_resolution.m_height
|
||||||
, fmt
|
, m_readPixelsFmt
|
||||||
, GL_UNSIGNED_BYTE
|
, GL_UNSIGNED_BYTE
|
||||||
, m_capture
|
, m_capture
|
||||||
) );
|
) );
|
||||||
@ -756,7 +755,6 @@ namespace bgfx
|
|||||||
{
|
{
|
||||||
uint32_t length = m_resolution.m_width*m_resolution.m_height*4;
|
uint32_t length = m_resolution.m_width*m_resolution.m_height*4;
|
||||||
uint8_t* data = (uint8_t*)g_realloc(NULL, length);
|
uint8_t* data = (uint8_t*)g_realloc(NULL, length);
|
||||||
GLint fmt = s_extension[Extension::EXT_texture_format_BGRA8888].m_supported ? GL_BGRA_EXT : GL_RGBA;
|
|
||||||
|
|
||||||
uint32_t width = m_resolution.m_width;
|
uint32_t width = m_resolution.m_width;
|
||||||
uint32_t height = m_resolution.m_height;
|
uint32_t height = m_resolution.m_height;
|
||||||
@ -765,12 +763,12 @@ namespace bgfx
|
|||||||
, 0
|
, 0
|
||||||
, width
|
, width
|
||||||
, height
|
, height
|
||||||
, fmt
|
, m_readPixelsFmt
|
||||||
, GL_UNSIGNED_BYTE
|
, GL_UNSIGNED_BYTE
|
||||||
, data
|
, data
|
||||||
) );
|
) );
|
||||||
|
|
||||||
if (GL_RGBA == fmt)
|
if (GL_RGBA == m_readPixelsFmt)
|
||||||
{
|
{
|
||||||
imageSwizzleBgra8(width, height, data, data);
|
imageSwizzleBgra8(width, height, data, data);
|
||||||
}
|
}
|
||||||
@ -862,6 +860,7 @@ namespace bgfx
|
|||||||
PostSwapBuffersFn m_postSwapBuffers;
|
PostSwapBuffersFn m_postSwapBuffers;
|
||||||
uint64_t m_hash;
|
uint64_t m_hash;
|
||||||
|
|
||||||
|
GLenum m_readPixelsFmt;
|
||||||
GLuint m_backBufferFbo;
|
GLuint m_backBufferFbo;
|
||||||
GLuint m_msaaBackBufferFbo;
|
GLuint m_msaaBackBufferFbo;
|
||||||
GLuint m_msaaBackBufferRbos[2];
|
GLuint m_msaaBackBufferRbos[2];
|
||||||
@ -2490,6 +2489,7 @@ namespace bgfx
|
|||||||
s_renderCtx.m_programBinarySupport = !!BGFX_CONFIG_RENDERER_OPENGLES3
|
s_renderCtx.m_programBinarySupport = !!BGFX_CONFIG_RENDERER_OPENGLES3
|
||||||
|| s_extension[Extension::ARB_get_program_binary].m_supported
|
|| s_extension[Extension::ARB_get_program_binary].m_supported
|
||||||
|| s_extension[Extension::OES_get_program_binary].m_supported
|
|| s_extension[Extension::OES_get_program_binary].m_supported
|
||||||
|
|| s_extension[Extension::IMG_shader_binary].m_supported
|
||||||
;
|
;
|
||||||
|
|
||||||
s_renderCtx.m_textureSwizzleSupport = false
|
s_renderCtx.m_textureSwizzleSupport = false
|
||||||
@ -2509,9 +2509,15 @@ namespace bgfx
|
|||||||
}
|
}
|
||||||
#endif // BGFX_CONFIG_RENDERER_OPENGL|BGFX_CONFIG_RENDERER_OPENGLES3
|
#endif // BGFX_CONFIG_RENDERER_OPENGL|BGFX_CONFIG_RENDERER_OPENGLES3
|
||||||
|
|
||||||
|
s_renderCtx.m_readPixelsFmt = GL_RGBA;
|
||||||
|
|
||||||
if (s_extension[Extension::EXT_texture_format_BGRA8888].m_supported
|
if (s_extension[Extension::EXT_texture_format_BGRA8888].m_supported
|
||||||
|| s_extension[Extension::EXT_bgra].m_supported)
|
|| s_extension[Extension::EXT_bgra].m_supported)
|
||||||
{
|
{
|
||||||
|
#if BGFX_CONFIG_RENDERER_OPENGL
|
||||||
|
s_renderCtx.m_readPixelsFmt = GL_BGRA_EXT;
|
||||||
|
#endif // BGFX_CONFIG_RENDERER_OPENGL
|
||||||
|
|
||||||
s_textureFormat[TextureFormat::BGRX8].m_fmt = GL_BGRA_EXT;
|
s_textureFormat[TextureFormat::BGRX8].m_fmt = GL_BGRA_EXT;
|
||||||
s_textureFormat[TextureFormat::BGRA8].m_fmt = GL_BGRA_EXT;
|
s_textureFormat[TextureFormat::BGRA8].m_fmt = GL_BGRA_EXT;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user