]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - vid_shared.c
added a very important part of GAME_GOODVSBAD2 support (it was not in the gamelist...
[xonotic/darkplaces.git] / vid_shared.c
index 044995fc71340e3345fc2aaec9afebbb9c802ea6..76d3c75b2889ac147f080f91d4183ec075145570 100644 (file)
@@ -30,6 +30,8 @@ int gl_support_clamptoedge = false;
 int gl_support_var = false;
 // GL_NV_vertex_array_range2
 int gl_support_var2 = false;
+// GL_EXT_texture_filter_anisotropic
+int gl_support_anisotropy = false;
 
 // LordHavoc: if window is hidden, don't update screen
 int vid_hidden = true;
@@ -188,7 +190,7 @@ void (GLAPIENTRY *qglClearStencil)(GLint s);
 
 //void (GLAPIENTRY *qglTexEnvf)(GLenum target, GLenum pname, GLfloat param);
 void (GLAPIENTRY *qglTexEnvi)(GLenum target, GLenum pname, GLint param);
-//void (GLAPIENTRY *qglTexParameterf)(GLenum target, GLenum pname, GLfloat param);
+void (GLAPIENTRY *qglTexParameterf)(GLenum target, GLenum pname, GLfloat param);
 //void (GLAPIENTRY *qglTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
 void (GLAPIENTRY *qglTexParameteri)(GLenum target, GLenum pname, GLint param);
 
@@ -228,14 +230,14 @@ int GL_CheckExtension(const char *name, const dllfunction_t *funcs, const char *
        int failed = false;
        const dllfunction_t *func;
 
-       Con_Printf("checking for %s...  ", name);
+       Con_DPrintf("checking for %s...  ", name);
 
        for (func = funcs;func && func->name;func++)
                *func->funcvariable = NULL;
 
        if (disableparm && COM_CheckParm(disableparm))
        {
-               Con_Printf("disabled by commandline\n");
+               Con_DPrintf("disabled by commandline\n");
                return false;
        }
 
@@ -247,19 +249,19 @@ int GL_CheckExtension(const char *name, const dllfunction_t *funcs, const char *
                        if (!(*func->funcvariable = (void *) GL_GetProcAddress(func->name)))
                        {
                                if (!silent)
-                                       Con_Printf("missing function \"%s\" - broken driver!\n", func->name);
+                                       Con_Printf("OpenGL extension \"%s\" is missing function \"%s\" - broken driver!\n", name, func->name);
                                failed = true;
                        }
                }
                // delay the return so it prints all missing functions
                if (failed)
                        return false;
-               Con_Printf("enabled\n");
+               Con_DPrintf("enabled\n");
                return true;
        }
        else
        {
-               Con_Printf("not detected\n");
+               Con_DPrintf("not detected\n");
                return false;
        }
 }
@@ -328,7 +330,7 @@ static dllfunction_t opengl110funcs[] =
        {"glClearStencil", (void **) &qglClearStencil},
 //     {"glTexEnvf", (void **) &qglTexEnvf},
        {"glTexEnvi", (void **) &qglTexEnvi},
-//     {"glTexParameterf", (void **) &qglTexParameterf},
+       {"glTexParameterf", (void **) &qglTexParameterf},
 //     {"glTexParameterfv", (void **) &qglTexParameterfv},
        {"glTexParameteri", (void **) &qglTexParameteri},
 //     {"glPixelStoref", (void **) &qglPixelStoref},
@@ -421,13 +423,13 @@ void VID_CheckExtensions(void)
        if (!GL_CheckExtension("OpenGL 1.1.0", opengl110funcs, NULL, false))
                Sys_Error("OpenGL 1.1.0 functions not found\n");
 
-       Con_Printf ("GL_VENDOR: %s\n", gl_vendor);
-       Con_Printf ("GL_RENDERER: %s\n", gl_renderer);
-       Con_Printf ("GL_VERSION: %s\n", gl_version);
-       Con_Printf ("GL_EXTENSIONS: %s\n", gl_extensions);
-       Con_Printf ("%s_EXTENSIONS: %s\n", gl_platform, gl_platformextensions);
+       Con_DPrintf ("GL_VENDOR: %s\n", gl_vendor);
+       Con_DPrintf ("GL_RENDERER: %s\n", gl_renderer);
+       Con_DPrintf ("GL_VERSION: %s\n", gl_version);
+       Con_DPrintf ("GL_EXTENSIONS: %s\n", gl_extensions);
+       Con_DPrintf ("%s_EXTENSIONS: %s\n", gl_platform, gl_platformextensions);
 
-       Con_Printf("Checking OpenGL extensions...\n");
+       Con_DPrintf("Checking OpenGL extensions...\n");
 
        if (!GL_CheckExtension("glDrawRangeElements", drawrangeelementsfuncs, "-nodrawrangeelements", true))
                GL_CheckExtension("GL_EXT_draw_range_elements", drawrangeelementsextfuncs, "-nodrawrangeelements", false);
@@ -452,6 +454,8 @@ void VID_CheckExtensions(void)
        if (gl_support_var)
                gl_support_var2 = GL_CheckExtension("GL_NV_vertex_array_range2", NULL, "-novar2", false);
 
+       gl_support_anisotropy = GL_CheckExtension("GL_EXT_texture_filter_anisotropic", NULL, "-noanisotropy", false);
+
        // we don't care if it's an extension or not, they are identical functions, so keep it simple in the rendering code
        if (qglDrawRangeElements == NULL)
                qglDrawRangeElements = qglDrawRangeElementsEXT;
@@ -669,6 +673,8 @@ void VID_Shared_Init(void)
        Cvar_RegisterVariable(&m_filter);
        Cmd_AddCommand("force_centerview", Force_CenterView_f);
        Cmd_AddCommand("vid_restart", VID_Restart_f);
+       if (gamemode == GAME_GOODVSBAD2)
+               Cvar_Set("gl_combine", "0");
 }
 
 int current_vid_fullscreen;
@@ -767,7 +773,7 @@ void VID_Open(void)
                Cvar_SetValueQuick(&vid_stencil, 0);
        }
 
-       Con_Printf("Starting video system\n");
+       Con_DPrintf("Starting video system\n");
        if (!VID_Mode(vid_fullscreen.integer, vid_width.integer, vid_height.integer, vid_bitsperpixel.integer, vid_stencil.integer))
        {
                Con_Printf("Desired video mode fail, trying fallbacks...\n");