extern void (GLAPIENTRY *qglActiveStencilFaceEXT)(GLenum);
extern int gl_support_stenciltwoside;
+//GL_EXT_blend_minmax
+extern int gl_support_ext_blend_minmax;
+#ifndef GL_FUNC_ADD_EXT
+#define GL_FUNC_ADD_EXT 0x8006 // also supplied by GL_EXT_blend_subtract
+#define GL_MIN_EXT 0x8007
+#define GL_MAX_EXT 0x8008
+#define GL_BLEND_EQUATION_EXT 0x8009 // also supplied by GL_EXT_blend_subtract
+extern void (GLAPIENTRY *qglBlendEquationEXT)(GLenum); // also supplied by GL_EXT_blend_subtract
+#endif
+
+//GL_EXT_blend_subtract
+extern int gl_support_ext_blend_subtract;
+#ifndef GL_FUNC_SUBTRACT_EXT
+#define GL_FUNC_SUBTRACT_EXT 0x800A
+#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
+#endif
+
//GL_ARB_texture_non_power_of_two
extern int gl_support_arb_texture_non_power_of_two;
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
void (GLAPIENTRY *qglLineWidth)(GLfloat width);
void (GLAPIENTRY *qglPointSize)(GLfloat size);
+void (GLAPIENTRY *qglBlendEquationEXT)(GLenum);
+
void (GLAPIENTRY *qglActiveStencilFaceEXT)(GLenum);
void (GLAPIENTRY *qglDeleteObjectARB)(GLhandleARB obj);
{NULL, NULL}
};
+static dllfunction_t blendequationfuncs[] =
+{
+ {"glBlendEquationEXT", (void **) &qglBlendEquationEXT},
+ {NULL, NULL}
+};
+
static dllfunction_t shaderobjectsfuncs[] =
{
{"glDeleteObjectARB", (void **) &qglDeleteObjectARB},
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;
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);