X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=vid_shared.c;h=4579c1434a32aaf5d853be81326c10d5ab84cae7;hb=e1779b0d4726405972ee9fcc4f342ece8b64dac7;hp=eb665eedc6c39abf013ba86b5bcabc54260f7829;hpb=e1e429311c776dbb16d3e7c914ca62716841fd3a;p=xonotic%2Fdarkplaces.git diff --git a/vid_shared.c b/vid_shared.c index eb665eed..4579c143 100644 --- a/vid_shared.c +++ b/vid_shared.c @@ -6,15 +6,6 @@ #include #endif -#ifdef SUPPORTD3D -#include -#ifdef _MSC_VER -#pragma comment(lib, "d3d9.lib") -#endif - -LPDIRECT3DDEVICE9 vid_d3d9dev; -#endif - // global video state viddef_t vid; @@ -156,14 +147,12 @@ void (GLAPIENTRY *qglColorMask)(GLboolean red, GLboolean green, GLboolean blue, void (GLAPIENTRY *qglDrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); void (GLAPIENTRY *qglDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); -void (GLAPIENTRY *qglDrawArrays)(GLenum mode, GLint first, GLsizei count); void (GLAPIENTRY *qglVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); void (GLAPIENTRY *qglNormalPointer)(GLenum type, GLsizei stride, const GLvoid *ptr); void (GLAPIENTRY *qglColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); void (GLAPIENTRY *qglTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); void (GLAPIENTRY *qglArrayElement)(GLint i); -void (GLAPIENTRY *qglColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); void (GLAPIENTRY *qglColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); void (GLAPIENTRY *qglTexCoord1f)(GLfloat s); void (GLAPIENTRY *qglTexCoord2f)(GLfloat s, GLfloat t); @@ -171,7 +160,6 @@ void (GLAPIENTRY *qglTexCoord3f)(GLfloat s, GLfloat t, GLfloat r); void (GLAPIENTRY *qglTexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q); void (GLAPIENTRY *qglVertex2f)(GLfloat x, GLfloat y); void (GLAPIENTRY *qglVertex3f)(GLfloat x, GLfloat y, GLfloat z); -void (GLAPIENTRY *qglVertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); void (GLAPIENTRY *qglBegin)(GLenum mode); void (GLAPIENTRY *qglEnd)(void); @@ -398,7 +386,7 @@ void (GLAPIENTRY *qglGetQueryObjectuivARB)(GLuint qid, GLenum pname, GLuint *par #define sscanf sscanf_s #endif -qboolean GL_CheckExtension(const char *minglver_or_ext, const dllfunction_t *funcs, const char *disableparm, int silent) +int GL_CheckExtension(const char *minglver_or_ext, const dllfunction_t *funcs, const char *disableparm, int silent) { int failed = false; const dllfunction_t *func; @@ -500,14 +488,12 @@ static dllfunction_t opengl110funcs[] = {"glDepthMask", (void **) &qglDepthMask}, {"glDepthRange", (void **) &qglDepthRange}, {"glDrawElements", (void **) &qglDrawElements}, - {"glDrawArrays", (void **) &qglDrawArrays}, {"glColorMask", (void **) &qglColorMask}, {"glVertexPointer", (void **) &qglVertexPointer}, {"glNormalPointer", (void **) &qglNormalPointer}, {"glColorPointer", (void **) &qglColorPointer}, {"glTexCoordPointer", (void **) &qglTexCoordPointer}, {"glArrayElement", (void **) &qglArrayElement}, - {"glColor4ub", (void **) &qglColor4ub}, {"glColor4f", (void **) &qglColor4f}, {"glTexCoord1f", (void **) &qglTexCoord1f}, {"glTexCoord2f", (void **) &qglTexCoord2f}, @@ -515,7 +501,6 @@ static dllfunction_t opengl110funcs[] = {"glTexCoord4f", (void **) &qglTexCoord4f}, {"glVertex2f", (void **) &qglVertex2f}, {"glVertex3f", (void **) &qglVertex3f}, - {"glVertex4f", (void **) &qglVertex4f}, {"glBegin", (void **) &qglBegin}, {"glEnd", (void **) &qglEnd}, //[515]: added on 29.07.2005 @@ -799,37 +784,13 @@ static dllfunction_t drawbuffersfuncs[] = {NULL, NULL} }; -void VID_ClearExtensions(void) +void VID_CheckExtensions(void) { - // VorteX: reset extensions info cvar, it got filled by GL_CheckExtension - Cvar_SetQuick(&gl_info_extensions, ""); - // clear the extension flags memset(&vid.support, 0, sizeof(vid.support)); - vid.renderpath = RENDERPATH_GL11; - vid.forcevbo = false; - vid.maxtexturesize_2d = 0; - vid.maxtexturesize_3d = 0; - vid.maxtexturesize_cubemap = 0; - vid.texunits = 1; - vid.teximageunits = 1; - vid.texarrayunits = 1; - vid.max_anisotropy = 1; - vid.maxdrawbuffers = 1; - // this is a complete list of all functions that are directly checked in the renderer - qglDrawRangeElements = NULL; - qglDrawBuffer = NULL; - qglPolygonStipple = NULL; - qglFlush = NULL; - qglActiveTexture = NULL; - qglGetCompressedTexImageARB = NULL; - qglFramebufferTexture2DEXT = NULL; - qglDrawBuffersARB = NULL; -} - -void VID_CheckExtensions(void) -{ + // VorteX: reset extensions info cvar, it got filled by GL_CheckExtension + Cvar_SetQuick(&gl_info_extensions, ""); if (!GL_CheckExtension("1.1", opengl110funcs, NULL, false)) Sys_Error("OpenGL 1.1.0 functions not found"); @@ -892,6 +853,15 @@ void VID_CheckExtensions(void) // COMMANDLINEOPTION: GL: -novbo disables GL_ARB_vertex_buffer_object (which accelerates rendering) // COMMANDLINEOPTION: GL: -novertexshader disables GL_ARB_vertex_shader (allows vertex shader effects) + vid.maxtexturesize_2d = 0; + vid.maxtexturesize_3d = 0; + vid.maxtexturesize_cubemap = 0; + vid.texunits = 1; + vid.teximageunits = 1; + vid.texarrayunits = 1; + vid.max_anisotropy = 1; + vid.maxdrawbuffers = 1; + if (vid.support.arb_draw_buffers) qglGetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, (GLint*)&vid.maxdrawbuffers); @@ -1059,9 +1029,6 @@ void VID_UpdateGamma(qboolean force, int rampsize) { case RENDERPATH_GL20: case RENDERPATH_CGGL: - case RENDERPATH_D3D9: - case RENDERPATH_D3D10: - case RENDERPATH_D3D11: if (v_glslgamma.integer) wantgamma = 0; break; @@ -1253,16 +1220,15 @@ int VID_Mode(int fullscreen, int width, int height, int bpp, float refreshrate, { viddef_mode_t mode; memset(&mode, 0, sizeof(mode)); - mode.fullscreen = fullscreen != 0; + mode.fullscreen = fullscreen; mode.width = width; mode.height = height; mode.bitsperpixel = bpp; mode.refreshrate = vid_userefreshrate.integer ? max(1, refreshrate) : 0; - mode.userefreshrate = vid_userefreshrate.integer != 0; - mode.stereobuffer = stereobuffer != 0; + mode.userefreshrate = vid_userefreshrate.integer; + mode.stereobuffer = stereobuffer; mode.samples = samples; cl_ignoremousemoves = 2; - VID_ClearExtensions(); if (VID_InitMode(&mode)) { // accept the (possibly modified) mode