mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-13 03:28:19 +00:00
Fix Renderingbug:
If u change the alpha value inside a colorenvelope, the tileset-/quad-rendering is messed sometimes http://i.solidfiles.net/580a9699c4.png(map: run_exchange by delo)
This commit is contained in:
parent
1711be955b
commit
dfd15bc899
|
@ -99,9 +99,10 @@ void CRenderTools::RenderQuads(CQuad *pQuads, int NumQuads, int RenderFlags, ENV
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Opaque = false;
|
bool Opaque = false;
|
||||||
|
/* TODO: Analyze quadtexture
|
||||||
if(a < 0.01f || (q->m_aColors[0].a < 0.01f && q->m_aColors[1].a < 0.01f && q->m_aColors[2].a < 0.01f && q->m_aColors[3].a < 0.01f))
|
if(a < 0.01f || (q->m_aColors[0].a < 0.01f && q->m_aColors[1].a < 0.01f && q->m_aColors[2].a < 0.01f && q->m_aColors[3].a < 0.01f))
|
||||||
Opaque = true;
|
Opaque = true;
|
||||||
|
*/
|
||||||
if(Opaque && !(RenderFlags&LAYERRENDERFLAG_OPAQUE))
|
if(Opaque && !(RenderFlags&LAYERRENDERFLAG_OPAQUE))
|
||||||
continue;
|
continue;
|
||||||
if(!Opaque && !(RenderFlags&LAYERRENDERFLAG_TRANSPARENT))
|
if(!Opaque && !(RenderFlags&LAYERRENDERFLAG_TRANSPARENT))
|
||||||
|
@ -236,7 +237,7 @@ void CRenderTools::RenderTilemap(CTile *pTiles, int w, int h, float Scale, vec4
|
||||||
unsigned char Flags = pTiles[c].m_Flags;
|
unsigned char Flags = pTiles[c].m_Flags;
|
||||||
|
|
||||||
bool Render = false;
|
bool Render = false;
|
||||||
if(Flags&TILEFLAG_OPAQUE)
|
if(Flags&TILEFLAG_OPAQUE && Color.a*a > 250/255.0f)
|
||||||
{
|
{
|
||||||
if(RenderFlags&LAYERRENDERFLAG_OPAQUE)
|
if(RenderFlags&LAYERRENDERFLAG_OPAQUE)
|
||||||
Render = true;
|
Render = true;
|
||||||
|
|
|
@ -27,7 +27,10 @@ void CLayerQuads::Render()
|
||||||
if(m_Image >= 0 && m_Image < m_pEditor->m_Map.m_lImages.size())
|
if(m_Image >= 0 && m_Image < m_pEditor->m_Map.m_lImages.size())
|
||||||
Graphics()->TextureSet(m_pEditor->m_Map.m_lImages[m_Image]->m_TexID);
|
Graphics()->TextureSet(m_pEditor->m_Map.m_lImages[m_Image]->m_TexID);
|
||||||
|
|
||||||
m_pEditor->RenderTools()->RenderQuads(m_lQuads.base_ptr(), m_lQuads.size(), LAYERRENDERFLAG_OPAQUE|LAYERRENDERFLAG_TRANSPARENT, m_pEditor->EnvelopeEval, m_pEditor);
|
Graphics()->BlendNone();
|
||||||
|
m_pEditor->RenderTools()->RenderQuads(m_lQuads.base_ptr(), m_lQuads.size(), LAYERRENDERFLAG_OPAQUE, m_pEditor->EnvelopeEval, m_pEditor);
|
||||||
|
Graphics()->BlendNormal();
|
||||||
|
m_pEditor->RenderTools()->RenderQuads(m_lQuads.base_ptr(), m_lQuads.size(), LAYERRENDERFLAG_TRANSPARENT, m_pEditor->EnvelopeEval, m_pEditor);
|
||||||
}
|
}
|
||||||
|
|
||||||
CQuad *CLayerQuads::NewQuad()
|
CQuad *CLayerQuads::NewQuad()
|
||||||
|
|
|
@ -64,7 +64,11 @@ void CLayerTiles::Render()
|
||||||
m_TexID = m_pEditor->m_Map.m_lImages[m_Image]->m_TexID;
|
m_TexID = m_pEditor->m_Map.m_lImages[m_Image]->m_TexID;
|
||||||
Graphics()->TextureSet(m_TexID);
|
Graphics()->TextureSet(m_TexID);
|
||||||
vec4 Color = vec4(m_Color.r/255.0f, m_Color.g/255.0f, m_Color.b/255.0f, m_Color.a/255.0f);
|
vec4 Color = vec4(m_Color.r/255.0f, m_Color.g/255.0f, m_Color.b/255.0f, m_Color.a/255.0f);
|
||||||
m_pEditor->RenderTools()->RenderTilemap(m_pTiles, m_Width, m_Height, 32.0f, Color, LAYERRENDERFLAG_OPAQUE|LAYERRENDERFLAG_TRANSPARENT,
|
Graphics()->BlendNone();
|
||||||
|
m_pEditor->RenderTools()->RenderTilemap(m_pTiles, m_Width, m_Height, 32.0f, Color, LAYERRENDERFLAG_OPAQUE,
|
||||||
|
m_pEditor->EnvelopeEval, m_pEditor, m_ColorEnv, m_ColorEnvOffset);
|
||||||
|
Graphics()->BlendNormal();
|
||||||
|
m_pEditor->RenderTools()->RenderTilemap(m_pTiles, m_Width, m_Height, 32.0f, Color, LAYERRENDERFLAG_TRANSPARENT,
|
||||||
m_pEditor->EnvelopeEval, m_pEditor, m_ColorEnv, m_ColorEnvOffset);
|
m_pEditor->EnvelopeEval, m_pEditor, m_ColorEnv, m_ColorEnvOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue