Initial sources
This commit is contained in:
137
engine/render/gl_shared.cpp
Normal file
137
engine/render/gl_shared.cpp
Normal file
@@ -0,0 +1,137 @@
|
||||
#include "utils/logger.h"
|
||||
#include "render/gl_shared.h"
|
||||
#include "render/render_shared.h"
|
||||
|
||||
const char *GL_ErrorString( int err )
|
||||
{
|
||||
switch( err )
|
||||
{
|
||||
case GL_STACK_OVERFLOW:
|
||||
return "GL_STACK_OVERFLOW";
|
||||
case GL_STACK_UNDERFLOW:
|
||||
return "GL_STACK_UNDERFLOW";
|
||||
case GL_INVALID_ENUM:
|
||||
return "GL_INVALID_ENUM";
|
||||
case GL_INVALID_VALUE:
|
||||
return "GL_INVALID_VALUE";
|
||||
case GL_INVALID_OPERATION:
|
||||
return "GL_INVALID_OPERATION";
|
||||
case GL_OUT_OF_MEMORY:
|
||||
return "GL_OUT_OF_MEMORY";
|
||||
default:
|
||||
return "UNKNOWN ERROR";
|
||||
}
|
||||
}
|
||||
|
||||
void GL_CheckError()
|
||||
{
|
||||
GLenum err;
|
||||
if ( (err = glGetError()) != GL_NO_ERROR )
|
||||
Msg( "OpenGL Error: %s", GL_ErrorString( err ) );// Msg("OpenGL Error: %s [%s]\n", GL_ErrorString(err), GL_TargetToString(tex->target));
|
||||
}
|
||||
|
||||
void GL_CheckErrorEx( const char* filename, int line )
|
||||
{
|
||||
GLenum err;
|
||||
if ( (err = glGetError()) != GL_NO_ERROR )
|
||||
Msg( "OpenGL Error: %s at %s:%i", GL_ErrorString( err ), filename, line );// Msg("OpenGL Error: %s [%s]\n", GL_ErrorString(err), GL_TargetToString(tex->target));
|
||||
}
|
||||
|
||||
void GL_CheckErrorFunction(const char* expression, const char* filename, int line)
|
||||
{
|
||||
GLenum err;
|
||||
if ( (err = glGetError()) != GL_NO_ERROR )
|
||||
Msg( "OpenGL Error: %s (%s) at %s:%i", expression, GL_ErrorString( err ), filename, line );// Msg("OpenGL Error: %s [%s]\n", GL_ErrorString(err), GL_TargetToString(tex->target));
|
||||
}
|
||||
|
||||
uint GetGLBlendFactor(BlendFactor factor)
|
||||
{
|
||||
switch (factor)
|
||||
{
|
||||
case BF_ZERO:
|
||||
return GL_ZERO;
|
||||
case BF_ONE:
|
||||
return GL_ONE;
|
||||
case BF_SRC_COLOR:
|
||||
return GL_SRC_COLOR;
|
||||
case BF_ONE_MINUS_SRC_COLOR:
|
||||
return GL_ONE_MINUS_SRC_COLOR;
|
||||
case BF_DST_COLOR:
|
||||
return GL_DST_COLOR;
|
||||
case BF_ONE_MINUS_DST_COLOR:
|
||||
return GL_ONE_MINUS_DST_COLOR;
|
||||
case BF_SRC_ALPHA:
|
||||
return GL_SRC_ALPHA;
|
||||
case BF_ONE_MINUS_SRC_ALPHA:
|
||||
return GL_ONE_MINUS_SRC_ALPHA;
|
||||
case BF_DST_ALPHA:
|
||||
return GL_DST_ALPHA;
|
||||
case BF_ONE_MINUS_DST_ALPHA:
|
||||
return GL_ONE_MINUS_DST_ALPHA;
|
||||
case BF_CONSTANT_COLOR:
|
||||
return GL_CONSTANT_COLOR;
|
||||
case BF_ONE_MINUS_CONSTANT_COLOR:
|
||||
return GL_ONE_MINUS_CONSTANT_COLOR;
|
||||
case BF_CONSTANT_ALPHA:
|
||||
return GL_CONSTANT_ALPHA;
|
||||
case BF_ONE_MINUS_CONSTANT_ALPHA:
|
||||
return GL_ONE_MINUS_CONSTANT_ALPHA;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#define LOAD_GL_FUNC(functype, funcname) \
|
||||
{ \
|
||||
funcname = (functype)wglGetProcAddress(#funcname); \
|
||||
if (funcname == NULL) \
|
||||
LogMsg("Failed to load %s", #funcname); \
|
||||
}
|
||||
|
||||
void GL_Load()
|
||||
{
|
||||
// OpenGL 1.5
|
||||
LOAD_GL_FUNC(PFNGLGENQUERIESPROC, glGenQueries);
|
||||
LOAD_GL_FUNC(PFNGLDELETEQUERIESPROC, glDeleteQueries);
|
||||
LOAD_GL_FUNC(PFNGLISQUERYPROC, glIsQuery);
|
||||
LOAD_GL_FUNC(PFNGLBEGINQUERYPROC, glBeginQuery);
|
||||
LOAD_GL_FUNC(PFNGLENDQUERYPROC, glEndQuery);
|
||||
LOAD_GL_FUNC(PFNGLGETQUERYIVPROC, glGetQueryiv);
|
||||
LOAD_GL_FUNC(PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv);
|
||||
LOAD_GL_FUNC(PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv);
|
||||
LOAD_GL_FUNC(PFNGLBINDBUFFERPROC, glBindBuffer);
|
||||
LOAD_GL_FUNC(PFNGLDELETEBUFFERSPROC, glDeleteBuffers);
|
||||
LOAD_GL_FUNC(PFNGLGENBUFFERSPROC, glGenBuffers);
|
||||
LOAD_GL_FUNC(PFNGLISBUFFERPROC, glIsBuffer);
|
||||
LOAD_GL_FUNC(PFNGLBUFFERDATAPROC, glBufferData);
|
||||
LOAD_GL_FUNC(PFNGLBUFFERSUBDATAPROC, glBufferSubData);
|
||||
LOAD_GL_FUNC(PFNGLGETBUFFERSUBDATAPROC, glGetBufferSubData);
|
||||
LOAD_GL_FUNC(PFNGLMAPBUFFERPROC, glMapBuffer);
|
||||
LOAD_GL_FUNC(PFNGLUNMAPBUFFERPROC, glUnmapBuffer);
|
||||
LOAD_GL_FUNC(PFNGLGETBUFFERPARAMETERIVPROC, glGetBufferParameteriv);
|
||||
LOAD_GL_FUNC(PFNGLGETBUFFERPOINTERVPROC, glGetBufferPointerv);
|
||||
|
||||
}
|
||||
|
||||
PFNGLGENQUERIESPROC glGenQueries = NULL;
|
||||
PFNGLDELETEQUERIESPROC glDeleteQueries = NULL;
|
||||
PFNGLISQUERYPROC glIsQuery = NULL;
|
||||
PFNGLBEGINQUERYPROC glBeginQuery = NULL;
|
||||
PFNGLENDQUERYPROC glEndQuery = NULL;
|
||||
PFNGLGETQUERYIVPROC glGetQueryiv = NULL;
|
||||
PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv = NULL;
|
||||
PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv = NULL;
|
||||
PFNGLBINDBUFFERPROC glBindBuffer = NULL;
|
||||
PFNGLDELETEBUFFERSPROC glDeleteBuffers = NULL;
|
||||
PFNGLGENBUFFERSPROC glGenBuffers = NULL;
|
||||
PFNGLISBUFFERPROC glIsBuffer = NULL;
|
||||
PFNGLBUFFERDATAPROC glBufferData = NULL;
|
||||
PFNGLBUFFERSUBDATAPROC glBufferSubData = NULL;
|
||||
PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData = NULL;
|
||||
PFNGLMAPBUFFERPROC glMapBuffer = NULL;
|
||||
PFNGLUNMAPBUFFERPROC glUnmapBuffer = NULL;
|
||||
PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv = NULL;
|
||||
PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv = NULL;
|
||||
Reference in New Issue
Block a user