diff options
Diffstat (limited to 'mesalib/src')
24 files changed, 998 insertions, 359 deletions
diff --git a/mesalib/src/glsl/ast.h b/mesalib/src/glsl/ast.h index d7bf90925..ba30f65df 100644 --- a/mesalib/src/glsl/ast.h +++ b/mesalib/src/glsl/ast.h @@ -63,6 +63,10 @@ public: /* If the user *does* call delete, that's OK, we will just * talloc_free in that case. */ + static void operator delete(void *table, void *ctx) + { + talloc_free(table); + } static void operator delete(void *table) { talloc_free(table); diff --git a/mesalib/src/glsl/getopt.cpp b/mesalib/src/glsl/getopt.cpp new file mode 100644 index 000000000..ea5dd3927 --- /dev/null +++ b/mesalib/src/glsl/getopt.cpp @@ -0,0 +1,552 @@ +/* $OpenBSD: getopt_long.c,v 1.20 2005/10/25 15:49:37 jmc Exp $ */ +/* $NetBSD: getopt_long.c,v 1.15 2002/01/31 22:43:40 tv Exp $ */ +// Adapted for Box Backup by Chris Wilson <chris+boxbackup@qwirx.com> + +/* + * Copyright (c) 2002 Todd C. Miller <Todd.Miller@courtesan.com> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Sponsored in part by the Defense Advanced Research Projects + * Agency (DARPA) and Air Force Research Laboratory, Air Force + * Materiel Command, USAF, under agreement number F39502-99-1-0512. + */ +/*- + * Copyright (c) 2000 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Dieter Baron and Thomas Klausner. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +// #include "Box.h" + +#include <errno.h> +#include <stdarg.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#define __STDC__ 1 + +#include "getopt.h" + +#if defined _MSC_VER || defined __MINGW32__ +#define REPLACE_GETOPT /* use this getopt as the system getopt(3) */ + +#ifdef REPLACE_GETOPT +int opterr = 1; /* if error message should be printed */ +int optind = 1; /* index into parent argv vector */ +int optopt = '?'; /* character checked for validity */ +int optreset; /* reset getopt */ +char *optarg; /* argument associated with option */ +#endif + +#define PRINT_ERROR ((opterr) && (*options != ':')) + +#define FLAG_PERMUTE 0x01 /* permute non-options to the end of argv */ +#define FLAG_ALLARGS 0x02 /* treat non-options as args to option "-1" */ +#define FLAG_LONGONLY 0x04 /* operate as getopt_long_only */ + +/* return values */ +#define BADCH (int)'?' +#define BADARG ((*options == ':') ? (int)':' : (int)'?') +#define INORDER (int)1 + +#define EMSG "" + +static void warnx(const char* fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fprintf(stderr, "\n"); + } + + static int getopt_internal(int, char * const *, const char *, + const struct option *, int *, int); + static int parse_long_options(char * const *, const char *, + const struct option *, int *, int); + static int gcd(int, int); + static void permute_args(int, int, int, char * const *); + + static char *place = EMSG; /* option letter processing */ + + /* XXX: set optreset to 1 rather than these two */ + static int nonopt_start = -1; /* first non option argument (for permute) */ + static int nonopt_end = -1; /* first option after non options (for permute) */ + + /* Error messages */ + static const char recargchar[] = "option requires an argument -- %c"; + static const char recargstring[] = "option requires an argument -- %s"; + static const char ambig[] = "ambiguous option -- %.*s"; + static const char noarg[] = "option doesn't take an argument -- %.*s"; + static const char illoptchar[] = "unknown option -- %c"; + static const char illoptstring[] = "unknown option -- %s"; + + /* + * Compute the greatest common divisor of a and b. + */ + static int + gcd(int a, int b) + { + int c; + + c = a % b; + while (c != 0) { + a = b; + b = c; + c = a % b; + } + + return (b); + } + + /* + * Exchange the block from nonopt_start to nonopt_end with the block + * from nonopt_end to opt_end (keeping the same order of arguments + * in each block). + */ + static void + permute_args(int panonopt_start, int panonopt_end, int opt_end, + char * const *nargv) + { + int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos; + char *swap; + + /* + * compute lengths of blocks and number and size of cycles + */ + nnonopts = panonopt_end - panonopt_start; + nopts = opt_end - panonopt_end; + ncycle = gcd(nnonopts, nopts); + cyclelen = (opt_end - panonopt_start) / ncycle; + + for (i = 0; i < ncycle; i++) { + cstart = panonopt_end+i; + pos = cstart; + for (j = 0; j < cyclelen; j++) { + if (pos >= panonopt_end) + pos -= nnonopts; + else + pos += nopts; + swap = nargv[pos]; + /* LINTED const cast */ + ((char **) nargv)[pos] = nargv[cstart]; + /* LINTED const cast */ + ((char **)nargv)[cstart] = swap; + } + } + } + + /* + * parse_long_options -- + * Parse long options in argc/argv argument vector. + * Returns -1 if short_too is set and the option does not match long_options. + */ + static int + parse_long_options(char * const *nargv, const char *options, + const struct option *long_options, int *idx, int short_too) + { + char *current_argv, *has_equal; + size_t current_argv_len; + int i, match; + + current_argv = place; + match = -1; + + optind++; + + if ((has_equal = strchr(current_argv, '=')) != NULL) { + /* argument found (--option=arg) */ + current_argv_len = has_equal - current_argv; + has_equal++; + } else + current_argv_len = strlen(current_argv); + + for (i = 0; long_options[i].name; i++) { + /* find matching long option */ + if (strncmp(current_argv, long_options[i].name, + current_argv_len)) + continue; + + if (strlen(long_options[i].name) == current_argv_len) { + /* exact match */ + match = i; + break; + } + /* + * If this is a known short option, don't allow + * a partial match of a single character. + */ + if (short_too && current_argv_len == 1) + continue; + + if (match == -1) /* partial match */ + match = i; + else { + /* ambiguous abbreviation */ + if (PRINT_ERROR) + warnx(ambig, (int)current_argv_len, + current_argv); + optopt = 0; + return (BADCH); + } + } + if (match != -1) { /* option found */ + if (long_options[match].has_arg == no_argument + && has_equal) { + if (PRINT_ERROR) + warnx(noarg, (int)current_argv_len, + current_argv); + /* + * XXX: GNU sets optopt to val regardless of flag + */ + if (long_options[match].flag == NULL) + optopt = long_options[match].val; + else + optopt = 0; + return (BADARG); + } + if (long_options[match].has_arg == required_argument || + long_options[match].has_arg == optional_argument) { + if (has_equal) + optarg = has_equal; + else if (long_options[match].has_arg == + required_argument) { + /* + * optional argument doesn't use next nargv + */ + optarg = nargv[optind++]; + } + } + if ((long_options[match].has_arg == required_argument) + && (optarg == NULL)) { + /* + * Missing argument; leading ':' indicates no error + * should be generated. + */ + if (PRINT_ERROR) + warnx(recargstring, + current_argv); + /* + * XXX: GNU sets optopt to val regardless of flag + */ + if (long_options[match].flag == NULL) + optopt = long_options[match].val; + else + optopt = 0; + --optind; + return (BADARG); + } + } else { /* unknown option */ + if (short_too) { + --optind; + return (-1); + } + if (PRINT_ERROR) + warnx(illoptstring, current_argv); + optopt = 0; + return (BADCH); + } + if (idx) + *idx = match; + if (long_options[match].flag) { + *long_options[match].flag = long_options[match].val; + return (0); + } else + return (long_options[match].val); + } + + /* + * getopt_internal -- + * Parse argc/argv argument vector. Called by user level routines. + */ + static int + getopt_internal(int nargc, char * const *nargv, const char *options, + const struct option *long_options, int *idx, int flags) + { + const char * oli; /* option letter list index */ + int optchar, short_too; + static int posixly_correct = -1; + + if (options == NULL) + return (-1); + + /* + * Disable GNU extensions if POSIXLY_CORRECT is set or options + * string begins with a '+'. + */ + if (posixly_correct == -1) + posixly_correct = (getenv("POSIXLY_CORRECT") != NULL); + if (posixly_correct || *options == '+') + flags &= ~FLAG_PERMUTE; + else if (*options == '-') + flags |= FLAG_ALLARGS; + if (*options == '+' || *options == '-') + options++; + + /* + * XXX Some GNU programs (like cvs) set optind to 0 instead of + * XXX using optreset. Work around this braindamage. + */ + if (optind == 0) + optind = optreset = 1; + + optarg = NULL; + if (optreset) + nonopt_start = nonopt_end = -1; + start: + if (optreset || !*place) { /* update scanning pointer */ + optreset = 0; + if (optind >= nargc) { /* end of argument vector */ + place = EMSG; + if (nonopt_end != -1) { + /* do permutation, if we have to */ + permute_args(nonopt_start, nonopt_end, + optind, nargv); + optind -= nonopt_end - nonopt_start; + } + else if (nonopt_start != -1) { + /* + * If we skipped non-options, set optind + * to the first of them. + */ + optind = nonopt_start; + } + nonopt_start = nonopt_end = -1; + return (-1); + } + if (*(place = nargv[optind]) != '-' || + (place[1] == '\0' && strchr(options, '-') == NULL)) { + place = EMSG; /* found non-option */ + if (flags & FLAG_ALLARGS) { + /* + * GNU extension: + * return non-option as argument to option 1 + */ + optarg = nargv[optind++]; + return (INORDER); + } + if (!(flags & FLAG_PERMUTE)) { + /* + * If no permutation wanted, stop parsing + * at first non-option. + */ + return (-1); + } + /* do permutation */ + if (nonopt_start == -1) + nonopt_start = optind; + else if (nonopt_end != -1) { + permute_args(nonopt_start, nonopt_end, + optind, nargv); + nonopt_start = optind - + (nonopt_end - nonopt_start); + nonopt_end = -1; + } + optind++; + /* process next argument */ + goto start; + } + if (nonopt_start != -1 && nonopt_end == -1) + nonopt_end = optind; + + /* + * If we have "-" do nothing, if "--" we are done. + */ + if (place[1] != '\0' && *++place == '-' && place[1] == '\0') { + optind++; + place = EMSG; + /* + * We found an option (--), so if we skipped + * non-options, we have to permute. + */ + if (nonopt_end != -1) { + permute_args(nonopt_start, nonopt_end, + optind, nargv); + optind -= nonopt_end - nonopt_start; + } + nonopt_start = nonopt_end = -1; + return (-1); + } + } + + /* + * Check long options if: + * 1) we were passed some + * 2) the arg is not just "-" + * 3) either the arg starts with -- we are getopt_long_only() + */ + if (long_options != NULL && place != nargv[optind] && + (*place == '-' || (flags & FLAG_LONGONLY))) { + short_too = 0; + if (*place == '-') + place++; /* --foo long option */ + else if (*place != ':' && strchr(options, *place) != NULL) + short_too = 1; /* could be short option too */ + + optchar = parse_long_options(nargv, options, long_options, + idx, short_too); + if (optchar != -1) { + place = EMSG; + return (optchar); + } + } + + if ((optchar = (int)*place++) == (int)':' || + optchar == (int)'-' && *place != '\0' || + (oli = strchr(options, optchar)) == NULL) { + /* + * If the user specified "-" and '-' isn't listed in + * options, return -1 (non-option) as per POSIX. + * Otherwise, it is an unknown option character (or ':'). + */ + if (optchar == (int)'-' && *place == '\0') + return (-1); + if (!*place) + ++optind; + if (PRINT_ERROR) + warnx(illoptchar, optchar); + optopt = optchar; + return (BADCH); + } + if (long_options != NULL && optchar == 'W' && oli[1] == ';') { + /* -W long-option */ + if (*place) /* no space */ + /* NOTHING */; + else if (++optind >= nargc) { /* no arg */ + place = EMSG; + if (PRINT_ERROR) + warnx(recargchar, optchar); + optopt = optchar; + return (BADARG); + } else /* white space */ + place = nargv[optind]; + optchar = parse_long_options(nargv, options, long_options, + idx, 0); + place = EMSG; + return (optchar); + } + if (*++oli != ':') { /* doesn't take argument */ + if (!*place) + ++optind; + } else { /* takes (optional) argument */ + optarg = NULL; + if (*place) /* no white space */ + optarg = place; + /* XXX: disable test for :: if PC? (GNU doesn't) */ + else if (oli[1] != ':') { /* arg not optional */ + if (++optind >= nargc) { /* no arg */ + place = EMSG; + if (PRINT_ERROR) + warnx(recargchar, optchar); + optopt = optchar; + return (BADARG); + } else + optarg = nargv[optind]; + } else if (!(flags & FLAG_PERMUTE)) { + /* + * If permutation is disabled, we can accept an + * optional arg separated by whitespace so long + * as it does not start with a dash (-). + */ + if (optind + 1 < nargc && *nargv[optind + 1] != '-') + optarg = nargv[++optind]; + } + place = EMSG; + ++optind; + } + /* dump back option letter */ + return (optchar); + } + + #ifdef REPLACE_GETOPT + /* + * getopt -- + * Parse argc/argv argument vector. + * + * [eventually this will replace the BSD getopt] + */ + int + getopt(int nargc, char * const *nargv, const char *options) + { + + /* + * We don't pass FLAG_PERMUTE to getopt_internal() since + * the BSD getopt(3) (unlike GNU) has never done this. + * + * Furthermore, since many privileged programs call getopt() + * before dropping privileges it makes sense to keep things + * as simple (and bug-free) as possible. + */ + return (getopt_internal(nargc, nargv, options, NULL, NULL, 0)); + } + #endif /* REPLACE_GETOPT */ + + /* + * getopt_long -- + * Parse argc/argv argument vector. + */ + int + getopt_long(int nargc, char * const *nargv, const char *options, + const struct option *long_options, int *idx) + { + + return (getopt_internal(nargc, nargv, options, long_options, idx, + FLAG_PERMUTE)); + } + + /* + * getopt_long_only -- + * Parse argc/argv argument vector. + */ + int + getopt_long_only(int nargc, char * const *nargv, const char *options, + const struct option *long_options, int *idx) + { + + return (getopt_internal(nargc, nargv, options, long_options, idx, + FLAG_PERMUTE|FLAG_LONGONLY)); + } + +#endif // defined _MSC_VER || defined __MINGW32__
\ No newline at end of file diff --git a/mesalib/src/glsl/glcpp/glcpp.c b/mesalib/src/glsl/glcpp/glcpp.c index 8d1ced571..419b1fc25 100644 --- a/mesalib/src/glsl/glcpp/glcpp.c +++ b/mesalib/src/glsl/glcpp/glcpp.c @@ -30,6 +30,14 @@ #include "glcpp.h" #include "main/mtypes.h" +#ifdef _MSC_VER +#include <io.h> +#define STDIN_FILENO 0 +#define read _read +#define open _open +#define close _close +#endif + extern int yydebug; /* Read from fd until EOF and return a string of everything read. diff --git a/mesalib/src/glsl/glsl_parser_extras.h b/mesalib/src/glsl/glsl_parser_extras.h index ddc2138b7..f300ece4b 100644 --- a/mesalib/src/glsl/glsl_parser_extras.h +++ b/mesalib/src/glsl/glsl_parser_extras.h @@ -59,6 +59,10 @@ struct _mesa_glsl_parse_state { /* If the user *does* call delete, that's OK, we will just * talloc_free in that case. */ + static void operator delete(void *mem, void *ctx) + { + talloc_free(mem); + } static void operator delete(void *mem) { talloc_free(mem); diff --git a/mesalib/src/glsl/glsl_symbol_table.cpp b/mesalib/src/glsl/glsl_symbol_table.cpp index e9bf89b95..9537d86c9 100644 --- a/mesalib/src/glsl/glsl_symbol_table.cpp +++ b/mesalib/src/glsl/glsl_symbol_table.cpp @@ -38,6 +38,11 @@ public: /* If the user *does* call delete, that's OK, we will just * talloc_free in that case. Here, C++ will have already called the * destructor so tell talloc not to do that again. */ + static void operator delete(void *table, void *ctx) + { + talloc_set_destructor(table, NULL); + talloc_free(table); + } static void operator delete(void *table) { talloc_set_destructor(table, NULL); diff --git a/mesalib/src/glsl/glsl_symbol_table.h b/mesalib/src/glsl/glsl_symbol_table.h index f26de5243..02c45b2e0 100644 --- a/mesalib/src/glsl/glsl_symbol_table.h +++ b/mesalib/src/glsl/glsl_symbol_table.h @@ -70,6 +70,11 @@ public: /* If the user *does* call delete, that's OK, we will just * talloc_free in that case. Here, C++ will have already called the * destructor so tell talloc not to do that again. */ + static void operator delete(void *table, void *ctx) + { + talloc_set_destructor(table, NULL); + talloc_free(table); + } static void operator delete(void *table) { talloc_set_destructor(table, NULL); diff --git a/mesalib/src/glsl/list.h b/mesalib/src/glsl/list.h index 3197b03cf..9c39855ad 100644 --- a/mesalib/src/glsl/list.h +++ b/mesalib/src/glsl/list.h @@ -94,6 +94,10 @@ struct exec_node { /* If the user *does* call delete, that's OK, we will just * talloc_free in that case. */ + static void operator delete(void *node, void *ctx) + { + talloc_free(node); + } static void operator delete(void *node) { talloc_free(node); @@ -303,6 +307,10 @@ struct exec_list { /* If the user *does* call delete, that's OK, we will just * talloc_free in that case. */ + static void operator delete(void *node, void *ctx) + { + talloc_free(node); + } static void operator delete(void *node) { talloc_free(node); diff --git a/mesalib/src/glsl/main.cpp b/mesalib/src/glsl/main.cpp index 94c14a58a..b51b2405c 100644 --- a/mesalib/src/glsl/main.cpp +++ b/mesalib/src/glsl/main.cpp @@ -22,7 +22,19 @@ */ #include <cstdlib> #include <cstdio> +#include <io.h> + +#ifdef _MSC_VER +#define __STDC__ 1 #include <getopt.h> +typedef size_t ssize_t; +#define open _open +#define read _read +#define fstat _fstat +#define stat _stat +#define close _close +#define O_RDONLY _O_RDONLY +#endif #include <sys/types.h> #include <sys/stat.h> diff --git a/mesalib/src/mapi/glapi/gen/gen.bat b/mesalib/src/mapi/glapi/gen/gen.bat new file mode 100644 index 000000000..cdd0a76ba --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/gen.bat @@ -0,0 +1,20 @@ +echo on +glx_server_table.py -f gl_and_glX_API.xml > indirect_table.c +glx_proto_size.py -m size_h --only-set -h _INDIRECT_SIZE_H_ > indirect_size.h +glx_proto_size.py -m size_c --only-set > indirect_size.c +glx_proto_size.py -m size_h --only-get -h _INDIRECT_SIZE_GET_H_ > indirect_size_get.h +glx_proto_size.py -m size_c --only-get > indirect_size_get.c +glx_proto_size.py -m reqsize_c > indirect_reqsize.c +glx_proto_size.py -m reqsize_h --only-get -h _INDIRECT_SIZE_GET_H_ > indirect_reqsize.h +glx_proto_recv.py -m dispatch_c > indirect_dispatch.c +glx_proto_recv.py -m dispatch_c -s > indirect_dispatch_swap.c +glx_proto_recv.py -m dispatch_h -f gl_and_glX_API.xml -s > indirect_dispatch.h +gl_table.py > glapitable.h +gl_table.py -m remap_table > dispatch.h +gl_offsets.py > glapioffsets.h +gl_apitemp.py > glapitemp.h +gl_procs.py > glprocs.h + +glX_proto_send.py -m proto > indirect.c +glX_proto_send.py -m init_h > indirect.h +glX_proto_send.py -m init_c > indirect_init.c diff --git a/mesalib/src/mapi/glapi/gen/gl_API.xml b/mesalib/src/mapi/glapi/gen/gl_API.xml index 5cf216c91..123565458 100644 --- a/mesalib/src/mapi/glapi/gen/gl_API.xml +++ b/mesalib/src/mapi/glapi/gen/gl_API.xml @@ -183,18 +183,18 @@ <size name="Get" mode="get"/> </enum> <enum name="LIGHT_MODEL_LOCAL_VIEWER" count="1" value="0x0B51"> - <size name="LightModelfv"/> - <size name="LightModeliv"/> + <size name="LightModelfv" mode="get"/> + <size name="LightModeliv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="LIGHT_MODEL_TWO_SIDE" count="1" value="0x0B52"> - <size name="LightModelfv"/> - <size name="LightModeliv"/> + <size name="LightModelfv" mode="get"/> + <size name="LightModeliv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="LIGHT_MODEL_AMBIENT" count="4" value="0x0B53"> - <size name="LightModelfv"/> - <size name="LightModeliv"/> + <size name="LightModelfv" mode="get"/> + <size name="LightModeliv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="SHADE_MODEL" count="1" value="0x0B54"> @@ -213,33 +213,33 @@ <size name="Get" mode="get"/> </enum> <enum name="FOG_INDEX" count="1" value="0x0B61"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="FOG_DENSITY" count="1" value="0x0B62"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="FOG_START" count="1" value="0x0B63"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="FOG_END" count="1" value="0x0B64"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="FOG_MODE" count="1" value="0x0B65"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="FOG_COLOR" count="4" value="0x0B66"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="DEPTH_RANGE" count="2" value="0x0B70"> @@ -531,8 +531,8 @@ <size name="Get" mode="get"/> </enum> <enum name="ALPHA_SCALE" count="1" value="0x0D1C"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> <size name="Get" mode="get"/> @@ -625,93 +625,93 @@ <size name="Get" mode="get"/> </enum> <enum name="MAP1_COLOR_4" count="4" value="0x0D90"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_INDEX" count="1" value="0x0D91"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_NORMAL" count="3" value="0x0D92"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_TEXTURE_COORD_1" count="1" value="0x0D93"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_TEXTURE_COORD_2" count="2" value="0x0D94"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_TEXTURE_COORD_3" count="3" value="0x0D95"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_TEXTURE_COORD_4" count="4" value="0x0D96"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_VERTEX_3" count="3" value="0x0D97"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_VERTEX_4" count="4" value="0x0D98"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_COLOR_4" count="4" value="0x0DB0"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_INDEX" count="1" value="0x0DB1"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_NORMAL" count="3" value="0x0DB2"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_TEXTURE_COORD_1" count="1" value="0x0DB3"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_TEXTURE_COORD_2" count="2" value="0x0DB4"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_TEXTURE_COORD_3" count="3" value="0x0DB5"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_TEXTURE_COORD_4" count="4" value="0x0DB6"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_VERTEX_3" count="3" value="0x0DB7"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_VERTEX_4" count="4" value="0x0DB8"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_GRID_DOMAIN" count="2" value="0x0DD0"> @@ -754,8 +754,8 @@ <size name="GetTexLevelParameteriv" mode="get"/> </enum> <enum name="TEXTURE_BORDER_COLOR" count="4" value="0x1004"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -763,111 +763,111 @@ <enum name="FASTEST" value="0x1101"/> <enum name="NICEST" value="0x1102"/> <enum name="AMBIENT" count="4" value="0x1200"> - <size name="Materialfv"/> - <size name="Materialiv"/> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="DIFFUSE" count="4" value="0x1201"> - <size name="Materialfv"/> - <size name="Materialiv"/> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="SPECULAR" count="4" value="0x1202"> - <size name="Materialfv"/> - <size name="Materialiv"/> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="POSITION" count="4" value="0x1203"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="SPOT_DIRECTION" count="3" value="0x1204"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="SPOT_EXPONENT" count="1" value="0x1205"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="SPOT_CUTOFF" count="1" value="0x1206"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="CONSTANT_ATTENUATION" count="1" value="0x1207"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="LINEAR_ATTENUATION" count="1" value="0x1208"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="QUADRATIC_ATTENUATION" count="1" value="0x1209"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="COMPILE" value="0x1300"/> <enum name="COMPILE_AND_EXECUTE" value="0x1301"/> <enum name="BYTE" count="1" value="0x1400"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="UNSIGNED_BYTE" count="1" value="0x1401"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="SHORT" count="2" value="0x1402"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="UNSIGNED_SHORT" count="2" value="0x1403"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="INT" count="4" value="0x1404"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="UNSIGNED_INT" count="4" value="0x1405"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="FLOAT" count="4" value="0x1406"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="2_BYTES" count="2" value="0x1407"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="3_BYTES" count="3" value="0x1408"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="4_BYTES" count="4" value="0x1409"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="HALF_FLOAT" count="2" value="0x140B"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="CLEAR" value="0x1500"/> <enum name="AND" value="0x1501"/> @@ -886,26 +886,26 @@ <enum name="NAND" value="0x150E"/> <enum name="SET" value="0x150F"/> <enum name="EMISSION" count="4" value="0x1600"> - <size name="Materialfv"/> - <size name="Materialiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> </enum> <enum name="SHININESS" count="1" value="0x1601"> - <size name="Materialfv"/> - <size name="Materialiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> </enum> <enum name="AMBIENT_AND_DIFFUSE" count="4" value="0x1602"> - <size name="Materialfv"/> - <size name="Materialiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> </enum> <enum name="COLOR_INDEXES" count="3" value="0x1603"> - <size name="Materialfv"/> - <size name="Materialiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> </enum> @@ -950,14 +950,14 @@ <enum name="MODULATE" value="0x2100"/> <enum name="DECAL" value="0x2101"/> <enum name="TEXTURE_ENV_MODE" count="1" value="0x2200"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="TEXTURE_ENV_COLOR" count="4" value="0x2201"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> @@ -966,25 +966,25 @@ <enum name="OBJECT_LINEAR" value="0x2401"/> <enum name="SPHERE_MAP" value="0x2402"/> <enum name="TEXTURE_GEN_MODE" count="1" value="0x2500"> - <size name="TexGendv"/> - <size name="TexGenfv"/> - <size name="TexGeniv"/> + <size name="TexGendv" mode="get"/> + <size name="TexGenfv" mode="get"/> + <size name="TexGeniv" mode="get"/> <size name="GetTexGendv" mode="get"/> <size name="GetTexGenfv" mode="get"/> <size name="GetTexGeniv" mode="get"/> </enum> <enum name="OBJECT_PLANE" count="4" value="0x2501"> - <size name="TexGendv"/> - <size name="TexGenfv"/> - <size name="TexGeniv"/> + <size name="TexGendv" mode="get"/> + <size name="TexGenfv" mode="get"/> + <size name="TexGeniv" mode="get"/> <size name="GetTexGendv" mode="get"/> <size name="GetTexGenfv" mode="get"/> <size name="GetTexGeniv" mode="get"/> </enum> <enum name="EYE_PLANE" count="4" value="0x2502"> - <size name="TexGendv"/> - <size name="TexGenfv"/> - <size name="TexGeniv"/> + <size name="TexGendv" mode="get"/> + <size name="TexGenfv" mode="get"/> + <size name="TexGeniv" mode="get"/> <size name="GetTexGendv" mode="get"/> <size name="GetTexGenfv" mode="get"/> <size name="GetTexGeniv" mode="get"/> @@ -996,26 +996,26 @@ <enum name="NEAREST_MIPMAP_LINEAR" value="0x2702"/> <enum name="LINEAR_MIPMAP_LINEAR" value="0x2703"/> <enum name="TEXTURE_MAG_FILTER" count="1" value="0x2800"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_MIN_FILTER" count="1" value="0x2801"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_WRAP_S" count="1" value="0x2802"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_WRAP_T" count="1" value="0x2803"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -3039,8 +3039,8 @@ <enum name="PROXY_TEXTURE_1D" value="0x8063"/> <enum name="PROXY_TEXTURE_2D" value="0x8064"/> <enum name="TEXTURE_PRIORITY" count="1" value="0x8066"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -3380,8 +3380,8 @@ <size name="GetTexLevelParameteriv" mode="get"/> </enum> <enum name="TEXTURE_WRAP_R" count="1" value="0x8072"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -3405,32 +3405,32 @@ </enum> <enum name="CLAMP_TO_EDGE" value="0x812F"/> <enum name="TEXTURE_MIN_LOD" count="1" value="0x813A"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_MAX_LOD" count="1" value="0x813B"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_BASE_LEVEL" count="1" value="0x813C"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_MAX_LEVEL" count="1" value="0x813D"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="LIGHT_MODEL_COLOR_CONTROL" count="1" value="0x81F8"> - <size name="LightModelfv"/> - <size name="LightModeliv"/> + <size name="LightModelfv" mode="get"/> + <size name="LightModeliv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="SINGLE_COLOR" value="0x81F9"/> @@ -3482,26 +3482,26 @@ </enum> <enum name="CONVOLUTION_BORDER_MODE" count="1" value="0x8013"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> <enum name="CONVOLUTION_BORDER_COLOR" count="4" value="0x8154"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> <enum name="CONVOLUTION_FILTER_SCALE" count="4" value="0x8014"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> <enum name="CONVOLUTION_FILTER_BIAS" count="4" value="0x8015"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> @@ -3649,14 +3649,14 @@ <enum name="PROXY_POST_COLOR_MATRIX_COLOR_TABLE" value="0x80D5"/> <enum name="COLOR_TABLE_SCALE" count="4" value="0x80D6"> - <size name="ColorTableParameterfv"/> - <size name="ColorTableParameteriv"/> + <size name="ColorTableParameterfv" mode="get"/> + <size name="ColorTableParameteriv" mode="get"/> <size name="GetColorTableParameterfv" mode="get"/> <size name="GetColorTableParameteriv" mode="get"/> </enum> <enum name="COLOR_TABLE_BIAS" count="4" value="0x80D7"> - <size name="ColorTableParameterfv"/> - <size name="ColorTableParameteriv"/> + <size name="ColorTableParameterfv" mode="get"/> + <size name="ColorTableParameteriv" mode="get"/> <size name="GetColorTableParameterfv" mode="get"/> <size name="GetColorTableParameteriv" mode="get"/> </enum> @@ -4133,92 +4133,92 @@ <enum name="CLAMP_TO_BORDER" value="0x812D"/> <enum name="COMBINE" value="0x8570"/> <enum name="COMBINE_RGB" count="1" value="0x8571"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="COMBINE_ALPHA" count="1" value="0x8572"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE0_RGB" count="1" value="0x8580"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE1_RGB" count="1" value="0x8581"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE2_RGB" count="1" value="0x8582"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE0_ALPHA" count="1" value="0x8588"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE1_ALPHA" count="1" value="0x8589"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE2_ALPHA" count="1" value="0x858A"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND0_RGB" count="1" value="0x8590"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND1_RGB" count="1" value="0x8591"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND2_RGB" count="1" value="0x8592"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND0_ALPHA" count="1" value="0x8598"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND1_ALPHA" count="1" value="0x8599"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND2_ALPHA" count="1" value="0x859A"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="RGB_SCALE" count="1" value="0x8573"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> @@ -4534,24 +4534,24 @@ <size name="Get" mode="get"/> </enum> <enum name="POINT_SIZE_MIN" count="1" value="0x8126"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="POINT_SIZE_MAX" count="1" value="0x8127"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE" count="1" value="0x8128"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION" count="3" value="0x8129"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="GENERATE_MIPMAP" count="1" value="0x8191"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -4600,10 +4600,10 @@ </enum> <enum name="TEXTURE_FILTER_CONTROL" value="0x8500"/> <enum name="TEXTURE_LOD_BIAS" count="1" value="0x8501"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> @@ -4616,20 +4616,20 @@ <size name="GetTexLevelParameteriv" mode="get"/> </enum> <enum name="DEPTH_TEXTURE_MODE" count="1" value="0x884B"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_COMPARE_MODE" count="1" value="0x884C"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_COMPARE_FUNC" count="1" value="0x884D"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -5121,8 +5121,8 @@ <enum name="SHADING_LANGUAGE_VERSION" value="0x8B8C"/> <enum name="CURRENT_PROGRAM" value="0x8B8D"/> <enum name="POINT_SPRITE_COORD_ORIGIN" count="1" value="0x8CA0"> - <size name="PointParameterfvEXT"/> - <size name="PointParameterivNV"/> + <size name="PointParameterfvEXT" mode="get"/> + <size name="PointParameterivNV" mode="get"/> </enum> <enum name="LOWER_LEFT" value="0x8CA1"/> <enum name="UPPER_LEFT" value="0x8CA2"/> @@ -6226,16 +6226,16 @@ <category name="GL_ARB_point_parameters" number="14"> <enum name="POINT_SIZE_MIN_ARB" count="1" value="0x8126"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_ARB" count="1" value="0x8127"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_ARB" count="1" value="0x8128"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_ARB" count="3" value="0x8129"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <function name="PointParameterfARB" alias="PointParameterfEXT"> @@ -6541,8 +6541,8 @@ <size name="GetTexLevelParameteriv" mode="get"/> </enum> <enum name="DEPTH_TEXTURE_MODE_ARB" count="1" value="0x884B"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -6550,14 +6550,14 @@ <category name="GL_ARB_shadow" number="23"> <enum name="TEXTURE_COMPARE_MODE_ARB" count="1" value="0x884C"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_COMPARE_FUNC_ARB" count="1" value="0x884D"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -6566,8 +6566,8 @@ <category name="GL_ARB_shadow_ambient" number="24"> <enum name="TEXTURE_COMPARE_FAIL_VALUE_ARB" count="1" value="0x80BF"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -7865,8 +7865,8 @@ <size name="Get" mode="get"/> </enum> <enum name="COORD_REPLACE_ARB" count="1" value="0x8862"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> @@ -8313,20 +8313,20 @@ <category name="GL_EXT_convolution" number="12"> <enum name="CONVOLUTION_BORDER_MODE_EXT" count="1" value="0x8013"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> <enum name="CONVOLUTION_FILTER_SCALE_EXT" count="4" value="0x8014"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> <enum name="CONVOLUTION_FILTER_BIAS_EXT" count="4" value="0x8015"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> @@ -8836,8 +8836,8 @@ <category name="GL_SGIS_generate_mipmap" number="32"> <enum name="GENERATE_MIPMAP_SGIS" count="1" value="0x8191"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -8847,26 +8847,26 @@ <category name="GL_SGIX_clipmap" number="33"> <enum name="LINEAR_CLIPMAP_LINEAR_SGIX" value="0x8170"/> <enum name="TEXTURE_CLIPMAP_CENTER_SGIX" count="2" value="0x8171"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_CLIPMAP_FRAME_SGIX" count="1" value="0x8172"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_CLIPMAP_OFFSET_SGIX" count="2" value="0x8173"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX" count="3" value="0x8174"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -8881,14 +8881,14 @@ <category name="GL_SGIX_shadow" number="34"> <enum name="TEXTURE_COMPARE_SGIX" count="1" value="0x819A"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_COMPARE_OPERATOR_SGIX" count="1" value="0x819B"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -8965,16 +8965,16 @@ <category name="GL_EXT_point_parameters" number="54"> <enum name="POINT_SIZE_MIN_EXT" count="1" value="0x8126"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_EXT" count="1" value="0x8127"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1" value="0x8128"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <function name="PointParameterfEXT" offset="assign"> @@ -9025,14 +9025,14 @@ <category name="GL_SGIX_texture_scale_bias" number="56"> <enum name="POST_TEXTURE_FILTER_BIAS_SGIX" count="4" value="0x8179"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="POST_TEXTURE_FILTER_SCALE_SGIX" count="4" value="0x817A"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -9092,8 +9092,8 @@ <category name="GL_SGIX_fog_offset" number="65"> <enum name="FOG_OFFSET_SGIX" value="0x8198"/> <enum name="FOG_OFFSET_VALUE_SGIX" count="1" value="0x8199"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> </enum> </category> @@ -9140,8 +9140,8 @@ <enum name="CONSTANT_BORDER_HP" value="0x8151"/> <enum name="REPLICATE_BORDER_HP" value="0x8153"/> <enum name="CONVOLUTION_BORDER_COLOR_HP" count="4" value="0x8154"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> @@ -9307,20 +9307,20 @@ <category name="GL_SGIX_texture_lod_bias" number="84"> <enum name="TEXTURE_LOD_BIAS_S_SGIX" count="1" value="0x818E"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_LOD_BIAS_T_SGIX" count="1" value="0x818F"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_LOD_BIAS_R_SGIX" count="1" value="0x8190"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -9335,8 +9335,8 @@ <category name="GL_SGIX_shadow_ambient" number="90"> <enum name="SHADOW_AMBIENT_SGIX" count="1" value="0x80BF"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -9680,8 +9680,8 @@ <category name="GL_EXT_separate_specular_color" number="144"> <enum name="LIGHT_MODEL_COLOR_CONTROL_EXT" count="1" value="0x81F8"> - <size name="LightModelfv"/> - <size name="LightModeliv"/> + <size name="LightModelfv" mode="get"/> + <size name="LightModeliv" mode="get"/> </enum> <enum name="SINGLE_COLOR_EXT" value="0x81F9"/> <enum name="SEPARATE_SPECULAR_COLOR_EXT" value="0x81FA"/> @@ -10454,8 +10454,8 @@ <category name="GL_EXT_texture_lod_bias" number="186"> <enum name="TEXTURE_LOD_BIAS_EXT" count="1" value="0x8501"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -10463,8 +10463,8 @@ <category name="GL_EXT_texture_filter_anisotropic" number="187"> <enum name="TEXTURE_MAX_ANISOTROPY_EXT" count="1" value="0x84FE"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -10622,8 +10622,8 @@ <category name="GL_NV_fog_distance" number="192"> <enum name="FOG_DISTANCE_MODE_NV" count="1" value="0x855A"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="EYE_RADIAL_NV" value="0x855B"/> @@ -10637,26 +10637,26 @@ <category name="GL_NV_texture_env_combine4" number="195"> <enum name="COMBINE4" value="0x8503"/> <enum name="SOURCE3_RGB_NV" count="1" value="0x8583"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE3_ALPHA_NV" count="1" value="0x858B"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND3_RGB_NV" count="1" value="0x8593"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND3_ALPHA_NV" count="1" value="0x859B"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> @@ -11677,20 +11677,20 @@ <category name="GL_SGIX_texture_coordinate_clamp" number="235"> <enum name="TEXTURE_MAX_CLAMP_S_SGIX" count="1" value="0x8369"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_MAX_CLAMP_T_SGIX" count="1" value="0x836A"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_MAX_CLAMP_R_SGIX" count="1" value="0x836B"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -11729,8 +11729,8 @@ <enum name="DU8DV8_ATI" value="0x877A"/> <enum name="BUMP_ENVMAP_ATI" value="0x877B"/> <enum name="BUMP_TARGET_ATI" count="1" value="0x877C"> - <size name="TexEnviv"/> - <size name="TexEnvfv"/> + <size name="TexEnviv" mode="get"/> + <size name="TexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> </enum> @@ -11923,30 +11923,30 @@ added for this extension. --> <enum name="POINT_SIZE_MIN_EXT" count="1" value="0x8126"> - <size name="PointParameterivNV"/> + <size name="PointParameterivNV" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_EXT" count="1" value="0x8127"> - <size name="PointParameterivNV"/> + <size name="PointParameterivNV" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1" value="0x8128"> - <size name="PointParameterivNV"/> + <size name="PointParameterivNV" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129"> - <size name="PointParameterivNV"/> + <size name="PointParameterivNV" mode="get"/> </enum> <enum name="POINT_SPRITE_NV" count="1" value="0x8861"> <size name="Get" mode="get"/> </enum> <enum name="COORD_REPLACE_NV" count="1" value="0x8862"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="POINT_SPRITE_R_MODE_NV" count="1" value="0x8863"> - <size name="PointParameterfvEXT"/> - <size name="PointParameterivNV"/> + <size name="PointParameterfvEXT" mode="get"/> + <size name="PointParameterivNV" mode="get"/> <size name="Get" mode="get"/> </enum> @@ -12125,8 +12125,8 @@ <category name="GL_NV_texture_expand_normal" number="286"> <enum name="TEXTURE_UNSIGNED_REMAP_MODE_NV" count="1" value="0x888F"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -12280,22 +12280,22 @@ <category name="GL_APPLE_texture_range" number="367"> <enum name="TEXTURE_STORAGE_HINT_APPLE" count="1" value="0x85BC"> - <size name="TexParameteriv"/> - <size name="TexParameterfv"/> + <size name="TexParameteriv" mode="get"/> + <size name="TexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> </enum> <enum name="STORAGE_PRIVATE_APPLE" count="1" value="0x85BD"> - <size name="TexParameteriv"/> - <size name="TexParameterfv"/> + <size name="TexParameteriv" mode="get"/> + <size name="TexParameterfv" mode="get"/> </enum> <enum name="STORAGE_CACHED_APPLE" count="1" value="0x85BE"> - <size name="TexParameteriv"/> - <size name="TexParameterfv"/> + <size name="TexParameteriv" mode="get"/> + <size name="TexParameterfv" mode="get"/> </enum> <enum name="STORAGE_SHARED_APPLE" count="1" value="0x85BF"> - <size name="TexParameteriv"/> - <size name="TexParameterfv"/> + <size name="TexParameteriv" mode="get"/> + <size name="TexParameterfv" mode="get"/> </enum> <enum name="TEXTURE_RANGE_LENGTH_APPLE" count="1" value="0x85B7"> <size name="GetTexParameteriv" mode="get"/> @@ -12435,16 +12435,16 @@ <category name="GL_SGIS_point_parameters"> <enum name="POINT_SIZE_MIN_SGIS" count="1" value="0x8126"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_SGIS" count="1" value="0x8127"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_SGIS" count="1" value="0x8128"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_SGIS" count="3" value="0x8129"> - <size name="PointParameterfvEXT"/> + <size name="PointParameterfvEXT" mode="get"/> </enum> <function name="PointParameterfSGIS" alias="PointParameterfEXT" static_dispatch="false"> diff --git a/mesalib/src/mapi/glapi/glapi.h b/mesalib/src/mapi/glapi/glapi.h index a0bb07810..b404dd617 100644 --- a/mesalib/src/mapi/glapi/glapi.h +++ b/mesalib/src/mapi/glapi/glapi.h @@ -39,12 +39,9 @@ * This module is intended to be non-Mesa-specific so it can be used * with the X/DRI libGL also. */ - - #ifndef _GLAPI_H #define _GLAPI_H - /* opengl.dll does not export _glapi_* */ #if defined(_WIN32) #define _GLAPI_NO_EXPORTS @@ -77,7 +74,7 @@ #define _glapi_Context _mglapi_Context #endif -#include "glapi/glthread.h" +#include "glthread.h" typedef void (*_glapi_proc)(void); struct _glapi_table; @@ -99,8 +96,14 @@ _GLAPI_EXPORT extern const void *_glapi_Context; #else -_GLAPI_EXPORT extern struct _glapi_table *_glapi_Dispatch; -_GLAPI_EXPORT extern void *_glapi_Context; +#ifdef INSERVER +#define SERVEXTERN _declspec(dllimport) +#else +#define SERVEXTERN _declspec(dllexport) +#endif + +SERVEXTERN struct _glapi_table *_glapi_Dispatch; +SERVEXTERN void *_glapi_Context; # ifdef THREADS @@ -124,31 +127,31 @@ void _glapi_destroy_multithread(void); -_GLAPI_EXPORT void +SERVEXTERN void _glapi_check_multithread(void); -_GLAPI_EXPORT void +SERVEXTERN void _glapi_set_context(void *context); -_GLAPI_EXPORT void * +SERVEXTERN void * _glapi_get_context(void); -_GLAPI_EXPORT void +SERVEXTERN void _glapi_set_dispatch(struct _glapi_table *dispatch); -_GLAPI_EXPORT struct _glapi_table * +SERVEXTERN struct _glapi_table * _glapi_get_dispatch(void); -_GLAPI_EXPORT unsigned int +SERVEXTERN unsigned int _glapi_get_dispatch_table_size(void); -_GLAPI_EXPORT int +SERVEXTERN int _glapi_add_dispatch( const char * const * function_names, const char * parameter_signature ); @@ -171,7 +174,7 @@ _glthread_GetID(void); /* * These stubs are kept so that the old DRI drivers still load. */ -_GLAPI_EXPORT void +SERVEXTERN void _glapi_noop_enable_warnings(unsigned char enable); diff --git a/mesalib/src/mapi/glapi/glapi_getproc.c b/mesalib/src/mapi/glapi/glapi_getproc.c index dc4905b64..2eb6bbc8a 100644 --- a/mesalib/src/mapi/glapi/glapi_getproc.c +++ b/mesalib/src/mapi/glapi/glapi_getproc.c @@ -378,6 +378,7 @@ set_entry_info( struct _glapi_function * entry, const char * signature, unsigned * the parameter signature of a static function. */ +#ifndef INSERVER int _glapi_add_dispatch( const char * const * function_names, const char * parameter_signature ) @@ -487,12 +488,12 @@ _glapi_add_dispatch( const char * const * function_names, return offset; } - +#endif /** * Return offset of entrypoint for named function within dispatch table. */ -GLint +GLint _GLAPI_EXPORT _glapi_get_proc_offset(const char *funcName) { GLint offset; @@ -513,7 +514,7 @@ _glapi_get_proc_offset(const char *funcName) * in the name of static functions, try generating a new API entrypoint on * the fly with assembly language. */ -_glapi_proc +_glapi_proc _GLAPI_EXPORT _glapi_get_proc_address(const char *funcName) { _glapi_proc func; @@ -554,7 +555,7 @@ _glapi_get_proc_address(const char *funcName) * Return the name of the function at the given dispatch offset. * This is only intended for debugging. */ -const char * +const char * _GLAPI_EXPORT _glapi_get_proc_name(GLuint offset) { const char * n; @@ -589,7 +590,7 @@ _glapi_get_proc_name(GLuint offset) * Return size of dispatch table struct as number of functions (or * slots). */ -GLuint +GLuint _GLAPI_EXPORT _glapi_get_dispatch_table_size(void) { return DISPATCH_TABLE_SIZE; diff --git a/mesalib/src/mapi/glapi/glapi_nop.c b/mesalib/src/mapi/glapi/glapi_nop.c index 9b0929715..365a6e1c8 100644 --- a/mesalib/src/mapi/glapi/glapi_nop.c +++ b/mesalib/src/mapi/glapi/glapi_nop.c @@ -41,12 +41,12 @@ #include "glapi/glapi_priv.h" -void +void _GLAPI_EXPORT _glapi_noop_enable_warnings(unsigned char enable) { } -void +void _GLAPI_EXPORT _glapi_set_warning_func(_glapi_proc func) { } diff --git a/mesalib/src/mapi/glapi/glthread.c b/mesalib/src/mapi/glapi/glthread.c index 00915380f..239090ecf 100644 --- a/mesalib/src/mapi/glapi/glthread.c +++ b/mesalib/src/mapi/glapi/glthread.c @@ -1,6 +1,6 @@ #include "glapi/glapi.h" -unsigned long +unsigned long _GLAPI_EXPORT _glthread_GetID(void) { return u_thread_self(); diff --git a/mesalib/src/mesa/drivers/dri/common/utils.c b/mesalib/src/mesa/drivers/dri/common/utils.c index 0dd879abc..771cb64ca 100644 --- a/mesalib/src/mesa/drivers/dri/common/utils.c +++ b/mesalib/src/mesa/drivers/dri/common/utils.c @@ -217,7 +217,9 @@ void driInitExtensions( GLcontext * ctx, /* Map the static functions. Together with those mapped by remap * table, this should cover everything mesa core knows. */ +#ifdef _GLAPI_USE_REMAP_TABLE _mesa_map_static_functions(); +#endif return; } diff --git a/mesalib/src/mesa/drivers/dri/swrast/swrast.c b/mesalib/src/mesa/drivers/dri/swrast/swrast.c index ff53ffd0d..fcb785f4c 100644 --- a/mesalib/src/mesa/drivers/dri/swrast/swrast.c +++ b/mesalib/src/mesa/drivers/dri/swrast/swrast.c @@ -31,6 +31,11 @@ * The back-buffer is allocated by the driver and is private. */ +#ifdef _MSC_VER +#define WIN32_LEAN_AND_MEAN 1 +#include <windows.h> +#endif + #include "main/context.h" #include "main/extensions.h" #include "main/formats.h" @@ -173,7 +178,7 @@ swrastFillInModes(__DRIscreen *psp, fb_type = GL_UNSIGNED_INT_8_8_8_8_REV; break; default: - fprintf(stderr, "[%s:%u] bad depth %d\n", __func__, __LINE__, + fprintf(stderr, "[%s:%u] bad depth %d\n", __FUNCTION__, __LINE__, pixel_bits); return NULL; } @@ -184,7 +189,7 @@ swrastFillInModes(__DRIscreen *psp, back_buffer_factor, msaa_samples_array, 1, GL_TRUE); if (configs == NULL) { - fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__, + fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __FUNCTION__, __LINE__); return NULL; } @@ -722,15 +727,15 @@ dri_unbind_context(__DRIcontext * cPriv) const struct __DriverAPIRec driDriverAPI = { - .InitScreen = dri_init_screen, - .DestroyScreen = dri_destroy_screen, - .CreateContext = dri_create_context, - .DestroyContext = dri_destroy_context, - .CreateBuffer = dri_create_buffer, - .DestroyBuffer = dri_destroy_buffer, - .SwapBuffers = dri_swap_buffers, - .MakeCurrent = dri_make_current, - .UnbindContext = dri_unbind_context, + /*.InitScreen = */dri_init_screen, + /*.DestroyScreen = */dri_destroy_screen, + /*.CreateContext = */dri_create_context, + /*.DestroyContext = */dri_destroy_context, + /*.CreateBuffer = */dri_create_buffer, + /*.DestroyBuffer = */dri_destroy_buffer, + /*.SwapBuffers = */dri_swap_buffers, + /*.MakeCurrent = */dri_make_current, + /*.UnbindContext = */dri_unbind_context, }; /* This is the table of extensions that the loader will dlsym() for. */ diff --git a/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h b/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h index 6679061a9..ebef8455a 100644 --- a/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h +++ b/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h @@ -32,6 +32,13 @@ #include "main/mtypes.h" #include "drisw_util.h" +#ifdef _MSC_VER +#ifdef PUBLIC +#undef PUBLIC +#endif +#define PUBLIC __declspec(dllexport) +#endif + /** * Debugging diff --git a/mesalib/src/mesa/main/api_exec.c b/mesalib/src/mesa/main/api_exec.c index c3c710f5e..ae918bf7e 100644 --- a/mesalib/src/mesa/main/api_exec.c +++ b/mesalib/src/mesa/main/api_exec.c @@ -107,7 +107,6 @@ #if FEATURE_GL - #ifdef _GLAPI_USE_REMAP_TABLE #define need_MESA_remap_table diff --git a/mesalib/src/mesa/main/bufferobj.c b/mesalib/src/mesa/main/bufferobj.c index 4797f29b4..b21654890 100644 --- a/mesalib/src/mesa/main/bufferobj.c +++ b/mesalib/src/mesa/main/bufferobj.c @@ -194,7 +194,7 @@ buffer_object_subdata_range_good( GLcontext * ctx, GLenum target, * * Default callback for the \c dd_function_table::NewBufferObject() hook. */ -static struct gl_buffer_object * +struct gl_buffer_object * _mesa_new_buffer_object( GLcontext *ctx, GLuint name, GLenum target ) { struct gl_buffer_object *obj; @@ -212,7 +212,7 @@ _mesa_new_buffer_object( GLcontext *ctx, GLuint name, GLenum target ) * * Default callback for the \c dd_function_table::DeleteBuffer() hook. */ -static void +void _mesa_delete_buffer_object( GLcontext *ctx, struct gl_buffer_object *bufObj ) { (void) ctx; @@ -333,7 +333,7 @@ _mesa_initialize_buffer_object( struct gl_buffer_object *obj, * \return GL_TRUE for success, GL_FALSE for failure * \sa glBufferDataARB, dd_function_table::BufferData. */ -static GLboolean +GLboolean _mesa_buffer_data( GLcontext *ctx, GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage, struct gl_buffer_object * bufObj ) @@ -377,7 +377,7 @@ _mesa_buffer_data( GLcontext *ctx, GLenum target, GLsizeiptrARB size, * * \sa glBufferSubDataARB, dd_function_table::BufferSubData. */ -static void +void _mesa_buffer_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data, struct gl_buffer_object * bufObj ) @@ -410,7 +410,7 @@ _mesa_buffer_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, * * \sa glBufferGetSubDataARB, dd_function_table::GetBufferSubData. */ -static void +void _mesa_buffer_get_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data, struct gl_buffer_object * bufObj ) @@ -437,7 +437,7 @@ _mesa_buffer_get_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, * * \sa glMapBufferARB, dd_function_table::MapBuffer */ -static void * +void * _mesa_buffer_map( GLcontext *ctx, GLenum target, GLenum access, struct gl_buffer_object *bufObj ) { @@ -502,7 +502,7 @@ _mesa_buffer_flush_mapped_range( GLcontext *ctx, GLenum target, * * \sa glUnmapBufferARB, dd_function_table::UnmapBuffer */ -static GLboolean +GLboolean _mesa_buffer_unmap( GLcontext *ctx, GLenum target, struct gl_buffer_object *bufObj ) { diff --git a/mesalib/src/mesa/main/dlopen.c b/mesalib/src/mesa/main/dlopen.c index 57a33292e..62d9023a9 100644 --- a/mesalib/src/mesa/main/dlopen.c +++ b/mesalib/src/mesa/main/dlopen.c @@ -51,7 +51,7 @@ _mesa_dlopen(const char *libname, int flags) #elif defined(_GNU_SOURCE) flags = RTLD_LAZY | RTLD_GLOBAL; /* Overriding flags at this time */ return dlopen(libname, flags); -#elif defined(__MINGW32__) +#elif defined(__MINGW32__) | defined(_MSC_VER) return LoadLibraryA(libname); #else return NULL; @@ -82,7 +82,7 @@ _mesa_dlsym(void *handle, const char *fname) u.v = dlsym(handle, fname2); #elif defined(_GNU_SOURCE) u.v = dlsym(handle, fname); -#elif defined(__MINGW32__) +#elif defined(__MINGW32__) | defined(_MSC_VER) u.v = (void *) GetProcAddress(handle, fname); #else u.v = NULL; @@ -101,7 +101,7 @@ _mesa_dlclose(void *handle) (void) handle; #elif defined(_GNU_SOURCE) dlclose(handle); -#elif defined(__MINGW32__) +#elif defined(__MINGW32__) | defined(_MSC_VER) FreeLibrary(handle); #else (void) handle; diff --git a/mesalib/src/mesa/main/queryobj.c b/mesalib/src/mesa/main/queryobj.c index a907dac83..fd4ee3335 100644 --- a/mesalib/src/mesa/main/queryobj.c +++ b/mesalib/src/mesa/main/queryobj.c @@ -42,7 +42,7 @@ * \param id - the new object's ID * \return pointer to new query_object object or NULL if out of memory. */ -static struct gl_query_object * +struct gl_query_object * _mesa_new_query_object(GLcontext *ctx, GLuint id) { struct gl_query_object *q = MALLOC_STRUCT(gl_query_object); @@ -61,7 +61,7 @@ _mesa_new_query_object(GLcontext *ctx, GLuint id) * Begin a query. Software driver fallback. * Called via ctx->Driver.BeginQuery(). */ -static void +void _mesa_begin_query(GLcontext *ctx, struct gl_query_object *q) { /* no-op */ @@ -72,7 +72,7 @@ _mesa_begin_query(GLcontext *ctx, struct gl_query_object *q) * End a query. Software driver fallback. * Called via ctx->Driver.EndQuery(). */ -static void +void _mesa_end_query(GLcontext *ctx, struct gl_query_object *q) { q->Ready = GL_TRUE; @@ -83,7 +83,7 @@ _mesa_end_query(GLcontext *ctx, struct gl_query_object *q) * Wait for query to complete. Software driver fallback. * Called via ctx->Driver.WaitQuery(). */ -static void +void _mesa_wait_query(GLcontext *ctx, struct gl_query_object *q) { /* For software drivers, _mesa_end_query() should have completed the query. @@ -111,7 +111,7 @@ _mesa_check_query(GLcontext *ctx, struct gl_query_object *q) * Delete a query object. Called via ctx->Driver.DeleteQuery(). * Not removed from hash table here. */ -static void +void _mesa_delete_query(GLcontext *ctx, struct gl_query_object *q) { free(q); diff --git a/mesalib/src/mesa/main/syncobj.c b/mesalib/src/mesa/main/syncobj.c index ac948cc1e..791092d9d 100644 --- a/mesalib/src/mesa/main/syncobj.c +++ b/mesalib/src/mesa/main/syncobj.c @@ -123,7 +123,7 @@ _mesa_wait_sync(GLcontext *ctx, struct gl_sync_object *syncObj, } -void +void GLAPIENTRY _mesa_init_sync_object_functions(struct dd_function_table *driver) { driver->NewSyncObject = _mesa_new_sync_object; @@ -138,7 +138,7 @@ _mesa_init_sync_object_functions(struct dd_function_table *driver) } -void +void GLAPIENTRY _mesa_init_sync_dispatch(struct _glapi_table *disp) { SET_IsSync(disp, _mesa_IsSync); @@ -154,7 +154,7 @@ _mesa_init_sync_dispatch(struct _glapi_table *disp) /** * Allocate/init the context state related to sync objects. */ -void +void GLAPIENTRY _mesa_init_sync(GLcontext *ctx) { (void) ctx; @@ -164,7 +164,7 @@ _mesa_init_sync(GLcontext *ctx) /** * Free the context state related to sync objects. */ -void +void GLAPIENTRY _mesa_free_sync_data(GLcontext *ctx) { (void) ctx; @@ -180,7 +180,7 @@ _mesa_validate_sync(struct gl_sync_object *syncObj) } -void +void GLAPIENTRY _mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) { _glthread_LOCK_MUTEX(ctx->Shared->Mutex); @@ -189,7 +189,7 @@ _mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) } -void +void GLAPIENTRY _mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) { _glthread_LOCK_MUTEX(ctx->Shared->Mutex); diff --git a/mesalib/src/mesa/main/syncobj.h b/mesalib/src/mesa/main/syncobj.h index 82e141d40..326df650f 100644 --- a/mesalib/src/mesa/main/syncobj.h +++ b/mesalib/src/mesa/main/syncobj.h @@ -37,22 +37,22 @@ struct dd_function_table; #if FEATURE_ARB_sync -extern void +extern void GLAPIENTRY _mesa_init_sync_object_functions(struct dd_function_table *driver); -extern void +extern void GLAPIENTRY _mesa_init_sync_dispatch(struct _glapi_table *disp); -extern void +extern void GLAPIENTRY _mesa_init_sync(GLcontext *); -extern void +extern void GLAPIENTRY _mesa_free_sync_data(GLcontext *); -extern void +extern void GLAPIENTRY _mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj); -extern void +extern void GLAPIENTRY _mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj); extern GLboolean GLAPIENTRY diff --git a/mesalib/src/mesa/main/texcompress_s3tc.c b/mesalib/src/mesa/main/texcompress_s3tc.c index 45a2f9c17..b5d1bcdbd 100644 --- a/mesalib/src/mesa/main/texcompress_s3tc.c +++ b/mesalib/src/mesa/main/texcompress_s3tc.c @@ -49,7 +49,11 @@ #if defined(_WIN32) || defined(WIN32) +#ifdef _DEBUG +#define DXTN_LIBNAME "dxtn_dbg.dll" +#else #define DXTN_LIBNAME "dxtn.dll" +#endif #define RTLD_LAZY 0 #define RTLD_GLOBAL 0 #elif defined(__DJGPP__) |