- Fixed issues with transparent materials in OpenGL ES 2.0 driver.

git-svn-id: http://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@4518 dfc29bdd-3216-0410-991c-e03cc46cb475
master
nadro 2013-05-04 20:50:30 +00:00
parent 81b873e2c6
commit 854c90a378
3 changed files with 14 additions and 4 deletions

View File

@ -31,6 +31,6 @@ void main(void)
vec4 TexCoord1 = vec4(inTexCoord1.x, inTexCoord1.y, 0.0, 0.0);
varTexCoord1 = vec4(uTextureMatrix1 * TexCoord1).xy;
varVertexColor = inVertexColor.zyxw;
varVertexColor = inVertexColor.bgra;
}

View File

@ -60,7 +60,12 @@ void COGLES2FixedPipelineRenderer::OnSetMaterial(const video::SMaterial& materia
Driver->setBasicRenderStates(material, lastMaterial, resetAllRenderstates);
if (FixedBlending)
if (Alpha)
{
Driver->getBridgeCalls()->setBlend(true);
Driver->getBridgeCalls()->setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
else if (FixedBlending)
{
Driver->getBridgeCalls()->setBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);
Driver->getBridgeCalls()->setBlend(true);

View File

@ -164,7 +164,12 @@ void COGLES2MaterialRenderer::OnSetMaterial(const video::SMaterial& material,
Driver->setBasicRenderStates(material, lastMaterial, resetAllRenderstates);
if (FixedBlending)
if (Alpha)
{
Driver->getBridgeCalls()->setBlend(true);
Driver->getBridgeCalls()->setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
else if (FixedBlending)
{
Driver->getBridgeCalls()->setBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);
Driver->getBridgeCalls()->setBlend(true);