mirror of
https://github.com/UberGames/GtkRadiant.git
synced 2024-11-22 03:41:39 +00:00
* hacked quake2 transparent surfaces support into the draw brush function
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/branches/ZeroRadiant@223 8a3a26a2-13c4-0310-b231-cf6edde360e5
This commit is contained in:
parent
6d06cd9779
commit
cbe18164fb
1 changed files with 18 additions and 3 deletions
|
@ -2889,6 +2889,9 @@ void Brush_FaceDraw(face_t *face, int nGLState)
|
|||
qglEnd();
|
||||
}
|
||||
|
||||
#define Q2_SURF_TRANS33 0x00000010
|
||||
#define Q2_SURF_TRANS66 0x00000020
|
||||
|
||||
void Brush_Draw(brush_t *b)
|
||||
{
|
||||
face_t *face;
|
||||
|
@ -2907,6 +2910,7 @@ void Brush_Draw(brush_t *b)
|
|||
|
||||
// guarantee the texture will be set first
|
||||
bool bTrans;
|
||||
float transVal;
|
||||
prev = NULL;
|
||||
for (face = b->brush_faces,order = 0 ; face ; face=face->next, order++)
|
||||
{
|
||||
|
@ -2916,7 +2920,18 @@ void Brush_Draw(brush_t *b)
|
|||
continue; // freed face
|
||||
}
|
||||
|
||||
bTrans = (face->pShader->getFlags() & QER_TRANS);
|
||||
bTrans = (face->pShader->getFlags() & QER_TRANS);
|
||||
transVal = face->pShader->getTrans();
|
||||
// try to read the texture def surface flags to get trans
|
||||
if (!bTrans) {
|
||||
if (face->texdef.flags & Q2_SURF_TRANS33) {
|
||||
bTrans = true;
|
||||
transVal = 0.33;
|
||||
} else if (face->texdef.flags & Q2_SURF_TRANS66) {
|
||||
bTrans = true;
|
||||
transVal = 0.66;
|
||||
}
|
||||
}
|
||||
|
||||
if (bTrans && !(nGLState & DRAW_GL_BLEND))
|
||||
continue;
|
||||
|
@ -2960,7 +2975,7 @@ void Brush_Draw(brush_t *b)
|
|||
if (nGLState & DRAW_GL_LIGHTING && !g_PrefsDlg.m_bGLLighting)
|
||||
{
|
||||
if (!b->owner->eclass->fixedsize)
|
||||
material[3] = face->pShader->getTrans();
|
||||
material[3] = transVal;
|
||||
else
|
||||
material[3] = 1;
|
||||
VectorCopy(face->d_color, material);
|
||||
|
@ -2974,7 +2989,7 @@ void Brush_Draw(brush_t *b)
|
|||
{
|
||||
pShader = face->pShader;
|
||||
VectorCopy(pShader->getTexture()->color, material);
|
||||
material[3] = identity[3] = pShader->getTrans();
|
||||
material[3] = identity[3] = transVal;
|
||||
|
||||
if (nGLState & DRAW_GL_TEXTURE_2D)
|
||||
qglColor4fv(identity);
|
||||
|
|
Loading…
Reference in a new issue