added customized subset selection

git-svn-id: https://glew.svn.sourceforge.net/svnroot/glew/trunk/glew@326 783a27ee-832a-0410-bc00-9f386506c6dd
This commit is contained in:
ikits 2004-12-31 08:50:04 +00:00
parent 15fd29673a
commit 254737d17b
14 changed files with 279 additions and 242 deletions

View File

@ -1,8 +1,6 @@
Major:
- add OpenGL 2.0 support
- add support for initialization on first use
- add text file for selecting a subset of the extensions
Minor:
- add support for all SUN, MTX, and OML extensions

View File

@ -19,6 +19,20 @@ CORE = core
EXT = extensions
BLACKLIST = blacklist
GL_CORE_SPEC := $(CORE)/GL_VERSION*
GLX_CORE_SPEC := $(CORE)/GLX_VERSION*
ifeq (custom,$(MAKECMDGOALS))
#GL_CORE_SPEC := $(shell grep GL_VERSION custom.txt | sed -e 's/\(.*\)/$(CORE)\/\1/g;')
GL_EXT_SPEC := $(shell grep "^[ \t]*GL_" custom.txt | grep -v GL_VERSION | sed -e 's/\(.*\)/$(EXT)\/\1/g;')
WGL_EXT_SPEC := $(shell grep "^[ \t]*WGL_" custom.txt | sed -e 's/\(.*\)/$(EXT)\/\1/g;')
#GLX_CORE_SPEC := $(shell grep GLX_VERSION custom.txt | sed -e 's/\(.*\)/$(CORE)\/\1/g;')
GLX_EXT_SPEC := $(shell grep "^[ \t]*GLX_" custom.txt | grep -v GLX_VERSION | sed -e 's/\(.*\)/$(EXT)\/\1/g;')
else
GL_EXT_SPEC := $(EXT)/GL_*
WGL_EXT_SPEC := $(EXT)/WGL_*
GLX_EXT_SPEC := $(EXT)/GLX_*
endif
PARSE_SPEC = parse_spec.pl
SYSTEM = $(strip $(shell uname -s))
@ -30,7 +44,7 @@ D.DEST = $(TOP)/doc
TARGETS = $(I.DEST)/glew.h $(I.DEST)/wglew.h $(I.DEST)/glxew.h $(S.DEST)/glew_gl.c $(S.DEST)/glew_str.c $(S.DEST)/glew_wgl.c $(S.DEST)/glew_glx.c $(S.DEST)/glewinfo.c \
$(D.DEST)/glew.html $(D.DEST)/wglew.html $(D.DEST)/glxew.html
all: $(TARGETS)
all custom: $(TARGETS)
registry: $(REGISTRY)/.dummy
ext: $(EXT)/.dummy
@ -58,14 +72,14 @@ endif
$(I.DEST)/glew.h: $(EXT)/.dummy
test -d $(I.DEST) || mkdir -p $(I.DEST)
cp -f $(SRC)/glew_head.h $@
$(BIN)/make_header.pl GLAPIENTRY GL $(CORE)/GL_VERSION* >> $@
$(BIN)/make_header.pl GLAPIENTRY GL $(EXT)/GL_* >> $@
$(BIN)/make_header.pl GLAPIENTRY GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_header.pl GLAPIENTRY GL $(GL_EXT_SPEC) >> $@
echo -e "/* ------------------------------------------------------------------------- */\n\n#if defined(GLEW_MX) && defined(_WIN32)\n#define GLEW_FUN_EXPORT\n#else\n#define GLEW_FUN_EXPORT GLEWAPI\n#endif /* GLEW_MX */\n" >> $@
echo -e "#if defined(GLEW_MX)\n#define GLEW_VAR_EXPORT\n#else\n#define GLEW_VAR_EXPORT GLEWAPI\n#endif /* GLEW_MX */\n" >> $@
echo -e "#if defined(GLEW_MX) && defined(_WIN32)\nstruct GLEWContextStruct\n{\n#endif /* GLEW_MX */" >> $@
$(BIN)/make_struct_fun.pl GLEW_FUN_EXPORT $(CORE)/GL_VERSION* $(EXT)/GL_* >> $@
$(BIN)/make_struct_fun.pl GLEW_FUN_EXPORT $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
echo -e "\n#if defined(GLEW_MX) && !defined(_WIN32)\nstruct GLEWContextStruct\n{\n#endif /* GLEW_MX */\n" >> $@
$(BIN)/make_struct_var.pl GLEW_VAR_EXPORT $(CORE)/GL_VERSION* $(EXT)/GL_* >> $@
$(BIN)/make_struct_var.pl GLEW_VAR_EXPORT $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
echo -e "\n#ifdef GLEW_MX\n}; /* GLEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
perl -e 's/GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;/GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1;\nGLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;/' -pi $@
rm -f $@.bak
@ -73,21 +87,21 @@ $(I.DEST)/glew.h: $(EXT)/.dummy
$(I.DEST)/wglew.h: $(EXT)/.dummy
cp -f $(SRC)/wglew_head.h $@
$(BIN)/make_header.pl WINAPI WGL $(EXT)/WGL_* >> $@
$(BIN)/make_header.pl WINAPI WGL $(WGL_EXT_SPEC) >> $@
echo -e "/* ------------------------------------------------------------------------- */\n\n#ifdef GLEW_MX\n#define WGLEW_EXPORT\n#else\n#define WGLEW_EXPORT GLEWAPI\n#endif /* GLEW_MX */\n\n#ifdef GLEW_MX\nstruct WGLEWContextStruct\n{\n#endif /* GLEW_MX */" >> $@
$(BIN)/make_struct_fun.pl WGLEW_EXPORT $(EXT)/WGL_* >> $@
$(BIN)/make_struct_var.pl WGLEW_EXPORT $(EXT)/WGL_* >> $@
$(BIN)/make_struct_fun.pl WGLEW_EXPORT $(WGL_EXT_SPEC) >> $@
$(BIN)/make_struct_var.pl WGLEW_EXPORT $(WGL_EXT_SPEC) >> $@
echo -e "\n#ifdef GLEW_MX\n}; /* WGLEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
cat $(SRC)/wglew_tail.h >> $@
$(I.DEST)/glxew.h: $(EXT)/.dummy
cp -f $(SRC)/glxew_head.h $@
$(BIN)/make_header.pl '' GLX $(CORE)/GLX_VERSION* >> $@
$(BIN)/make_header.pl '' GLX $(EXT)/GLX_* >> $@
$(BIN)/make_header.pl '' GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_header.pl '' GLX $(GLX_EXT_SPEC) >> $@
echo -e "/* ------------------------------------------------------------------------- */\n\n#ifdef GLEW_MX\n#define GLXEW_EXPORT\n#else\n#define GLXEW_EXPORT extern\n#endif /* GLEW_MX */" >> $@
$(BIN)/make_struct_fun.pl extern $(CORE)/GLX_VERSION* $(EXT)/GLX_* >> $@
$(BIN)/make_struct_fun.pl extern $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
echo -e "\n#if defined(GLEW_MX)\nstruct GLXEWContextStruct\n{\n#endif /* GLEW_MX */\n" >> $@
$(BIN)/make_struct_var.pl GLXEW_EXPORT $(CORE)/GLX_VERSION* $(EXT)/GLX_* >> $@
$(BIN)/make_struct_var.pl GLXEW_EXPORT $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
echo -e "\n#ifdef GLEW_MX\n}; /* GLXEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
perl -e 's/GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2;/GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_0;\nGLXEW_EXPORT GLboolean __GLXEW_VERSION_1_1;\nGLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2;/' -pi $@
cat $(SRC)/glxew_tail.h >> $@
@ -95,17 +109,17 @@ $(I.DEST)/glxew.h: $(EXT)/.dummy
$(S.DEST)/glew_gl.c: $(EXT)/.dummy
cp -f $(SRC)/glew_gl_head.c $@
$(BIN)/make_def_fun.pl GL $(CORE)/GL_VERSION* >> $@
$(BIN)/make_def_fun.pl GL $(EXT)/GL_* >> $@
$(BIN)/make_def_fun.pl GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_def_fun.pl GL $(GL_EXT_SPEC) >> $@
cat $(SRC)/glew_gl_fun.c >> $@
$(BIN)/make_def_var.pl GL $(CORE)/GL_VERSION* >> $@
$(BIN)/make_def_var.pl GL $(EXT)/GL_* >> $@
$(BIN)/make_def_var.pl GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_def_var.pl GL $(GL_EXT_SPEC) >> $@
cat $(SRC)/glew_gl_var.c >> $@
$(BIN)/make_init.pl GL $(CORE)/GL_VERSION* >> $@
$(BIN)/make_init.pl GL $(EXT)/GL_* >> $@
$(BIN)/make_init.pl GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_init.pl GL $(GL_EXT_SPEC) >> $@
cat $(SRC)/glew_gl_init.c >> $@
$(BIN)/make_list.pl $(CORE)/GL_VERSION* | grep -v '\"GL_VERSION' >> $@
$(BIN)/make_list.pl $(EXT)/GL_* >> $@
$(BIN)/make_list.pl $(GL_CORE_SPEC) | grep -v '\"GL_VERSION' >> $@
$(BIN)/make_list.pl $(GL_EXT_SPEC) >> $@
cat $(SRC)/glew_gl_tail.c >> $@
perl -e "s/GLEW_VERSION_STRING/$(GLEW_MAJOR)\.$(GLEW_MINOR)\.$(GLEW_MICRO)/g" -pi $@
perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@
@ -113,39 +127,39 @@ $(S.DEST)/glew_gl.c: $(EXT)/.dummy
$(S.DEST)/glew_wgl.c: $(EXT)/.dummy
cp -f $(SRC)/glew_wgl_head.c $@
$(BIN)/make_def_fun.pl WGL $(EXT)/WGL_* >> $@
$(BIN)/make_def_var.pl WGL $(EXT)/WGL_* >> $@
$(BIN)/make_def_fun.pl WGL $(WGL_EXT_SPEC) >> $@
$(BIN)/make_def_var.pl WGL $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glew_wgl_var.c >> $@
$(BIN)/make_init.pl WGL $(EXT)/WGL_* >> $@
$(BIN)/make_init.pl WGL $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glew_wgl_init.c >> $@
$(BIN)/make_list.pl $(EXT)/WGL_* >> $@
$(BIN)/make_list.pl $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glew_wgl_tail.c >> $@
rm -f $@.bak
$(S.DEST)/glew_glx.c: $(EXT)/.dummy
cp -f $(SRC)/glew_glx_head.c $@
$(BIN)/make_def_fun.pl GLX $(CORE)/GLX_VERSION* >> $@
$(BIN)/make_def_fun.pl GLX $(EXT)/GLX_* >> $@
$(BIN)/make_def_fun.pl GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_def_fun.pl GLX $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glew_glx_fun.c >> $@
$(BIN)/make_def_var.pl GLX $(CORE)/GLX_VERSION* >> $@
$(BIN)/make_def_var.pl GLX $(EXT)/GLX_* >> $@
$(BIN)/make_def_var.pl GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_def_var.pl GLX $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glew_glx_var.c >> $@
$(BIN)/make_init.pl GLX $(CORE)/GLX_VERSION* >> $@
$(BIN)/make_init.pl GLX $(EXT)/GLX_* >> $@
$(BIN)/make_init.pl GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_init.pl GLX $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glew_glx_init.c >> $@
$(BIN)/make_list.pl $(CORE)/GLX_VERSION_1_3 | grep -v '\"GLX_VERSION' >> $@
$(BIN)/make_list.pl $(EXT)/GLX_* >> $@
$(BIN)/make_list.pl $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glew_glx_tail.c >> $@
$(BIN)/fix_OML_sync_control.sh $@
rm -f $@.bak
$(S.DEST)/glew_str.c: $(EXT)/.dummy
cp -f $(SRC)/glew_str_head.c $@
$(BIN)/make_str.pl $(CORE)/GL_VERSION* $(EXT)/GL_* >> $@
$(BIN)/make_str.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
cat $(SRC)/glew_str_wgl.c >> $@
$(BIN)/make_str.pl $(EXT)/WGL_* >> $@
$(BIN)/make_str.pl $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glew_str_glx.c >> $@
$(BIN)/make_str.pl $(CORE)/GLX_VERSION* $(EXT)/GLX_* >> $@
$(BIN)/make_str.pl $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glew_str_tail.c >> $@
# $(BIN)/fix_OML_sync_control.sh $@
# perl -e "s/GLEW_VERSION_STRING/$(GLEW_MAJOR)\.$(GLEW_MINOR)\.$(GLEW_MICRO)/g" -pi $@
@ -155,39 +169,39 @@ $(S.DEST)/glew_str.c: $(EXT)/.dummy
$(S.DEST)/glewinfo.c: $(EXT)/.dummy
cp -f $(SRC)/glewinfo_head.c $@
$(BIN)/make_info.pl $(CORE)/GL_VERSION* >> $@
$(BIN)/make_info.pl $(EXT)/GL_* >> $@
$(BIN)/make_info.pl $(GL_CORE_SPEC) >> $@
$(BIN)/make_info.pl $(GL_EXT_SPEC) >> $@
echo -e "#ifdef _WIN32\n" >> $@
$(BIN)/make_info.pl $(EXT)/WGL_* >> $@
$(BIN)/make_info.pl $(WGL_EXT_SPEC) >> $@
echo -e "#else /* _UNIX */\n" >> $@
$(BIN)/make_info.pl $(CORE)/GLX_VERSION* >> $@
$(BIN)/make_info.pl $(EXT)/GLX_* >> $@
$(BIN)/make_info.pl $(GLX_CORE_SPEC) >> $@
$(BIN)/make_info.pl $(GLX_EXT_SPEC) >> $@
echo -e "#endif /* _WIN32 */\n" >> $@
cat $(SRC)/glewinfo_gl.c >> $@
$(BIN)/make_info_list.pl $(CORE)/GL_VERSION* >> $@
$(BIN)/make_info_list.pl $(EXT)/GL_* >> $@
$(BIN)/make_info_list.pl $(GL_CORE_SPEC) >> $@
$(BIN)/make_info_list.pl $(GL_EXT_SPEC) >> $@
cat $(SRC)/glewinfo_wgl.c >> $@
$(BIN)/make_info_list.pl $(EXT)/WGL_* >> $@
$(BIN)/make_info_list.pl $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glewinfo_glx.c >> $@
$(BIN)/make_info_list.pl $(CORE)/GLX_VERSION* >> $@
$(BIN)/make_info_list.pl $(EXT)/GLX_* >> $@
$(BIN)/make_info_list.pl $(GLX_CORE_SPEC) >> $@
$(BIN)/make_info_list.pl $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glewinfo_tail.c >> $@
$(BIN)/fix_OML_sync_control.sh $@
$(D.DEST)/glew.html: $(EXT)/.dummy
cp -f $(SRC)/glew_head.html $@
$(BIN)/make_html.pl $(EXT)/GL_* >> $@
$(BIN)/make_html.pl $(GL_EXT_SPEC) >> $@
cat $(SRC)/glew_tail.html >> $@
$(D.DEST)/wglew.html: $(EXT)/.dummy
cp -f $(SRC)/wglew_head.html $@
$(BIN)/make_html.pl $(EXT)/WGL_* >> $@
$(BIN)/make_html.pl $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glew_tail.html >> $@
$(D.DEST)/glxew.html: $(EXT)/.dummy
cp -f $(SRC)/glxew_head.html $@
$(BIN)/make_html.pl $(EXT)/GLX_* >> $@
$(BIN)/make_html.pl $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glew_tail.html >> $@
clean:

