#pragma warning(disable : 4310) // LordHavoc: MSVC++ 2008 x86: cast truncates constant value
#pragma warning(disable : 4245) // LordHavoc: MSVC++ 2008 x86: 'initializing' : conversion from 'int' to 'unsigned char', signed/unsigned mismatch
#pragma warning(disable : 4204) // LordHavoc: MSVC++ 2008 x86: nonstandard extension used : non-constant aggregate initializer
-#pragma warning(disable : 4267) // LordHavoc: MSVC++ 2008 x64, conversion from 'size_t' to 'int', possible loss of data
+//#pragma warning(disable : 4267) // LordHavoc: MSVC++ 2008 x64, conversion from 'size_t' to 'int', possible loss of data
//#pragma warning(disable : 4244) // LordHavoc: MSVC++ 4 x86, double/float
//#pragma warning(disable : 4305) // LordHavoc: MSVC++ 6 x86, double/float
//#pragma warning(disable : 4706) // LordHavoc: MSVC++ 2008 x86, assignment within conditional expression
// int whose size is the same as a pointer (?)
typedef ptrdiff_t GLsizeiptrARB;
+#define GL_STEREO 0x0C33
+
#define GL_MODELVIEW 0x1700
#define GL_PROJECTION 0x1701
#define GL_TEXTURE 0x1702
#define GL_LUMINANCE_ALPHA16F_ARB 0x881F
#endif
+// GL_ARB_half_float_pixel
+#ifndef GL_HALF_FLOAT_ARB
+typedef unsigned short GLhalfARB;
+#define GL_HALF_FLOAT_ARB 0x140B
+#endif
+
// GL_EXT_texture_sRGB
#ifndef GL_SRGB_EXT
#define GL_SRGB_EXT 0x8C40
#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
#endif
+// GL_ARB_query_buffer_object
+#ifndef GL_QUERY_BUFFER_ARB
+#define GL_QUERY_BUFFER_ARB 0x9192
+#define GL_QUERY_BUFFER_BINDING_ARB 0x9193
+#define GL_QUERY_RESULT_NO_WAIT_ARB 0x9194
+#define GL_QUERY_BUFFER_BARRIER_BIT_ARB 0x00008000
+#endif
+
// GL_EXT_bgr
#define GL_BGR 0x80E0
#define GL_UNSIGNED_INT_24_8_EXT 0x84FA
#define GL_DEPTH24_STENCIL8_EXT 0x88F0
+//GL_EXT_blend_func_separate
+#ifndef GL_BLEND_DST_RGB
+#define GL_BLEND_DST_RGB 0x80C8
+#define GL_BLEND_SRC_RGB 0x80C9
+#define GL_BLEND_DST_ALPHA 0x80CA
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#endif
+extern void (GLAPIENTRY *qglBlendFuncSeparate)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+
#endif
#define DEBUGGL
#ifdef DEBUGGL
#ifdef USE_GLES2
-#define CHECKGLERROR {if (gl_paranoid.integer){if (gl_printcheckerror.integer) Con_Printf("CHECKGLERROR at %s:%d\n", __FILE__, __LINE__);errornumber = glGetError();if (errornumber) GL_PrintError(errornumber, __FILE__, __LINE__);}}
+#define CHECKGLERROR {if (gl_paranoid.integer){if (gl_printcheckerror.integer) Con_Printf("CHECKGLERROR at %s:%d\n", __FILE__, __LINE__);gl_errornumber = glGetError();if (gl_errornumber) GL_PrintError(gl_errornumber, __FILE__, __LINE__);}}
#else
-#define CHECKGLERROR {if (gl_paranoid.integer){if (gl_printcheckerror.integer) Con_Printf("CHECKGLERROR at %s:%d\n", __FILE__, __LINE__);errornumber = qglGetError ? qglGetError() : 0;if (errornumber) GL_PrintError(errornumber, __FILE__, __LINE__);}}
+#define CHECKGLERROR {if (gl_paranoid.integer){if (gl_printcheckerror.integer) Con_Printf("CHECKGLERROR at %s:%d\n", __FILE__, __LINE__);gl_errornumber = qglGetError ? qglGetError() : 0;if (gl_errornumber) GL_PrintError(gl_errornumber, __FILE__, __LINE__);}}
#endif
-extern int errornumber;
+extern int gl_errornumber;
void GL_PrintError(int errornumber, const char *filename, int linenumber);
#else
#define CHECKGLERROR
//#define qglIsQueryARB glIsQuery
#define qglIsRenderbufferEXT glIsRenderbuffer
//#define qglUnmapBufferARB glUnmapBuffer
-#define qglCheckFramebufferStatusEXT glCheckFramebufferStatus
+#define qglCheckFramebufferStatus glCheckFramebufferStatus
#define qglGetError glGetError
#define qglCreateProgram glCreateProgram
#define qglCreateShader glCreateShader
#define qglBindAttribLocation glBindAttribLocation
//#define qglBindFragDataLocation glBindFragDataLocation
#define qglBindBufferARB glBindBuffer
-#define qglBindFramebufferEXT glBindFramebuffer
-#define qglBindRenderbufferEXT glBindRenderbuffer
+#define qglBindFramebuffer glBindFramebuffer
+#define qglBindRenderbuffer glBindRenderbuffer
#define qglBindTexture glBindTexture
#define qglBlendEquationEXT glBlendEquation
#define qglBlendFunc glBlendFunc
+#define qglBlendFuncSeparate glBlendFuncSeparate
#define qglBufferDataARB glBufferData
#define qglBufferSubDataARB glBufferSubData
#define qglClear glClear
#define qglCopyTexSubImage3D glCopyTexSubImage3D
#define qglCullFace glCullFace
#define qglDeleteBuffersARB glDeleteBuffers
-#define qglDeleteFramebuffersEXT glDeleteFramebuffers
+#define qglDeleteFramebuffers glDeleteFramebuffers
#define qglDeleteProgram glDeleteProgram
#define qglDeleteShader glDeleteShader
//#define qglDeleteQueriesARB glDeleteQueries
-#define qglDeleteRenderbuffersEXT glDeleteRenderbuffers
+#define qglDeleteRenderbuffers glDeleteRenderbuffers
#define qglDeleteTextures glDeleteTextures
#define qglDepthFunc glDepthFunc
#define qglDepthMask glDepthMask
#define qglFramebufferTexture2D glFramebufferTexture2D
#define qglFramebufferTexture3DEXT glFramebufferTexture3D
#define qglGenBuffersARB glGenBuffers
-#define qglGenFramebuffersEXT glGenFramebuffers
+#define qglGenFramebuffers glGenFramebuffers
//#define qglGenQueriesARB glGenQueries
-#define qglGenRenderbuffersEXT glGenRenderbuffers
+#define qglGenRenderbuffers glGenRenderbuffers
#define qglGenTextures glGenTextures
#define qglGenerateMipmapEXT glGenerateMipmap
#define qglGetActiveAttrib glGetActiveAttrib
//#define qglPolygonStipple glPolygonStipple
#define qglReadBuffer glReadBuffer
#define qglReadPixels glReadPixels
-#define qglRenderbufferStorageEXT glRenderbufferStorage
+#define qglRenderbufferStorage glRenderbufferStorage
#define qglScissor glScissor
#define qglShaderSource glShaderSource
#define qglStencilFunc glStencilFunc
#endif
#endif
-