Backport recent renderer2 changes from ioq3 and adapt renderer2 to use new import interface
Code cleanup
This commit is contained in:
parent
c16665b4cf
commit
fb514e3058
|
@ -121,6 +121,87 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
#include "glext.h"
|
||||
|
||||
// GL function loader, based on https://gist.github.com/rygorous/16796a0c876cf8a5f542caddb55bce8a
|
||||
// get missing functions from code/SDL2/include/SDL_opengl.h
|
||||
|
||||
// OpenGL 1.0/1.1 and OpenGL ES 1.0
|
||||
#define QGL_1_1_PROCS \
|
||||
GLE(void, AlphaFunc, GLenum func, GLclampf ref) \
|
||||
GLE(void, BindTexture, GLenum target, GLuint texture) \
|
||||
GLE(void, BlendFunc, GLenum sfactor, GLenum dfactor) \
|
||||
GLE(void, ClearColor, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) \
|
||||
GLE(void, Clear, GLbitfield mask) \
|
||||
GLE(void, ClearStencil, GLint s) \
|
||||
GLE(void, Color4f, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) \
|
||||
GLE(void, ColorMask, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) \
|
||||
GLE(void, ColorPointer, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr) \
|
||||
GLE(void, CopyTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) \
|
||||
GLE(void, CullFace, GLenum mode) \
|
||||
GLE(void, DeleteTextures, GLsizei n, const GLuint *textures) \
|
||||
GLE(void, DepthFunc, GLenum func) \
|
||||
GLE(void, DepthMask, GLboolean flag) \
|
||||
GLE(void, DisableClientState, GLenum cap) \
|
||||
GLE(void, Disable, GLenum cap) \
|
||||
GLE(void, DrawArrays, GLenum mode, GLint first, GLsizei count) \
|
||||
GLE(void, DrawElements, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) \
|
||||
GLE(void, EnableClientState, GLenum cap) \
|
||||
GLE(void, Enable, GLenum cap) \
|
||||
GLE(void, Finish, void) \
|
||||
GLE(void, Flush, void) \
|
||||
GLE(void, GenTextures, GLsizei n, GLuint *textures ) \
|
||||
GLE(void, GetBooleanv, GLenum pname, GLboolean *params) \
|
||||
GLE(GLenum, GetError, void) \
|
||||
GLE(void, GetIntegerv, GLenum pname, GLint *params) \
|
||||
GLE(const GLubyte *, GetString, GLenum name) \
|
||||
GLE(void, LineWidth, GLfloat width) \
|
||||
GLE(void, LoadIdentity, void) \
|
||||
GLE(void, LoadMatrixf, const GLfloat *m) \
|
||||
GLE(void, MatrixMode, GLenum mode) \
|
||||
GLE(void, PolygonOffset, GLfloat factor, GLfloat units) \
|
||||
GLE(void, PopMatrix, void) \
|
||||
GLE(void, PushMatrix, void) \
|
||||
GLE(void, ReadPixels, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) \
|
||||
GLE(void, Scissor, GLint x, GLint y, GLsizei width, GLsizei height) \
|
||||
GLE(void, ShadeModel, GLenum mode) \
|
||||
GLE(void, StencilFunc, GLenum func, GLint ref, GLuint mask) \
|
||||
GLE(void, StencilMask, GLuint mask) \
|
||||
GLE(void, StencilOp, GLenum fail, GLenum zfail, GLenum zpass) \
|
||||
GLE(void, TexCoordPointer, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr) \
|
||||
GLE(void, TexEnvf, GLenum target, GLenum pname, GLfloat param) \
|
||||
GLE(void, TexImage2D, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) \
|
||||
GLE(void, TexParameterf, GLenum target, GLenum pname, GLfloat param) \
|
||||
GLE(void, TexParameteri, GLenum target, GLenum pname, GLint param) \
|
||||
GLE(void, TexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) \
|
||||
GLE(void, Translatef, GLfloat x, GLfloat y, GLfloat z) \
|
||||
GLE(void, VertexPointer, GLint size, GLenum type, GLsizei stride, const GLvoid *ptr) \
|
||||
GLE(void, Viewport, GLint x, GLint y, GLsizei width, GLsizei height) \
|
||||
|
||||
// OpenGL 1.0/1.1 but not OpenGL ES 1.x
|
||||
#define QGL_DESKTOP_1_1_PROCS \
|
||||
GLE(void, ArrayElement, GLint i) \
|
||||
GLE(void, Begin, GLenum mode) \
|
||||
GLE(void, ClearDepth, GLclampd depth) \
|
||||
GLE(void, ClipPlane, GLenum plane, const GLdouble *equation) \
|
||||
GLE(void, Color3f, GLfloat red, GLfloat green, GLfloat blue) \
|
||||
GLE(void, Color4ubv, const GLubyte *v) \
|
||||
GLE(void, DepthRange, GLclampd near_val, GLclampd far_val) \
|
||||
GLE(void, DrawBuffer, GLenum mode) \
|
||||
GLE(void, End, void) \
|
||||
GLE(void, Frustum, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val) \
|
||||
GLE(void, Ortho, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val) \
|
||||
GLE(void, PolygonMode, GLenum face, GLenum mode) \
|
||||
GLE(void, TexCoord2f, GLfloat s, GLfloat t) \
|
||||
GLE(void, TexCoord2fv, const GLfloat *v) \
|
||||
GLE(void, Vertex2f, GLfloat x, GLfloat y) \
|
||||
GLE(void, Vertex3f, GLfloat x, GLfloat y, GLfloat z) \
|
||||
GLE(void, Vertex3fv, const GLfloat *v) \
|
||||
|
||||
// OpenGL ES 1.1 but not desktop OpenGL 1.x
|
||||
#define QGL_ES_1_1_PROCS \
|
||||
GLE(void, ClearDepthf, GLclampf depth) \
|
||||
GLE(void, ClipPlanef, GLenum plane, const GLfloat *equation) \
|
||||
GLE(void, DepthRangef, GLclampf near_val, GLclampf far_val) \
|
||||
GLE(void, Frustumf, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near_val, GLfloat far_val) \
|
||||
GLE(void, Orthof, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near_val, GLfloat far_val) \
|
||||
|
||||
// OpenGL 1.3, was GL_ARB_texture_compression
|
||||
#define QGL_1_3_PROCS \
|
||||
|
@ -299,6 +380,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
GLE(GLvoid, NamedFramebufferRenderbufferEXT, GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) \
|
||||
|
||||
#define GLE(ret, name, ...) typedef ret APIENTRY name##proc(__VA_ARGS__); extern name##proc * qgl##name;
|
||||
QGL_1_1_PROCS;
|
||||
QGL_DESKTOP_1_1_PROCS;
|
||||
QGL_ES_1_1_PROCS;
|
||||
QGL_1_3_PROCS;
|
||||
QGL_1_5_PROCS;
|
||||
QGL_2_0_PROCS;
|
||||
|
@ -308,4 +392,10 @@ QGL_ARB_vertex_array_object_PROCS;
|
|||
QGL_EXT_direct_state_access_PROCS;
|
||||
#undef GLE
|
||||
|
||||
extern int qglMajorVersion, qglMinorVersion;
|
||||
extern int qglesMajorVersion, qglesMinorVersion;
|
||||
#define QGL_VERSION_ATLEAST( major, minor ) ( qglMajorVersion > major || ( qglMajorVersion == major && qglMinorVersion >= minor ) )
|
||||
#define QGLES_VERSION_ATLEAST( major, minor ) ( qglesMajorVersion > major || ( qglesMajorVersion == major && qglesMinorVersion >= minor ) )
|
||||
|
||||
|
||||
#endif // __QGL_H__
|
||||
|
|
|
@ -23,16 +23,17 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning (disable : 4054 )
|
||||
# define SDL_GL_GetProcAddress( a ) qwglGetProcAddress( a )
|
||||
#else
|
||||
# define SDL_GL_GetProcAddress( a ) (void *)qwglGetProcAddress( a )
|
||||
#pragma warning (disable : 4054 )
|
||||
#endif
|
||||
|
||||
#define SDL_GL_GetProcAddress( a ) ri.GL_GetProcAddress( a )
|
||||
|
||||
#include "tr_local.h"
|
||||
#include "tr_dsa.h"
|
||||
|
||||
#define GLE(ret, name, ...) name##proc * qgl##name;
|
||||
QGL_1_1_PROCS;
|
||||
QGL_DESKTOP_1_1_PROCS;
|
||||
QGL_1_3_PROCS;
|
||||
QGL_1_5_PROCS;
|
||||
QGL_2_0_PROCS;
|
||||
|
@ -42,34 +43,41 @@ QGL_ARB_vertex_array_object_PROCS;
|
|||
QGL_EXT_direct_state_access_PROCS;
|
||||
#undef GLE
|
||||
|
||||
void GLimp_InitExtraExtensions()
|
||||
int qglMajorVersion = 2, qglMinorVersion = 0;
|
||||
int qglesMajorVersion, qglesMinorVersion;
|
||||
|
||||
/*
|
||||
** GLimp_HaveExtension
|
||||
*/
|
||||
static char gl_extensions[ 32768 ];
|
||||
static qboolean GLimp_HaveExtension( const char *ext )
|
||||
{
|
||||
const char *ptr = Q_stristr( gl_extensions, ext );
|
||||
if (ptr == NULL)
|
||||
return qfalse;
|
||||
ptr += strlen(ext);
|
||||
return ((*ptr == ' ') || (*ptr == '\0')); // verify it's complete string.
|
||||
}
|
||||
|
||||
|
||||
void GLimp_InitExtraExtensions( void )
|
||||
{
|
||||
int len;
|
||||
char *extension;
|
||||
const char* result[3] = { "...ignoring %s\n", "...using %s\n", "...%s not found\n" };
|
||||
qboolean q_gl_version_at_least_3_0;
|
||||
qboolean q_gl_version_at_least_3_2;
|
||||
|
||||
// Check OpenGL version
|
||||
sscanf(glConfig.version_string, "%d.%d", &glRefConfig.openglMajorVersion, &glRefConfig.openglMinorVersion);
|
||||
if (glRefConfig.openglMajorVersion < 2)
|
||||
ri.Error(ERR_FATAL, "OpenGL 2.0 required!");
|
||||
ri.Printf(PRINT_ALL, "...using OpenGL %s\n", glConfig.version_string);
|
||||
|
||||
q_gl_version_at_least_3_0 = (glRefConfig.openglMajorVersion >= 3);
|
||||
q_gl_version_at_least_3_2 = (glRefConfig.openglMajorVersion > 3 || (glRefConfig.openglMajorVersion == 3 && glRefConfig.openglMinorVersion > 2));
|
||||
|
||||
// Check if we need Intel graphics specific fixes.
|
||||
glRefConfig.intelGraphics = qfalse;
|
||||
if (strstr((char *)qglGetString(GL_RENDERER), "Intel"))
|
||||
glRefConfig.intelGraphics = qtrue;
|
||||
|
||||
// set DSA fallbacks
|
||||
#define GLE(ret, name, ...) qgl##name = GLDSA_##name;
|
||||
QGL_EXT_direct_state_access_PROCS;
|
||||
#undef GLE
|
||||
|
||||
// GL function loader, based on https://gist.github.com/rygorous/16796a0c876cf8a5f542caddb55bce8a
|
||||
#define GLE(ret, name, ...) qgl##name = (name##proc *) SDL_GL_GetProcAddress("gl" #name);
|
||||
#define GLE(ret, name, ...) qgl##name = (name##proc *) ri.GL_GetProcAddress( "gl" #name );
|
||||
|
||||
QGL_1_1_PROCS;
|
||||
QGL_DESKTOP_1_1_PROCS;
|
||||
|
||||
// OpenGL 1.3, was GL_ARB_texture_compression
|
||||
QGL_1_3_PROCS;
|
||||
|
@ -81,18 +89,49 @@ void GLimp_InitExtraExtensions()
|
|||
// OpenGL 2.0, was GL_ARB_shading_language_100, GL_ARB_vertex_program, GL_ARB_shader_objects, and GL_ARB_vertex_shader
|
||||
QGL_2_0_PROCS;
|
||||
|
||||
// OpenGL 3.0 - no matching extension
|
||||
// QGL_*_PROCS becomes several functions, do not remove {}
|
||||
if (q_gl_version_at_least_3_0)
|
||||
{
|
||||
QGL_3_0_PROCS;
|
||||
QGL_3_0_PROCS;
|
||||
|
||||
if ( !qglGetString ) {
|
||||
ri.Error( ERR_FATAL, "glGetString is NULL" );
|
||||
}
|
||||
|
||||
// get our config strings
|
||||
Q_strncpyz( glConfig.vendor_string, (char *)qglGetString (GL_VENDOR), sizeof( glConfig.vendor_string ) );
|
||||
Q_strncpyz( glConfig.renderer_string, (char *)qglGetString (GL_RENDERER), sizeof( glConfig.renderer_string ) );
|
||||
len = strlen( glConfig.renderer_string );
|
||||
if ( len && glConfig.renderer_string[ len - 1 ] == '\n' )
|
||||
glConfig.renderer_string[ len - 1 ] = '\0';
|
||||
Q_strncpyz( glConfig.version_string, (char *)qglGetString( GL_VERSION ), sizeof( glConfig.version_string ) );
|
||||
|
||||
Q_strncpyz( gl_extensions, (char *)qglGetString( GL_EXTENSIONS ), sizeof( gl_extensions ) );
|
||||
Q_strncpyz( glConfig.extensions_string, gl_extensions, sizeof( glConfig.extensions_string ) );
|
||||
|
||||
sscanf( glConfig.version_string, "%d.%d", &qglMajorVersion, &qglMinorVersion );
|
||||
|
||||
// Check OpenGL version
|
||||
if ( !QGL_VERSION_ATLEAST( 2, 0 ) )
|
||||
ri.Error( ERR_FATAL, "OpenGL 2.0 required!" );
|
||||
ri.Printf( PRINT_ALL, "...using OpenGL %s\n", glConfig.version_string );
|
||||
|
||||
if ( !r_ignorehwgamma->integer )
|
||||
{
|
||||
ri.GLimp_InitGamma( &glConfig );
|
||||
}
|
||||
|
||||
q_gl_version_at_least_3_0 = QGL_VERSION_ATLEAST( 3, 0 );
|
||||
q_gl_version_at_least_3_2 = QGL_VERSION_ATLEAST( 3, 2 );
|
||||
|
||||
// Check if we need Intel graphics specific fixes.
|
||||
glRefConfig.intelGraphics = qfalse;
|
||||
if ( strstr((char *)qglGetString(GL_RENDERER), "Intel") )
|
||||
glRefConfig.intelGraphics = qtrue;
|
||||
|
||||
// OpenGL 3.0 - GL_ARB_framebuffer_object
|
||||
extension = "GL_ARB_framebuffer_object";
|
||||
glRefConfig.framebufferObject = qfalse;
|
||||
glRefConfig.framebufferBlit = qfalse;
|
||||
glRefConfig.framebufferMultisample = qfalse;
|
||||
|
||||
if (q_gl_version_at_least_3_0 || GLimp_HaveExtension(extension))
|
||||
{
|
||||
glRefConfig.framebufferObject = !!r_ext_framebuffer_object->integer;
|
||||
|
|
|
@ -2868,12 +2868,6 @@ void R_SetColorMappings( void ) {
|
|||
ri.Cvar_Set( "r_intensity", "1" );
|
||||
}
|
||||
|
||||
if ( r_gamma->value < 0.5f ) {
|
||||
ri.Cvar_Set( "r_gamma", "0.5" );
|
||||
} else if ( r_gamma->value > 3.0f ) {
|
||||
ri.Cvar_Set( "r_gamma", "3.0" );
|
||||
}
|
||||
|
||||
g = r_gamma->value;
|
||||
|
||||
for ( i = 0; i < 256; i++ ) {
|
||||
|
@ -2912,7 +2906,7 @@ void R_SetColorMappings( void ) {
|
|||
R_InitImages
|
||||
===============
|
||||
*/
|
||||
void R_InitImages( void ) {
|
||||
void R_InitImages( void ) {
|
||||
Com_Memset(hashTable, 0, sizeof(hashTable));
|
||||
// build brightness translation tables
|
||||
R_SetColorMappings();
|
||||
|
@ -2921,6 +2915,7 @@ void R_InitImages( void ) {
|
|||
R_CreateBuiltinImages();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
===============
|
||||
R_DeleteTextures
|
||||
|
|
|
@ -282,6 +282,7 @@ static void InitOpenGL( void )
|
|||
GL_SetDefaultState();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
==================
|
||||
GL_CheckErrors
|
||||
|
@ -1057,15 +1058,15 @@ void GfxInfo_f( void )
|
|||
ri.Printf( PRINT_ALL, "GL_RENDERER: %s\n", glConfig.renderer_string );
|
||||
ri.Printf( PRINT_ALL, "GL_VERSION: %s\n", glConfig.version_string );
|
||||
ri.Printf( PRINT_ALL, "GL_EXTENSIONS: " );
|
||||
if (glRefConfig.openglMajorVersion >= 3)
|
||||
if ( qglGetStringi )
|
||||
{
|
||||
GLint numExtensions;
|
||||
int i;
|
||||
|
||||
qglGetIntegerv(GL_NUM_EXTENSIONS, &numExtensions);
|
||||
for (i = 0; i < numExtensions; i++)
|
||||
qglGetIntegerv( GL_NUM_EXTENSIONS, &numExtensions );
|
||||
for ( i = 0; i < numExtensions; i++ )
|
||||
{
|
||||
ri.Printf(PRINT_ALL, "%s ", qglGetStringi(GL_EXTENSIONS, i));
|
||||
ri.Printf( PRINT_ALL, "%s ", qglGetStringi( GL_EXTENSIONS, i ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1097,21 +1098,9 @@ void GfxInfo_f( void )
|
|||
ri.Printf( PRINT_ALL, "texturemode: %s\n", r_textureMode->string );
|
||||
ri.Printf( PRINT_ALL, "picmip: %d\n", r_picmip->integer );
|
||||
ri.Printf( PRINT_ALL, "texture bits: %d\n", r_texturebits->integer );
|
||||
ri.Printf( PRINT_ALL, "compiled vertex arrays: %s\n", enablestrings[qglLockArraysEXT != 0 ] );
|
||||
ri.Printf( PRINT_ALL, "texenv add: %s\n", enablestrings[glConfig.textureEnvAddAvailable != 0] );
|
||||
ri.Printf( PRINT_ALL, "compressed textures: %s\n", enablestrings[glConfig.textureCompression!=TC_NONE] );
|
||||
if ( r_vertexLight->integer || glConfig.hardwareType == GLHW_PERMEDIA2 )
|
||||
{
|
||||
ri.Printf( PRINT_ALL, "HACK: using vertex lightmap approximation\n" );
|
||||
}
|
||||
if ( glConfig.hardwareType == GLHW_RAGEPRO )
|
||||
{
|
||||
ri.Printf( PRINT_ALL, "HACK: ragePro approximations\n" );
|
||||
}
|
||||
if ( glConfig.hardwareType == GLHW_RIVA128 )
|
||||
{
|
||||
ri.Printf( PRINT_ALL, "HACK: riva128 approximations\n" );
|
||||
}
|
||||
|
||||
if ( r_finish->integer ) {
|
||||
ri.Printf( PRINT_ALL, "Forcing glFinish\n" );
|
||||
}
|
||||
|
@ -1247,7 +1236,7 @@ void R_Register( void )
|
|||
r_forceAutoExposureMin = ri.Cvar_Get( "r_forceAutoExposureMin", "-2.0", CVAR_CHEAT );
|
||||
r_forceAutoExposureMax = ri.Cvar_Get( "r_forceAutoExposureMax", "2.0", CVAR_CHEAT );
|
||||
|
||||
r_cameraExposure = ri.Cvar_Get( "r_cameraExposure", "0", CVAR_CHEAT );
|
||||
r_cameraExposure = ri.Cvar_Get( "r_cameraExposure", "1", CVAR_CHEAT );
|
||||
|
||||
r_depthPrepass = ri.Cvar_Get( "r_depthPrepass", "1", CVAR_ARCHIVE );
|
||||
r_ssao = ri.Cvar_Get( "r_ssao", "0", CVAR_LATCH | CVAR_ARCHIVE );
|
||||
|
@ -1319,6 +1308,7 @@ void R_Register( void )
|
|||
r_swapInterval = ri.Cvar_Get( "r_swapInterval", "0",
|
||||
CVAR_ARCHIVE | CVAR_LATCH );
|
||||
r_gamma = ri.Cvar_Get( "r_gamma", "1", CVAR_ARCHIVE );
|
||||
ri.Cvar_CheckRange( r_gamma, "0.5", "3", CV_FLOAT );
|
||||
r_facePlaneCull = ri.Cvar_Get ("r_facePlaneCull", "1", CVAR_ARCHIVE );
|
||||
|
||||
r_railWidth = ri.Cvar_Get( "r_railWidth", "16", CVAR_ARCHIVE );
|
||||
|
@ -1528,16 +1518,15 @@ void RE_Shutdown( qboolean destroyWindow ) {
|
|||
|
||||
ri.Printf( PRINT_ALL, "RE_Shutdown( %i )\n", destroyWindow );
|
||||
|
||||
ri.Cmd_RemoveCommand ("modellist");
|
||||
ri.Cmd_RemoveCommand ("screenshotJPEG");
|
||||
ri.Cmd_RemoveCommand ("screenshot");
|
||||
ri.Cmd_RemoveCommand ("imagelist");
|
||||
ri.Cmd_RemoveCommand ("shaderlist");
|
||||
ri.Cmd_RemoveCommand ("skinlist");
|
||||
ri.Cmd_RemoveCommand ("gfxinfo");
|
||||
ri.Cmd_RemoveCommand("minimize");
|
||||
ri.Cmd_RemoveCommand( "imagelist" );
|
||||
ri.Cmd_RemoveCommand( "shaderlist" );
|
||||
ri.Cmd_RemoveCommand( "skinlist" );
|
||||
ri.Cmd_RemoveCommand( "modellist" );
|
||||
ri.Cmd_RemoveCommand( "modelist" );
|
||||
ri.Cmd_RemoveCommand( "shaderstate" );
|
||||
ri.Cmd_RemoveCommand( "screenshot" );
|
||||
ri.Cmd_RemoveCommand( "screenshotJPEG" );
|
||||
ri.Cmd_RemoveCommand( "gfxinfo" );
|
||||
ri.Cmd_RemoveCommand( "minimize" );
|
||||
ri.Cmd_RemoveCommand( "gfxmeminfo" );
|
||||
ri.Cmd_RemoveCommand( "exportCubemaps" );
|
||||
|
||||
|
@ -1575,7 +1564,7 @@ Touch all images to make sure they are resident
|
|||
*/
|
||||
void RE_EndRegistration( void ) {
|
||||
R_IssuePendingRenderCommands();
|
||||
if ( ri.Sys_LowPhysicalMemory() ) {
|
||||
if ( !ri.Sys_LowPhysicalMemory() ) {
|
||||
RB_ShowImages();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1338,9 +1338,6 @@ typedef enum {
|
|||
// We can't change glConfig_t without breaking DLL/vms compatibility, so
|
||||
// store extensions we have here.
|
||||
typedef struct {
|
||||
int openglMajorVersion;
|
||||
int openglMinorVersion;
|
||||
|
||||
qboolean intelGraphics;
|
||||
|
||||
qboolean occlusionQuery;
|
||||
|
|
|
@ -376,12 +376,9 @@ void R_AddMD3Surfaces( trRefEntity_t *ent ) {
|
|||
else if (shader->defaultShader) {
|
||||
ri.Printf( PRINT_DEVELOPER, "WARNING: shader %s in skin %s not found\n", shader->name, skin->name);
|
||||
}
|
||||
//} else if ( surface->numShaders <= 0 ) {
|
||||
//shader = tr.defaultShader;
|
||||
} else if ( surface->numShaderIndexes <= 0 ) {
|
||||
shader = tr.defaultShader;
|
||||
} else {
|
||||
//md3Shader = (md3Shader_t *) ( (byte *)surface + surface->ofsShaders );
|
||||
//md3Shader += ent->e.skinNum % surface->numShaders;
|
||||
//shader = tr.shaders[ md3Shader->shaderIndex ];
|
||||
shader = tr.shaders[ surface->shaderIndexes[ ent->e.skinNum % surface->numShaderIndexes ] ];
|
||||
}
|
||||
|
||||
|
|
|
@ -56,8 +56,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
|
||||
#include "../renderer/tr_local.h"
|
||||
#include "../client/client.h"
|
||||
#include "linux_local.h" // bk001130
|
||||
|
||||
#include "linux_local.h"
|
||||
#include "unix_glw.h"
|
||||
|
||||
#include <GL/glx.h>
|
||||
|
@ -1591,7 +1590,7 @@ void GLimp_Init( glconfig_t *config )
|
|||
InitSig(); // not clear why this is at begin & end of function
|
||||
|
||||
// optional
|
||||
#define GLE( ret, name, ... ) q##name = ri.GL_GetProcAddress( XSTRING( name ) );
|
||||
#define GLE( ret, name, ... ) q##name = GL_GetProcAddress( XSTRING( name ) );
|
||||
QGL_Swp_PROCS;
|
||||
#undef GLE
|
||||
|
||||
|
|
|
@ -34,11 +34,12 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
** Note that the GLW_xxx functions are Windows specific GL-subsystem
|
||||
** related functions that are relevant ONLY to win_glimp.c
|
||||
*/
|
||||
|
||||
#include "../renderer/tr_local.h"
|
||||
#include "../qcommon/qcommon.h"
|
||||
#include "../client/client.h"
|
||||
#include "resource.h"
|
||||
#include "glw_win.h"
|
||||
#include "win_local.h"
|
||||
#include "glw_win.h"
|
||||
|
||||
typedef enum {
|
||||
RSERR_OK,
|
||||
|
@ -1259,7 +1260,7 @@ void GLimp_Init( glconfig_t *config )
|
|||
config->hardwareType = GLHW_GENERIC;
|
||||
|
||||
// optional
|
||||
#define GLE( ret, name, ... ) q##name = ri.GL_GetProcAddress( XSTRING( name ) )
|
||||
#define GLE( ret, name, ... ) q##name = GL_GetProcAddress( XSTRING( name ) )
|
||||
QGL_Swp_PROCS;
|
||||
#undef GLE
|
||||
|
||||
|
|
Loading…
Reference in New Issue