/*
=================
HUD_DrawOrthoTriangles
Orthogonal Triangles -- (relative to resolution,
smackdab on the screen) add them here
=================
*/
void HUD_DrawOrthoTriangles( void )
{
}
redraw()
:
void HUD_DrawOrthoTriangles( void );
int CHud :: Redraw( float flTime, int intermission )
{
HUD_DrawOrthoTriangles
is called from the HUD draw functions, because at this point the engine is already in orthogonal mode. Hence, the Z coord is a "magic 0", because it's not rendering in world space in ortho, it's 2D.
...
pList = pList->pNext;
}
}
//omega;draw orthogonal triangles
HUD_DrawOrthoTriangles();
// are we in demo mode? do we need to
// draw the logo in the top corner?
if (m_iLogo)
...
#define ORTHOEXAMPLE
#ifdef ORTHOEXAMPLE
void OrthoExample()
{
gEngfuncs.pTriAPI->RenderMode(kRenderTransAdd); //additive
// use hotglow, or any other sprite for the texture
gEngfuncs.pTriAPI->SpriteTexture( (struct model_s *)
gEngfuncs.GetSpritePointer(SPR_Load("sprites/hotglow.spr")),
0);
gEngfuncs.pTriAPI->CullFace( TRI_NONE ); //no culling
gEngfuncs.pTriAPI->Begin(TRI_QUADS); //start our quad
//remember, always list vertices in counter-clockwise
// order, unless you want the quad to be backwards =)
// the third value of vertex3f will always be 0 in ortho mode,
// don't change it unless you wan't funny things to happen.
//top left
gEngfuncs.pTriAPI->TexCoord2f(0.0f, 1.0f);
gEngfuncs.pTriAPI->Vertex3f(0, 0, 0);
//bottom left
gEngfuncs.pTriAPI->TexCoord2f(0.0f, 0.0f);
gEngfuncs.pTriAPI->Vertex3f(0, ScreenHeight, 0);
//bottom right
gEngfuncs.pTriAPI->TexCoord2f(1.0f, 0.0f);
gEngfuncs.pTriAPI->Vertex3f(ScreenWidth, ScreenHeight, 0);
//top right
gEngfuncs.pTriAPI->TexCoord2f(1.0f, 1.0f);
gEngfuncs.pTriAPI->Vertex3f(ScreenWidth, 0, 0);
gEngfuncs.pTriAPI->End(); //end our list of vertexes
gEngfuncs.pTriAPI->RenderMode(kRenderNormal); //return to normal
}
#endif
void HUD_DrawOrthoTriangles( void )
{
#ifdef ORTHOEXAMPLE
OrthoExample();
#endif
}
That about does it for this "tutorial". You now have the framework to draw triangles onto the hud with ease using TriAPI. Have fun, and enjoy! If you have any questions, email me at omega@thewavelength.net.You must log in to post a comment. You can login or register a new account.