View File

@ -26,13 +26,14 @@ our $type = shift;
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
}
# } else {
# local $/;
# @extlist = split "\n", (<>);
# }
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
output_decls($functions, \&make_pfn_decl);
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
output_decls($functions, \&make_pfn_decl);
}
}

View File

@ -20,15 +20,16 @@ our $type = shift;
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
}
# } else {
# local $/;
# @extlist = split "\n", (<>);
# }
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n";
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n";
}
}

View File

@ -49,26 +49,33 @@ our $type = shift;
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
}
foreach my $ext (sort @extlist)
my $extstr = $extlist[0];
printf STDERR "FASZI: $extstr \n";
#if (length($extstr) > 1)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
make_separator($extname);
print "#ifndef $extname\n#define $extname 1\n";
output_tokens($tokens, \&make_define);
output_types($types, \&make_type);
output_exacts($exacts, \&make_exact);
output_decls($functions, \&make_pfn_type);
output_decls($functions, \&make_pfn_alias);
make_separator($extname);
print "#ifndef $extname\n#define $extname 1\n";
output_tokens($tokens, \&make_define);
output_types($types, \&make_type);
output_exacts($exacts, \&make_exact);
output_decls($functions, \&make_pfn_type);
output_decls($functions, \&make_pfn_alias);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
print "\n#define $extvar " . $type . "EW_GET_VAR(" . prefix_varname($extvar) . ")\n";
print "\n#endif /* $extname */\n\n";
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
print "\n#define $extvar " . $type . "EW_GET_VAR(" . prefix_varname($extvar) . ")\n";
print "\n#endif /* $extname */\n\n";
}
}
}
#} else {
# local $/;
# @extlist = split "\n", (<>);
#}

