Fixed MRT clear color.

This commit is contained in:
Branimir Karadžić
2016-01-05 18:32:24 -08:00
parent 62d36ebe8a
commit bc3bb5c6a4
3 changed files with 28 additions and 22 deletions

View File

@@ -3171,29 +3171,34 @@ namespace bgfx { namespace gl
GL_CHECK(glUseProgram(program.m_id) );
program.bindAttributes(vertexDecl, 0);
float mrtClear[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS][4];
if (BGFX_CLEAR_COLOR_USE_PALETTE & _clear.m_flags)
{
float mrtClear[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS][4];
for (uint32_t ii = 0; ii < numMrt; ++ii)
{
uint8_t index = (uint8_t)bx::uint32_min(BGFX_CONFIG_MAX_COLOR_PALETTE-1, _clear.m_index[ii]);
memcpy(mrtClear[ii], _palette[index], 16);
}
GL_CHECK(glUniform4fv(0, numMrt, mrtClear[0]) );
}
else
{
float rgba[4] =
{
_clear.m_index[0]*1.0f/255.0f,
_clear.m_index[1]*1.0f/255.0f,
_clear.m_index[2]*1.0f/255.0f,
_clear.m_index[3]*1.0f/255.0f,
_clear.m_index[0] * 1.0f / 255.0f,
_clear.m_index[1] * 1.0f / 255.0f,
_clear.m_index[2] * 1.0f / 255.0f,
_clear.m_index[3] * 1.0f / 255.0f,
};
GL_CHECK(glUniform4fv(0, 1, rgba) );
for (uint32_t ii = 0; ii < numMrt; ++ii)
{
memcpy(mrtClear[ii], rgba, 16);
}
}
GL_CHECK(glUniform4fv(0, numMrt, mrtClear[0]) );
GL_CHECK(glDrawArrays(GL_TRIANGLE_STRIP
, 0
, 4