mirror of
https://github.com/nigels-com/glew.git
synced 2024-11-28 00:31:56 +00:00
Extend glewinfo to support optional -experimental mode, default to normal mode of operation
This commit is contained in:
parent
7f65a36866
commit
a7cf7b405b
@ -286,7 +286,7 @@ $(S.DEST)/glewinfo.c: $(EXT)/.dummy
|
|||||||
$(BIN)/make_info_list.pl $(EGL_CORE_SPEC) >> $@
|
$(BIN)/make_info_list.pl $(EGL_CORE_SPEC) >> $@
|
||||||
$(BIN)/make_info_list.pl $(EGL_EXT_SPEC) >> $@
|
$(BIN)/make_info_list.pl $(EGL_EXT_SPEC) >> $@
|
||||||
cat $(SRC)/glewinfo_tail.c >> $@
|
cat $(SRC)/glewinfo_tail.c >> $@
|
||||||
perl -e 's/"glColorSubTable"/"glBlendEquation", glBlendEquation == NULL);\n glewInfoFunc("glColorSubTable"/g' -pi $@
|
perl -e 's/"glColorSubTable"/"glBlendEquation", glBlendEquation == NULL);\n glewInfoFunc(fi, "glColorSubTable"/g' -pi $@
|
||||||
rm -f $@.bak
|
rm -f $@.bak
|
||||||
|
|
||||||
# Update documentation
|
# Update documentation
|
||||||
|
@ -19,7 +19,7 @@ do 'bin/make.pl';
|
|||||||
sub make_pfn_info($%)
|
sub make_pfn_info($%)
|
||||||
{
|
{
|
||||||
my $name = $_[0];
|
my $name = $_[0];
|
||||||
return " glewInfoFunc(\"$_[0]\", $name == NULL);";
|
return " glewInfoFunc(fi, \"$_[0]\", $name == NULL);";
|
||||||
}
|
}
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------------
|
||||||
@ -43,13 +43,23 @@ if (@ARGV)
|
|||||||
#make_separator($extname);
|
#make_separator($extname);
|
||||||
print "#ifdef $extname\n\n";
|
print "#ifdef $extname\n\n";
|
||||||
print "static void _glewInfo_$extname (void)\n{\n";
|
print "static void _glewInfo_$extname (void)\n{\n";
|
||||||
if ($extvar =~ /VERSION/)
|
|
||||||
|
if (! %$functions)
|
||||||
{
|
{
|
||||||
print " glewPrintExt(\"$extname\", $extvar, $extvar, $extvar);\n";
|
print " ";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print " glewPrintExt(\"$extname\", $extvar, $extpre" .
|
print " GLboolean fi = ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($extvar =~ /VERSION/)
|
||||||
|
{
|
||||||
|
print "glewPrintExt(\"$extname\", $extvar, $extvar, $extvar);\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print "glewPrintExt(\"$extname\", $extvar, $extpre" .
|
||||||
"ewIsSupported(\"$extname\"), $extpre" .
|
"ewIsSupported(\"$extname\"), $extpre" .
|
||||||
"ewGetExtension(\"$extstring\"));\n";
|
"ewGetExtension(\"$extstring\"));\n";
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,9 @@ struct createParams
|
|||||||
/* https://www.opengl.org/registry/specs/ARB/glx_create_context.txt */
|
/* https://www.opengl.org/registry/specs/ARB/glx_create_context.txt */
|
||||||
int profile; /* core = 1, compatibility = 2 */
|
int profile; /* core = 1, compatibility = 2 */
|
||||||
int flags; /* debug = 1, forward compatible = 2 */
|
int flags; /* debug = 1, forward compatible = 2 */
|
||||||
|
|
||||||
|
/* GLEW experimental mode */
|
||||||
|
int experimental;
|
||||||
};
|
};
|
||||||
|
|
||||||
GLboolean glewCreateContext (struct createParams *params);
|
GLboolean glewCreateContext (struct createParams *params);
|
||||||
@ -50,7 +53,7 @@ void glewDestroyContext ();
|
|||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
|
|
||||||
static void glewPrintExt (const char* name, GLboolean def1, GLboolean def2, GLboolean def3)
|
static GLboolean glewPrintExt (const char* name, GLboolean def1, GLboolean def2, GLboolean def3)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
fprintf(f, "\n%s:", name);
|
fprintf(f, "\n%s:", name);
|
||||||
@ -65,15 +68,19 @@ static void glewPrintExt (const char* name, GLboolean def1, GLboolean def2, GLbo
|
|||||||
for (i=0; i<strlen(name)+1; i++) fprintf(f, "-");
|
for (i=0; i<strlen(name)+1; i++) fprintf(f, "-");
|
||||||
fprintf(f, "\n");
|
fprintf(f, "\n");
|
||||||
fflush(f);
|
fflush(f);
|
||||||
|
return def1 || def2 || def3 || glewExperimental; /* Enable per-function info too? */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void glewInfoFunc (const char* name, GLint undefined)
|
static void glewInfoFunc (GLboolean fi, const char* name, GLint undefined)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
fprintf(f, " %s:", name);
|
if (fi)
|
||||||
for (i=0; i<60-strlen(name); i++) fprintf(f, " ");
|
{
|
||||||
fprintf(f, "%s\n", undefined ? "MISSING" : "OK");
|
fprintf(f, " %s:", name);
|
||||||
fflush(f);
|
for (i=0; i<60-strlen(name); i++) fprintf(f, " ");
|
||||||
|
fprintf(f, "%s\n", undefined ? "MISSING" : "OK");
|
||||||
|
fflush(f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------- GL_VERSION_1_1 ---------------------------- */
|
/* ----------------------------- GL_VERSION_1_1 ---------------------------- */
|
||||||
|
@ -20,7 +20,8 @@ int main (int argc, char** argv)
|
|||||||
0, /* major */
|
0, /* major */
|
||||||
0, /* minor */
|
0, /* minor */
|
||||||
0, /* profile mask */
|
0, /* profile mask */
|
||||||
0 /* flags */
|
0, /* flags */
|
||||||
|
0 /* experimental */
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(GLEW_EGL)
|
#if defined(GLEW_EGL)
|
||||||
@ -41,7 +42,8 @@ int main (int argc, char** argv)
|
|||||||
#endif
|
#endif
|
||||||
"[-version <OpenGL version>] "
|
"[-version <OpenGL version>] "
|
||||||
"[-profile core|compatibility] "
|
"[-profile core|compatibility] "
|
||||||
"[-flag debug|forward]"
|
"[-flag debug|forward] "
|
||||||
|
"[-experimental]"
|
||||||
"\n");
|
"\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -52,7 +54,7 @@ int main (int argc, char** argv)
|
|||||||
glewDestroyContext();
|
glewDestroyContext();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
glewExperimental = GL_TRUE;
|
glewExperimental = params.experimental ? GL_TRUE : GL_FALSE;
|
||||||
err = glewInit();
|
err = glewInit();
|
||||||
if (GLEW_OK != err)
|
if (GLEW_OK != err)
|
||||||
{
|
{
|
||||||
@ -158,13 +160,18 @@ GLboolean glewParseArgs (int argc, char** argv, struct createParams *params)
|
|||||||
{
|
{
|
||||||
if (++p >= argc) return GL_TRUE;
|
if (++p >= argc) return GL_TRUE;
|
||||||
params->display = argv[p++];
|
params->display = argv[p++];
|
||||||
}
|
}
|
||||||
else if (!strcmp(argv[p], "-visual"))
|
else if (!strcmp(argv[p], "-visual"))
|
||||||
{
|
{
|
||||||
if (++p >= argc) return GL_TRUE;
|
if (++p >= argc) return GL_TRUE;
|
||||||
params->visual = (int)strtol(argv[p++], NULL, 0);
|
params->visual = (int)strtol(argv[p++], NULL, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
else if (!strcmp(argv[p], "-experimental"))
|
||||||
|
{
|
||||||
|
params->experimental = 1;
|
||||||
|
++p;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return GL_TRUE;
|
return GL_TRUE;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user