]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - vid_shared.c
increased M_MAX_EDICTS to 32768
[xonotic/darkplaces.git] / vid_shared.c
index 6a2d0d2c7d43f7d59e987ecb04e95d90d3cd9836..6599d711012b0e3ae12d01989e1fc5410474b068 100644 (file)
@@ -33,6 +33,8 @@ int gl_stencil = false;
 int gl_texture3d = false;
 // GL_ARB_texture_cubemap
 int gl_texturecubemap = false;
+// GL_ARB_texture_non_power_of_two
+int gl_support_arb_texture_non_power_of_two = false;
 // GL_ARB_texture_env_dot3
 int gl_dot3arb = false;
 // GL_SGIS_texture_edge_clamp
@@ -42,6 +44,10 @@ int gl_support_anisotropy = false;
 int gl_max_anisotropy = 1;
 // GL_EXT_stencil_two_side
 int gl_support_stenciltwoside = false;
+// GL_EXT_blend_minmax
+int gl_support_ext_blend_minmax = false;
+// GL_EXT_blend_subtract
+int gl_support_ext_blend_subtract = false;
 // GL_ARB_shader_objects
 int gl_support_shader_objects = false;
 // GL_ARB_shading_language_100
@@ -246,6 +252,8 @@ void (GLAPIENTRY *qglPolygonStipple)(const GLubyte *mask);
 void (GLAPIENTRY *qglLineWidth)(GLfloat width);
 void (GLAPIENTRY *qglPointSize)(GLfloat size);
 
+void (GLAPIENTRY *qglBlendEquationEXT)(GLenum);
+
 void (GLAPIENTRY *qglActiveStencilFaceEXT)(GLenum);
 
 void (GLAPIENTRY *qglDeleteObjectARB)(GLhandleARB obj);
@@ -517,6 +525,12 @@ static dllfunction_t stenciltwosidefuncs[] =
        {NULL, NULL}
 };
 
+static dllfunction_t blendequationfuncs[] =
+{
+       {"glBlendEquationEXT", (void **) &qglBlendEquationEXT},
+       {NULL, NULL}
+};
+
 static dllfunction_t shaderobjectsfuncs[] =
 {
        {"glDeleteObjectARB", (void **) &qglDeleteObjectARB},
@@ -627,11 +641,14 @@ void VID_CheckExtensions(void)
        gl_supportslockarrays = false;
        gl_texture3d = false;
        gl_texturecubemap = false;
+       gl_support_arb_texture_non_power_of_two = false;
        gl_dot3arb = false;
        gl_support_clamptoedge = false;
        gl_support_anisotropy = false;
        gl_max_anisotropy = 1;
        gl_support_stenciltwoside = false;
+       gl_support_ext_blend_minmax = false;
+       gl_support_ext_blend_subtract = false;
        gl_support_shader_objects = false;
        gl_support_shading_language_100 = false;
        gl_support_vertex_shader = false;
@@ -679,6 +696,7 @@ void VID_CheckExtensions(void)
 // COMMANDLINEOPTION: GL: -nocubemap disables GL_ARB_texture_cube_map (required for bumpmapping)
        if ((gl_texturecubemap = GL_CheckExtension("GL_ARB_texture_cube_map", NULL, "-nocubemap", false)))
                qglGetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB, &gl_max_cube_map_texture_size);
+       gl_support_arb_texture_non_power_of_two = GL_CheckExtension("GL_ARB_texture_non_power_of_two", NULL, "-notexturenonpoweroftwo", false);
 // COMMANDLINEOPTION: GL: -nocva disables GL_EXT_compiled_vertex_array (renders faster)
        gl_supportslockarrays = GL_CheckExtension("GL_EXT_compiled_vertex_array", compiledvertexarrayfuncs, "-nocva", false);
 // COMMANDLINEOPTION: GL: -noedgeclamp disables GL_EXT_texture_edge_clamp or GL_SGIS_texture_edge_clamp (recommended, some cards do not support the other texture clamp method)
@@ -688,6 +706,9 @@ void VID_CheckExtensions(void)
        if ((gl_support_anisotropy = GL_CheckExtension("GL_EXT_texture_filter_anisotropic", NULL, "-noanisotropy", false)))
                qglGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &gl_max_anisotropy);
 
+       gl_support_ext_blend_minmax = GL_CheckExtension("GL_EXT_blend_minmax", blendequationfuncs, "-noblendminmax", false);
+       gl_support_ext_blend_subtract = GL_CheckExtension("GL_EXT_blend_subtract", blendequationfuncs, "-noblendsubtract", false);
+
 // COMMANDLINEOPTION: GL: -nostenciltwoside disables GL_EXT_stencil_two_side (accelerates shadow rendering)
        gl_support_stenciltwoside = GL_CheckExtension("GL_EXT_stencil_two_side", stenciltwosidefuncs, "-nostenciltwoside", false);