Use GLC_TEXTURE for font rendering. Patch by Bertrand Coconnier in bug #10188.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2646 4a71c877-e1ca-e34f-864e-861f7616d084master
parent
e808d83f0c
commit
49df8ea371
|
@ -47,17 +47,6 @@ extern unsigned int iV_GetCharWidth(uint32_t charCode);
|
||||||
extern unsigned int iV_GetTextHeight(const char* string);
|
extern unsigned int iV_GetTextHeight(const char* string);
|
||||||
extern void iV_SetTextColour(SWORD Index);
|
extern void iV_SetTextColour(SWORD Index);
|
||||||
|
|
||||||
/** Enable or disable anti-aliasing of text
|
|
||||||
* \param enable set this to true to enable anti-aliassing of text,
|
|
||||||
* set it to false to disable it.
|
|
||||||
*/
|
|
||||||
extern void iV_SetTextAntialias(bool enable);
|
|
||||||
|
|
||||||
/** Find out if anti-aliasing of text is enabled or disabled
|
|
||||||
* \return true if anti-aliassing of text is enabled, false otherwise
|
|
||||||
*/
|
|
||||||
extern bool iV_TextAntialiased(void);
|
|
||||||
|
|
||||||
#define ASCII_SPACE (32)
|
#define ASCII_SPACE (32)
|
||||||
#define ASCII_NEWLINE ('@')
|
#define ASCII_NEWLINE ('@')
|
||||||
#define ASCII_COLOURMODE ('#')
|
#define ASCII_COLOURMODE ('#')
|
||||||
|
|
|
@ -45,8 +45,6 @@ static GLint GLC_Context = 0;
|
||||||
static GLint GLC_Font_Regular = 0;
|
static GLint GLC_Font_Regular = 0;
|
||||||
static GLint GLC_Font_Bold = 0;
|
static GLint GLC_Font_Bold = 0;
|
||||||
|
|
||||||
static bool anti_aliasing = true;
|
|
||||||
|
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
/*
|
/*
|
||||||
* Source
|
* Source
|
||||||
|
@ -103,7 +101,7 @@ static void iV_initializeGLC()
|
||||||
glcContext(GLC_Context);
|
glcContext(GLC_Context);
|
||||||
|
|
||||||
glcDisable(GLC_AUTO_FONT);
|
glcDisable(GLC_AUTO_FONT);
|
||||||
glcRenderStyle(GLC_TRIANGLE);
|
glcRenderStyle(GLC_TEXTURE);
|
||||||
|
|
||||||
GLC_Font_Regular = glcGenFontID();
|
GLC_Font_Regular = glcGenFontID();
|
||||||
GLC_Font_Bold = glcGenFontID();
|
GLC_Font_Bold = glcGenFontID();
|
||||||
|
@ -180,16 +178,6 @@ void iV_TextShutdown()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void iV_SetTextAntialias(bool enable)
|
|
||||||
{
|
|
||||||
anti_aliasing = enable;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool iV_TextAntialiased()
|
|
||||||
{
|
|
||||||
return anti_aliasing;
|
|
||||||
}
|
|
||||||
|
|
||||||
void iV_SetFont(enum iV_fonts FontID)
|
void iV_SetFont(enum iV_fonts FontID)
|
||||||
{
|
{
|
||||||
switch (FontID)
|
switch (FontID)
|
||||||
|
@ -612,15 +600,15 @@ UDWORD iV_DrawFormattedText(const char* String, UDWORD x, UDWORD y, UDWORD Width
|
||||||
|
|
||||||
void iV_DrawTextRotated(const char* string, float XPos, float YPos, float rotation)
|
void iV_DrawTextRotated(const char* string, float XPos, float YPos, float rotation)
|
||||||
{
|
{
|
||||||
|
GLint matrix_mode = 0;
|
||||||
|
|
||||||
pie_SetTexturePage(-2);
|
pie_SetTexturePage(-2);
|
||||||
|
|
||||||
// Enable Anti Aliasing if it's enabled
|
glGetIntegerv(GL_MATRIX_MODE, &matrix_mode);
|
||||||
if (anti_aliasing)
|
glMatrixMode(GL_TEXTURE);
|
||||||
{
|
glPushMatrix();
|
||||||
glEnable(GL_BLEND);
|
glLoadIdentity();
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
|
glMatrixMode(matrix_mode);
|
||||||
glEnable(GL_POLYGON_SMOOTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rotation != 0.f)
|
if (rotation != 0.f)
|
||||||
{
|
{
|
||||||
|
@ -638,12 +626,9 @@ void iV_DrawTextRotated(const char* string, float XPos, float YPos, float rotati
|
||||||
glcRenderString(string);
|
glcRenderString(string);
|
||||||
glFrontFace(GL_CCW);
|
glFrontFace(GL_CCW);
|
||||||
|
|
||||||
// Turn off anti aliasing (if we enabled it above)
|
glMatrixMode(GL_TEXTURE);
|
||||||
if (anti_aliasing)
|
glPopMatrix();
|
||||||
{
|
glMatrixMode(matrix_mode);
|
||||||
glDisable(GL_BLEND);
|
|
||||||
glDisable(GL_POLYGON_SMOOTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Reset the current model view matrix
|
// Reset the current model view matrix
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
#include "lib/sound/track.h" // audio
|
#include "lib/sound/track.h" // audio
|
||||||
#include "lib/sound/cdaudio.h" // audio
|
#include "lib/sound/cdaudio.h" // audio
|
||||||
#include "lib/ivis_common/piestate.h" // setgamma.
|
#include "lib/ivis_common/piestate.h" // setgamma.
|
||||||
#include "lib/ivis_common/textdraw.h" // text-antialiassing
|
|
||||||
#include "warzoneconfig.h" // renderMode
|
#include "warzoneconfig.h" // renderMode
|
||||||
#include "component.h"
|
#include "component.h"
|
||||||
#include "text.h"
|
#include "text.h"
|
||||||
|
@ -517,16 +516,6 @@ BOOL loadConfig(void)
|
||||||
setWarzoneKeyNumeric("radarTerrainMode", radarDrawMode);
|
setWarzoneKeyNumeric("radarTerrainMode", radarDrawMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getWarzoneKeyNumeric("text-antialiassing", &val))
|
|
||||||
{
|
|
||||||
iV_SetTextAntialias(val);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
iV_SetTextAntialias(true);
|
|
||||||
setWarzoneKeyNumeric("text-antialiassing", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
return closeWarzoneKey();
|
return closeWarzoneKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -633,8 +622,6 @@ BOOL saveConfig(void)
|
||||||
setWarzoneKeyString("phrase4", ingame.phrases[4]);
|
setWarzoneKeyString("phrase4", ingame.phrases[4]);
|
||||||
}
|
}
|
||||||
|
|
||||||
setWarzoneKeyNumeric("text-antialiassing", iV_TextAntialiased());
|
|
||||||
|
|
||||||
return closeWarzoneKey();
|
return closeWarzoneKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue