37 lines
1.5 KiB
C
37 lines
1.5 KiB
C
#include <stdio.h>
|
|
#include "client/client_config.h"
|
|
#include "client/opengl.h"
|
|
|
|
// put this into seperate function to make it easy to trace stack using external debugger
|
|
static void opengl_error(GLenum err, const char *file, int line)
|
|
{
|
|
switch (err) {
|
|
case GL_INVALID_ENUM: fprintf(stderr, "[warning] OpenGL error: INVALID_ENUM %s:%d\n", file, line); break;
|
|
case GL_INVALID_VALUE: fprintf(stderr, "[warning] OpenGL error: INVALID_VALUE %s:%d\n", file, line); break;
|
|
case GL_INVALID_OPERATION: fprintf(stderr, "[warning] OpenGL error: INVALID_OPERATION %s:%d\n", file, line); break;
|
|
case GL_STACK_OVERFLOW: fprintf(stderr, "[warning] OpenGL error: STACK_OVERFLOW %s:%d\n", file, line); break;
|
|
case GL_STACK_UNDERFLOW: fprintf(stderr, "[warning] OpenGL error: STACK_UNDERFLOW %s:%d\n", file, line); break;
|
|
case GL_OUT_OF_MEMORY: fprintf(stderr, "[warning] OpenGL error: OUT_OF_MEMORY %s:%d\n", file, line); break;
|
|
case GL_INVALID_FRAMEBUFFER_OPERATION: fprintf(stderr, "[warning] OpenGL error: INVALID_FRAMEBUFFER_OPERATION %s:%d\n", file, line); break;
|
|
default: break;
|
|
}
|
|
}
|
|
void opengl_debug(const char *file, int line)
|
|
{
|
|
GLenum err = glGetError();
|
|
|
|
if (err != GL_NO_ERROR)
|
|
opengl_error(err, file, line);
|
|
}
|
|
|
|
GLint opengl_texture_batch_units()
|
|
{
|
|
if (!client_config.texture_batching)
|
|
return 1;
|
|
|
|
GLint units;
|
|
glGetIntegerv(GL_MAX_TEXTURE_UNITS, &units); GL_DEBUG
|
|
|
|
return units;
|
|
}
|