View File

@ -22,28 +22,29 @@ my $cur_group = "";
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
}
# } else {
# local $/;
# @extlist = split "\n", (<>);
# }
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
$cur_group = $extname;
$cur_group =~ s/^(?:W?)GL(?:X?)_([A-Z0-9]+?)_.*$/$1/;
$extname =~ s/^(?:W?)GL(?:X?)_(.*)$/$1/;
if ($cur_group ne $group)
{
$group = $cur_group;
print "<br>\n";
}
if ($exturl)
{
print "<a href=\"$exturl\">$extname</a><br>\n";
}
else
{
print "$extname<br>\n";
}
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
$cur_group = $extname;
$cur_group =~ s/^(?:W?)GL(?:X?)_([A-Z0-9]+?)_.*$/$1/;
$extname =~ s/^(?:W?)GL(?:X?)_(.*)$/$1/;
if ($cur_group ne $group)
{
$group = $cur_group;
print "<br>\n";
}
if ($exturl)
{
print "<a href=\"$exturl\">$extname</a><br>\n";
}
else
{
print "$extname<br>\n";
}
}
}

View File

@ -29,33 +29,34 @@ my %extensions = ();
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
}
# } else {
# local $/;
# @extlist = split "\n", (<>);
# }
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
my $extpre = $extname;
$extpre =~ s/(GLX|GLW|GL).*/$1/;
$extpre = lc $extpre;
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
my $extpre = $extname;
$extpre =~ s/(GLX|GLW|GL).*/$1/;
$extpre = lc $extpre;
#make_separator($extname);
#print "#ifdef $extname\n\n";
print "static void _glewInfo_$extname (void)\n{\n";
if ($extvar =~ /VERSION/)
{
print " glewPrintExt(\"$extname\", $extvar, $extvar);\n";
}
else
{
print " glewPrintExt(\"$extname\", $extvar, $extpre" .
"ewGetExtension(\"$extname\"));\n";
}
output_decls($functions, \&make_pfn_info);
print "}\n\n";
#print "#endif /* $extname */\n\n";
#make_separator($extname);
#print "#ifdef $extname\n\n";
print "static void _glewInfo_$extname (void)\n{\n";
if ($extvar =~ /VERSION/)
{
print " glewPrintExt(\"$extname\", $extvar, $extvar);\n";
}
else
{
print " glewPrintExt(\"$extname\", $extvar, $extpre" .
"ewGetExtension(\"$extname\"));\n";
}
output_decls($functions, \&make_pfn_info);
print "}\n\n";
#print "#endif /* $extname */\n\n";
}
}

