mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-18 18:01:13 +00:00
Bring in Despair's gl error checking from the gl renderer.
This commit is contained in:
parent
151cc05882
commit
b657905c83
1 changed files with 71 additions and 0 deletions
|
@ -59,6 +59,73 @@ static __attribute__ ((used)) const char rcsid[] = "$Id$";
|
|||
#include "r_screen.h"
|
||||
#include "r_shared.h"
|
||||
|
||||
/* Unknown renamed to GLErr_Unknown to solve conflict with winioctl.h */
|
||||
unsigned int GLErr_InvalidEnum;
|
||||
unsigned int GLErr_InvalidValue;
|
||||
unsigned int GLErr_InvalidOperation;
|
||||
unsigned int GLErr_OutOfMemory;
|
||||
unsigned int GLErr_Unknown;
|
||||
|
||||
extern void (*R_DrawSpriteModel) (struct entity_s *ent);
|
||||
|
||||
|
||||
static unsigned int
|
||||
R_TestErrors (unsigned int numerous)
|
||||
{
|
||||
switch (qfglGetError ()) {
|
||||
case GL_NO_ERROR:
|
||||
return numerous;
|
||||
break;
|
||||
case GL_INVALID_ENUM:
|
||||
GLErr_InvalidEnum++;
|
||||
R_TestErrors (numerous++);
|
||||
break;
|
||||
case GL_INVALID_VALUE:
|
||||
GLErr_InvalidValue++;
|
||||
R_TestErrors (numerous++);
|
||||
break;
|
||||
case GL_INVALID_OPERATION:
|
||||
GLErr_InvalidOperation++;
|
||||
R_TestErrors (numerous++);
|
||||
break;
|
||||
case GL_OUT_OF_MEMORY:
|
||||
GLErr_OutOfMemory++;
|
||||
R_TestErrors (numerous++);
|
||||
break;
|
||||
default:
|
||||
GLErr_Unknown++;
|
||||
R_TestErrors (numerous++);
|
||||
break;
|
||||
}
|
||||
|
||||
return numerous;
|
||||
}
|
||||
|
||||
static void
|
||||
R_DisplayErrors (void)
|
||||
{
|
||||
if (GLErr_InvalidEnum)
|
||||
printf ("%d OpenGL errors: Invalid Enum!\n", GLErr_InvalidEnum);
|
||||
if (GLErr_InvalidValue)
|
||||
printf ("%d OpenGL errors: Invalid Value!\n", GLErr_InvalidValue);
|
||||
if (GLErr_InvalidOperation)
|
||||
printf ("%d OpenGL errors: Invalid Operation!\n", GLErr_InvalidOperation);
|
||||
if (GLErr_OutOfMemory)
|
||||
printf ("%d OpenGL errors: Out Of Memory!\n", GLErr_OutOfMemory);
|
||||
if (GLErr_Unknown)
|
||||
printf ("%d Unknown OpenGL errors!\n", GLErr_Unknown);
|
||||
}
|
||||
|
||||
static void
|
||||
R_ClearErrors (void)
|
||||
{
|
||||
GLErr_InvalidEnum = 0;
|
||||
GLErr_InvalidValue = 0;
|
||||
GLErr_InvalidOperation = 0;
|
||||
GLErr_OutOfMemory = 0;
|
||||
GLErr_Unknown = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
SCR_TileClear (void)
|
||||
{
|
||||
|
@ -89,6 +156,10 @@ SCR_UpdateScreen (double realtime, SCR_Func *scr_funcs)
|
|||
{
|
||||
static int begun = 0;
|
||||
|
||||
if (R_TestErrors (0))
|
||||
R_DisplayErrors ();
|
||||
R_ClearErrors ();
|
||||
|
||||
if (begun) {
|
||||
begun = 0;
|
||||
GL_EndRendering ();
|
||||
|
|
Loading…
Reference in a new issue