Remove fallback mode. GLSL 1.20 or better is now required.
parent
97ef0aee1b
commit
c825e9bf7e
|
@ -135,19 +135,10 @@ static std::vector<SHAPE> shapes;
|
|||
|
||||
static void pie_Draw3DButton2(iIMDShape *shape, const PIELIGHT &colour, const PIELIGHT &teamcolour)
|
||||
{
|
||||
const bool shaders = pie_GetShaderUsage();
|
||||
|
||||
pie_SetAlphaTest(true);
|
||||
pie_SetFogStatus(false);
|
||||
pie_SetDepthBufferStatus(DEPTH_CMP_LEQ_WRT_ON);
|
||||
if (shaders)
|
||||
{
|
||||
pie_ActivateShader(SHADER_BUTTON, shape, teamcolour, colour);
|
||||
}
|
||||
else
|
||||
{
|
||||
pie_ActivateFallback(SHADER_BUTTON, shape, teamcolour, colour);
|
||||
}
|
||||
pie_ActivateShader(SHADER_BUTTON, shape, teamcolour, colour);
|
||||
pie_SetRendMode(REND_OPAQUE);
|
||||
glColor4ubv(colour.vector); // Only need to set once for entire model
|
||||
pie_SetTexturePage(shape->texpage);
|
||||
|
@ -158,39 +149,18 @@ static void pie_Draw3DButton2(iIMDShape *shape, const PIELIGHT &colour, const PI
|
|||
glBindBuffer(GL_ARRAY_BUFFER, shape->buffers[VBO_NORMAL]); glNormalPointer(GL_FLOAT, 0, NULL);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, shape->buffers[VBO_TEXCOORD]); glTexCoordPointer(2, GL_FLOAT, 0, NULL);
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, shape->buffers[VBO_INDEX]);
|
||||
if (!shaders)
|
||||
{
|
||||
glClientActiveTexture(GL_TEXTURE1);
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, shape->buffers[VBO_TEXCOORD]); glTexCoordPointer(2, GL_FLOAT, 0, NULL);
|
||||
}
|
||||
glDrawElements(GL_TRIANGLES, shape->npolys * 3, GL_UNSIGNED_SHORT, NULL);
|
||||
if (!shaders)
|
||||
{
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
glClientActiveTexture(GL_TEXTURE0);
|
||||
}
|
||||
glDisableClientState(GL_VERTEX_ARRAY);
|
||||
glDisableClientState(GL_NORMAL_ARRAY);
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
|
||||
polyCount += shape->npolys;
|
||||
|
||||
if (shaders)
|
||||
{
|
||||
pie_DeactivateShader();
|
||||
}
|
||||
else
|
||||
{
|
||||
pie_DeactivateFallback();
|
||||
}
|
||||
pie_DeactivateShader();
|
||||
pie_SetDepthBufferStatus(DEPTH_CMP_ALWAYS_WRT_ON);
|
||||
}
|
||||
|
||||
static void pie_Draw3DShape2(iIMDShape *shape, int frame, PIELIGHT colour, PIELIGHT teamcolour, int pieFlag, int pieFlagData)
|
||||
{
|
||||
bool light = true;
|
||||
bool shaders = pie_GetShaderUsage();
|
||||
|
||||
pie_SetAlphaTest((pieFlag & pie_PREMULTIPLIED) == 0);
|
||||
|
||||
|
@ -239,25 +209,11 @@ static void pie_Draw3DShape2(iIMDShape *shape, int frame, PIELIGHT colour, PIELI
|
|||
glMaterialfv(GL_FRONT, GL_SPECULAR, shape->material[LIGHT_SPECULAR]);
|
||||
glMaterialf(GL_FRONT, GL_SHININESS, shape->shininess);
|
||||
glMaterialfv(GL_FRONT, GL_EMISSION, shape->material[LIGHT_EMISSIVE]);
|
||||
if (shaders)
|
||||
{
|
||||
pie_ActivateShader(SHADER_COMPONENT, shape, teamcolour, colour);
|
||||
}
|
||||
else
|
||||
{
|
||||
pie_ActivateFallback(SHADER_COMPONENT, shape, teamcolour, colour);
|
||||
}
|
||||
pie_ActivateShader(SHADER_COMPONENT, shape, teamcolour, colour);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (shaders)
|
||||
{
|
||||
pie_DeactivateShader();
|
||||
}
|
||||
else
|
||||
{
|
||||
pie_DeactivateFallback();
|
||||
}
|
||||
pie_DeactivateShader();
|
||||
}
|
||||
|
||||
if (pieFlag & pie_HEIGHT_SCALED) // construct
|
||||
|
@ -278,18 +234,7 @@ static void pie_Draw3DShape2(iIMDShape *shape, int frame, PIELIGHT colour, PIELI
|
|||
glBindBuffer(GL_ARRAY_BUFFER, shape->buffers[VBO_NORMAL]); glNormalPointer(GL_FLOAT, 0, NULL);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, shape->buffers[VBO_TEXCOORD]); glTexCoordPointer(2, GL_FLOAT, 0, NULL);
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, shape->buffers[VBO_INDEX]);
|
||||
if (!shaders)
|
||||
{
|
||||
glClientActiveTexture(GL_TEXTURE1);
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, shape->buffers[VBO_TEXCOORD]); glTexCoordPointer(2, GL_FLOAT, 0, NULL);
|
||||
}
|
||||
glDrawElements(GL_TRIANGLES, shape->npolys * 3, GL_UNSIGNED_SHORT, BUFFER_OFFSET(frame * shape->npolys * 3 * sizeof(uint16_t)));
|
||||
if (!shaders)
|
||||
{
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
glClientActiveTexture(GL_TEXTURE0);
|
||||
}
|
||||
|
||||
polyCount += shape->npolys;
|
||||
|
||||
|
@ -618,14 +563,7 @@ void pie_RemainingPasses(void)
|
|||
glDisableClientState(GL_VERTEX_ARRAY);
|
||||
glDisableClientState(GL_NORMAL_ARRAY);
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
if (pie_GetShaderUsage())
|
||||
{
|
||||
pie_DeactivateShader();
|
||||
}
|
||||
else
|
||||
{
|
||||
pie_DeactivateFallback();
|
||||
}
|
||||
pie_DeactivateShader();
|
||||
glPopMatrix();
|
||||
tshapes.resize(0);
|
||||
shapes.resize(0);
|
||||
|
|
|
@ -36,9 +36,6 @@
|
|||
* Global Variables
|
||||
*/
|
||||
|
||||
static bool shadersAvailable = false;
|
||||
static bool shaderUsage = false;
|
||||
static bool fallbackAvailable = true;
|
||||
static GLuint shaderProgram[SHADER_MAX];
|
||||
static GLfloat shaderStretch = 0;
|
||||
static GLint locTeam, locStretch, locTCMask, locFog, locNormalMap, locEcm, locTime;
|
||||
|
@ -131,39 +128,6 @@ PIELIGHT pie_GetFogColour(void)
|
|||
return rendStates.fogColour;
|
||||
}
|
||||
|
||||
bool pie_GetShaderAvailability(void)
|
||||
{
|
||||
return shadersAvailable;
|
||||
}
|
||||
|
||||
void pie_SetShaderAvailability(bool availability)
|
||||
{
|
||||
shadersAvailable = availability;
|
||||
}
|
||||
|
||||
bool pie_GetFallbackAvailability(void)
|
||||
{
|
||||
return fallbackAvailable;
|
||||
}
|
||||
|
||||
void pie_SetFallbackAvailability(bool availability)
|
||||
{
|
||||
fallbackAvailable = availability;
|
||||
}
|
||||
|
||||
bool pie_GetShaderUsage(void)
|
||||
{
|
||||
return shaderUsage;
|
||||
}
|
||||
|
||||
void pie_SetShaderUsage(bool usage)
|
||||
{
|
||||
bool valid = !usage && pie_GetFallbackAvailability();
|
||||
valid = valid || (usage && pie_GetShaderAvailability());
|
||||
if (valid)
|
||||
shaderUsage = usage;
|
||||
}
|
||||
|
||||
// Read shader into text buffer
|
||||
static char *readShaderBuf(const char *name)
|
||||
{
|
||||
|
@ -365,78 +329,6 @@ void pie_SetShaderStretchDepth(float stretch)
|
|||
shaderStretch = stretch;
|
||||
}
|
||||
|
||||
void pie_ActivateFallback(SHADER_MODE, iIMDShape* shape, PIELIGHT teamcolour, PIELIGHT colour)
|
||||
{
|
||||
if (shape->tcmaskpage == iV_TEX_INVALID)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//Set the environment colour with tcmask
|
||||
GLfloat tc_env_colour[4];
|
||||
pal_PIELIGHTtoRGBA4f(&tc_env_colour[0], teamcolour);
|
||||
|
||||
// TU0
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
pie_SetTexturePage(shape->texpage);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
|
||||
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, tc_env_colour);
|
||||
|
||||
// TU0 RGB
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_ADD_SIGNED);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_CONSTANT);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
|
||||
|
||||
// TU0 Alpha
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
|
||||
|
||||
// TU1
|
||||
glActiveTexture(GL_TEXTURE1);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glBindTexture(GL_TEXTURE_2D, pie_Texture(shape->tcmaskpage));
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
|
||||
|
||||
// TU1 RGB
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE0);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB, GL_TEXTURE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA);
|
||||
|
||||
// TU1 Alpha
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
|
||||
|
||||
if (GLEW_ARB_imaging || GLEW_EXT_blend_color)
|
||||
{
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_CONSTANT_COLOR, GL_ZERO);
|
||||
glBlendColor(colour.byte.r / 255.0, colour.byte.g / 255.0, colour.byte.b / 255.0, colour.byte.a / 255.0);
|
||||
}
|
||||
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
}
|
||||
|
||||
void pie_DeactivateFallback()
|
||||
{
|
||||
glDisable(GL_BLEND);
|
||||
rendStates.rendMode = REND_OPAQUE;
|
||||
|
||||
glActiveTexture(GL_TEXTURE1);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
}
|
||||
|
||||
void pie_ActivateShader(SHADER_MODE shaderMode, iIMDShape* shape, PIELIGHT teamcolour, PIELIGHT colour)
|
||||
{
|
||||
int maskpage = shape->tcmaskpage;
|
||||
|
|
|
@ -82,20 +82,11 @@ extern void pie_SetTexturePage(SDWORD num);
|
|||
extern void pie_SetAlphaTest(bool keyingOn);
|
||||
extern void pie_SetRendMode(REND_MODE rendMode);
|
||||
|
||||
// Shaders control center
|
||||
extern bool pie_GetShaderAvailability(void);
|
||||
extern void pie_SetShaderAvailability(bool);
|
||||
extern bool pie_GetFallbackAvailability(void);
|
||||
extern void pie_SetFallbackAvailability(bool);
|
||||
extern bool pie_GetShaderUsage(void);
|
||||
extern void pie_SetShaderUsage(bool);
|
||||
bool pie_LoadShaders();
|
||||
|
||||
bool pie_LoadShaders(void);
|
||||
// Actual shaders (we do not want to export these calls)
|
||||
void pie_DeactivateShader(void);
|
||||
void pie_DeactivateFallback(void);
|
||||
void pie_ActivateShader(SHADER_MODE shaderMode, iIMDShape* shape, PIELIGHT teamcolour, PIELIGHT colour);
|
||||
void pie_ActivateFallback(SHADER_MODE shaderMode, iIMDShape* shape, PIELIGHT teamcolour, PIELIGHT colour);
|
||||
void pie_DeactivateShader();
|
||||
void pie_SetShaderStretchDepth(float stretch);
|
||||
void pie_SetShaderTime(uint32_t shaderTime);
|
||||
void pie_SetShaderEcmEffect(bool value);
|
||||
|
|
|
@ -168,30 +168,13 @@ bool screenInitialise()
|
|||
}
|
||||
|
||||
bool haveARB_vertex_buffer_object = GLEW_ARB_vertex_buffer_object || GLEW_VERSION_1_5;
|
||||
bool haveARB_texture_env_crossbar = GLEW_ARB_texture_env_crossbar || GLEW_NV_texture_env_combine4 || GLEW_VERSION_1_4;
|
||||
bool canRunFallback = GLEW_VERSION_1_2 && haveARB_vertex_buffer_object && haveARB_texture_env_crossbar;
|
||||
bool canRunShaders = GLEW_VERSION_1_2 && haveARB_vertex_buffer_object && glslVersion >= std::make_pair(1, 20); // glGetString(GL_SHADING_LANGUAGE_VERSION) >= "1.20"
|
||||
|
||||
pie_SetFallbackAvailability(canRunFallback);
|
||||
|
||||
if (canRunShaders)
|
||||
screen_EnableMissingFunctions(); // We need to do this before pie_LoadShaders(), but the effect of this call will be undone later by iV_TextInit(), so we will need to call it again.
|
||||
if (!canRunShaders || !pie_LoadShaders())
|
||||
{
|
||||
screen_EnableMissingFunctions(); // We need to do this before pie_LoadShaders(), but the effect of this call will be undone later by iV_TextInit(), so we will need to call it again.
|
||||
if (pie_LoadShaders())
|
||||
{
|
||||
pie_SetShaderAvailability(true);
|
||||
}
|
||||
}
|
||||
else if (canRunFallback)
|
||||
{
|
||||
// corner cases: vbo(core 1.5 or ARB ext), texture crossbar (core 1.4 or ARB ext)
|
||||
debug(LOG_POPUP, _("OpenGL GLSL shader version 1.20 is not supported by your system. Some things may look wrong. Please upgrade your graphics driver/hardware, if possible."));
|
||||
}
|
||||
else
|
||||
{
|
||||
// We write this file in hopes that people will upload the information in it to us.
|
||||
writeGameInfo("WZdebuginfo.txt");
|
||||
debug(LOG_FATAL, _("OpenGL 1.2 + VBO + TEC is not supported by your system. The game requires this. Please upgrade your graphics drivers/hardware, if possible."));
|
||||
debug(LOG_FATAL, _("OpenGL GLSL shader version 1.20 is not supported by your system. The game requires this. Please upgrade your graphics drivers/hardware, if possible."));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
|
|
@ -232,7 +232,6 @@ typedef enum
|
|||
CLI_CRASH,
|
||||
CLI_TEXTURECOMPRESSION,
|
||||
CLI_NOTEXTURECOMPRESSION,
|
||||
CLI_FALLBACKMODE,
|
||||
} CLI_OPTIONS;
|
||||
|
||||
static const struct poptOption* getOptionsTable(void)
|
||||
|
@ -264,7 +263,6 @@ static const struct poptOption* getOptionsTable(void)
|
|||
{ "host", '\0', POPT_ARG_NONE, NULL, CLI_HOSTLAUNCH, N_("go directly to host screen"), NULL },
|
||||
{ "texturecompression", '\0', POPT_ARG_NONE, NULL, CLI_TEXTURECOMPRESSION, N_("Enable texture compression"), NULL },
|
||||
{ "notexturecompression", '\0', POPT_ARG_NONE, NULL, CLI_NOTEXTURECOMPRESSION, N_("Disable texture compression"), NULL },
|
||||
{ "fallback-mode", '\0', POPT_ARG_NONE, NULL, CLI_FALLBACKMODE, N_("Only use OpenGL 1.5"), NULL },
|
||||
// Terminating entry
|
||||
{ NULL, '\0', 0, NULL, 0, NULL, NULL },
|
||||
};
|
||||
|
@ -597,10 +595,6 @@ bool ParseCommandLine(int argc, const char** argv)
|
|||
case CLI_NOTEXTURECOMPRESSION:
|
||||
wz_texture_compression = GL_RGBA;
|
||||
break;
|
||||
|
||||
case CLI_FALLBACKMODE:
|
||||
war_SetShaders(SHADERS_OFF);
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
#include "radar.h"
|
||||
#include "seqdisp.h"
|
||||
#include "texture.h"
|
||||
#include "warzoneconfig.h" // renderMode
|
||||
#include "warzoneconfig.h"
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -117,7 +117,6 @@ bool loadConfig()
|
|||
if (ini.contains("textureSize")) setTextureSize(ini.value("textureSize").toInt());
|
||||
NetPlay.isUPNP = ini.value("UPnP", true).toBool();
|
||||
if (ini.contains("FSAA")) war_setFSAA(ini.value("FSAA").toInt());
|
||||
if (ini.contains("shaders")) war_SetShaders(ini.value("shaders").toInt());
|
||||
// Leave this to false, some system will fail and they can't see the system popup dialog!
|
||||
war_setFullscreen(ini.value("fullscreen", false).toBool());
|
||||
war_SetTrapCursor(ini.value("trapCursor", false).toBool());
|
||||
|
@ -184,7 +183,6 @@ bool saveConfig()
|
|||
ini.setValue("radarTerrainMode",(SDWORD)radarDrawMode);
|
||||
ini.setValue("trapCursor", war_GetTrapCursor());
|
||||
ini.setValue("vsync", war_GetVsync());
|
||||
ini.setValue("shaders", war_GetShaders());
|
||||
ini.setValue("textureSize", getTextureSize());
|
||||
ini.setValue("FSAA", war_getFSAA());
|
||||
ini.setValue("UPnP", (SDWORD)NetPlay.isUPNP);
|
||||
|
|
|
@ -990,18 +990,6 @@ static bool startVideoOptionsMenu(void)
|
|||
break;
|
||||
}
|
||||
|
||||
// Shaders
|
||||
addTextButton(FRONTEND_SHADERS, FRONTEND_POS6X-35, FRONTEND_POS7Y, _("Shaders"), 0);
|
||||
|
||||
if (war_GetShaders() == SHADERS_ON || war_GetShaders() == SHADERS_ONLY)
|
||||
{
|
||||
addTextButton(FRONTEND_SHADERS_R, FRONTEND_POS6M-55, FRONTEND_POS7Y, _("On"), 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
addTextButton(FRONTEND_SHADERS_R, FRONTEND_POS6M-55, FRONTEND_POS7Y, _("Off"), 0);
|
||||
}
|
||||
|
||||
// Add some text down the side of the form
|
||||
addSideText(FRONTEND_SIDETEXT, FRONTEND_SIDEX, FRONTEND_SIDEY, _("VIDEO OPTIONS"));
|
||||
|
||||
|
@ -1164,28 +1152,6 @@ bool runVideoOptionsMenu(void)
|
|||
break;
|
||||
}
|
||||
|
||||
case FRONTEND_SHADERS:
|
||||
case FRONTEND_SHADERS_R:
|
||||
{
|
||||
switch (war_GetShaders())
|
||||
{
|
||||
case SHADERS_ON:
|
||||
war_SetShaders(SHADERS_OFF);
|
||||
pie_SetShaderUsage(false);
|
||||
widgSetString(psWScreen, FRONTEND_SHADERS_R, _("Off"));
|
||||
break;
|
||||
case SHADERS_OFF:
|
||||
war_SetShaders(SHADERS_ON);
|
||||
pie_SetShaderUsage(true);
|
||||
widgSetString(psWScreen, FRONTEND_SHADERS_R, _("On"));
|
||||
break;
|
||||
case FALLBACK:
|
||||
case SHADERS_ONLY:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case FRONTEND_QUIT:
|
||||
changeTitleMode(OPTIONS);
|
||||
break;
|
||||
|
|
|
@ -241,8 +241,6 @@ enum
|
|||
FRONTEND_VSYNC_R,
|
||||
FRONTEND_FSAA,
|
||||
FRONTEND_FSAA_R,
|
||||
FRONTEND_SHADERS,
|
||||
FRONTEND_SHADERS_R,
|
||||
|
||||
FRONTEND_MOUSEOPTIONS = 25000, // Mouse Options Menu
|
||||
FRONTEND_TRAP,
|
||||
|
|
29
src/main.cpp
29
src/main.cpp
|
@ -1249,35 +1249,6 @@ int realmain(int argc, char *argv[])
|
|||
war_SetWidth(pie_GetVideoBufferWidth());
|
||||
war_SetHeight(pie_GetVideoBufferHeight());
|
||||
|
||||
// Fix up settings from the config file
|
||||
// And initialize shader usage setting
|
||||
if (!pie_GetShaderAvailability())
|
||||
{
|
||||
war_SetShaders(FALLBACK);
|
||||
pie_SetShaderUsage(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (war_GetShaders() == FALLBACK)
|
||||
{
|
||||
war_SetShaders(SHADERS_OFF);
|
||||
}
|
||||
if (!pie_GetFallbackAvailability())
|
||||
{
|
||||
war_SetShaders(SHADERS_ONLY);
|
||||
pie_SetShaderUsage(true);
|
||||
}
|
||||
else if (war_GetShaders() == SHADERS_ONLY || war_GetShaders() == SHADERS_ON)
|
||||
{
|
||||
war_SetShaders(SHADERS_ON);
|
||||
pie_SetShaderUsage(true);
|
||||
}
|
||||
else // (war_GetShaders() == SHADERS_OFF)
|
||||
{
|
||||
pie_SetShaderUsage(false);
|
||||
}
|
||||
}
|
||||
|
||||
pie_SetFogStatus(false);
|
||||
pie_ScreenFlip(CLEAR_BLACK);
|
||||
|
||||
|
|
|
@ -52,7 +52,6 @@ struct WARZONE_GLOBALS
|
|||
int8_t SPcolor;
|
||||
int MPcolour;
|
||||
FSAA_LEVEL fsaa;
|
||||
RENDER_MODE shaders;
|
||||
bool Fullscreen;
|
||||
bool soundEnabled;
|
||||
bool trapCursor;
|
||||
|
@ -91,7 +90,6 @@ void war_SetDefaultStates(void)//Sets all states
|
|||
war_SetMusicEnabled(true);
|
||||
war_SetSPcolor(0); //default color is green
|
||||
war_setMPcolour(-1); // Default color is random.
|
||||
war_SetShaders(SHADERS_ON);
|
||||
}
|
||||
|
||||
void war_SetSPcolor(int color)
|
||||
|
@ -139,16 +137,6 @@ unsigned int war_getFSAA()
|
|||
return warGlobs.fsaa;
|
||||
}
|
||||
|
||||
void war_SetShaders(unsigned shaders)
|
||||
{
|
||||
warGlobs.shaders = (RENDER_MODE)shaders;
|
||||
}
|
||||
|
||||
unsigned war_GetShaders()
|
||||
{
|
||||
return warGlobs.shaders;
|
||||
}
|
||||
|
||||
void war_SetTrapCursor(bool b)
|
||||
{
|
||||
warGlobs.trapCursor = b;
|
||||
|
|
|
@ -49,13 +49,6 @@ enum FSAA_LEVEL
|
|||
FSAA_MAX
|
||||
};
|
||||
|
||||
enum RENDER_MODE
|
||||
{
|
||||
FALLBACK, /// Shaders not supported
|
||||
SHADERS_OFF,/// Shaders supported but off (fallback supported)
|
||||
SHADERS_ON, /// Shaders supported and on (fallback supported)
|
||||
SHADERS_ONLY/// Shaders but no fallback support
|
||||
};
|
||||
/***************************************************************************/
|
||||
/*
|
||||
* Global ProtoTypes
|
||||
|
@ -74,8 +67,6 @@ extern void war_SetTrapCursor(bool b);
|
|||
extern bool war_GetTrapCursor(void);
|
||||
extern void war_SetVsync(bool b);
|
||||
extern bool war_GetVsync(void);
|
||||
extern void war_SetShaders(unsigned);
|
||||
extern unsigned war_GetShaders(void);
|
||||
extern void war_SetWidth(UDWORD width);
|
||||
extern UDWORD war_GetWidth(void);
|
||||
extern void war_SetHeight(UDWORD height);
|
||||
|
|
Loading…
Reference in New Issue