View File

@ -35,16 +35,17 @@ my %extensions = ();
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
}
# } else {
# local $/;
# @extlist = split "\n", (<>);
# }
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
print "#ifdef $extname\n";
print " _glewInfo_$extname();\n";
print "#endif /* $extname */\n";
print "#ifdef $extname\n";
print " _glewInfo_$extname();\n";
print "#endif /* $extname */\n";
}
}

View File

@ -31,28 +31,29 @@ our $type = shift;
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
}
# } else {
# local $/;
# @extlist = split "\n", (<>);
# }
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) =
parse_ext($ext);
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) =
parse_ext($ext);
#make_separator($extname);
#print "#ifdef $extname\n\n";
my $extvar = $extname;
my $extvardef = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
if (keys %$functions)
{
print "static GLboolean _glewInit_$extname (" . $type .
"EW_CONTEXT_ARG_DEF_INIT)\n{\n GLboolean r = GL_FALSE;\n";
output_decls($functions, \&make_pfn_def_init);
print "\n return r;\n}\n\n";
}
#print "\nGLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n\n";
#print "#endif /* $extname */\n\n";
#make_separator($extname);
#print "#ifdef $extname\n\n";
my $extvar = $extname;
my $extvardef = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
if (keys %$functions)
{
print "static GLboolean _glewInit_$extname (" . $type .
"EW_CONTEXT_ARG_DEF_INIT)\n{\n GLboolean r = GL_FALSE;\n";
output_decls($functions, \&make_pfn_def_init);
print "\n return r;\n}\n\n";
}
#print "\nGLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n\n";
#print "#endif /* $extname */\n\n";
}
}

View File

@ -29,35 +29,37 @@ my %extensions = ();
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
}
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
my $extpre = $extname;
$extpre =~ s/^(W?)GL(X?).*$/\l$1gl\l$2ew/;
#my $pextvar = prefix_varname($extvar);
#print "#ifdef $extname\n";
print " " . $extvar . " = " . $extpre . "GetExtension(\"$extname\");\n";
if (keys %$functions)
{
if ($extname =~ /WGL_.*/)
{
print " if (glewExperimental || " . $extvar . "|| crippled) " . $extvar . "= !_glewInit_$extname(GLEW_CONTEXT_ARG_VAR_INIT);\n";
}
else
{
print " if (glewExperimental || " . $extvar . ") " . $extvar . " = !_glewInit_$extname(GLEW_CONTEXT_ARG_VAR_INIT);\n";
}
}
#print "#endif /* $extname */\n";
# } else {
# local $/;
# @extlist = split "\n", (<>);
# }
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
my $extpre = $extname;
$extpre =~ s/^(W?)GL(X?).*$/\l$1gl\l$2ew/;
#my $pextvar = prefix_varname($extvar);
#print "#ifdef $extname\n";
print " " . $extvar . " = " . $extpre . "GetExtension(\"$extname\");\n";
if (keys %$functions)
{
if ($extname =~ /WGL_.*/)
{
print " if (glewExperimental || " . $extvar . "|| crippled) " . $extvar . "= !_glewInit_$extname(GLEW_CONTEXT_ARG_VAR_INIT);\n";
}
else
{
print " if (glewExperimental || " . $extvar . ") " . $extvar . " = !_glewInit_$extname(GLEW_CONTEXT_ARG_VAR_INIT);\n";
}
}
#print "#endif /* $extname */\n";
}
}

View File

@ -20,34 +20,34 @@ our $export = shift;
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
}
# } else {
# local $/;
# @extlist = split "\n", (<>);
# }
my $curexttype = "";
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $exttype = $extname;
$exttype =~ s/(W*?)GL(X*?)_(.*?_)(.*)/$3/;
my $extrem = $extname;
$extrem =~ s/(W*?)GL(X*?)_(.*?_)(.*)/$4/;
my $extvar = $extname;
$extvar =~ s/(W*)GL(X*)_/$1GL$2EW_/;
if(!($exttype =~ $curexttype))
my $curexttype = "";
foreach my $ext (sort @extlist)
{
if(length($curexttype) > 0)
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $exttype = $extname;
$exttype =~ s/(W*?)GL(X*?)_(.*?_)(.*)/$3/;
my $extrem = $extname;
$extrem =~ s/(W*?)GL(X*?)_(.*?_)(.*)/$4/;
my $extvar = $extname;
$extvar =~ s/(W*)GL(X*)_/$1GL$2EW_/;
if(!($exttype =~ $curexttype))
{
print " }\n";
if(length($curexttype) > 0)
{
print " }\n";
}
print " if (_glewStrSame2(&pos, &len, (const GLubyte*)\"$exttype\", " . length($exttype) . "))\n";
print " {\n";
$curexttype = $exttype;
}
print " if (_glewStrSame2(&pos, &len, (const GLubyte*)\"$exttype\", " . length($exttype) . "))\n";
print " {\n";
$curexttype = $exttype;
print " if (_glewStrSame3(pos, len, (const GLubyte*)\"$extrem\", ". length($extrem) . "))\n";
print " return $extvar;\n";
}
print " if (_glewStrSame3(pos, len, (const GLubyte*)\"$extrem\", ". length($extrem) . "))\n";
print " return $extvar;\n";
}
print " }\n";
print " }\n";
}

View File

@ -27,13 +27,15 @@ our $export = shift;
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
output_decls($functions, \&make_pfn_decl);
}
}
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
output_decls($functions, \&make_pfn_decl);
}
#} else {
# local $/;
# @extlist = split "\n", (<>);
#}

View File

@ -20,15 +20,16 @@ our $export = shift;
if (@ARGV)
{
@extlist = @ARGV;
} else {
local $/;
@extlist = split "\n", (<>);
}
# } else {
# local $/;
# @extlist = split "\n", (<>);
# }
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
print $export . " GLboolean " . prefix_varname($extvar) . ";\n";
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
print $export . " GLboolean " . prefix_varname($extvar) . ";\n";
}
}

7
auto/custom.txt Normal file
View File

@ -0,0 +1,7 @@
WGL_ARB_extensions_string
WGL_EXT_extensions_string
WGL_ARB_pixel_format
WGL_ARB_pbuffer
WGL_NV_float_buffer
WGL_ATI_pixel_format_float
WGL_ARB_multisample