diff options
Diffstat (limited to 'mesalib/src')
61 files changed, 1370 insertions, 524 deletions
diff --git a/mesalib/src/glsl/.gitignore b/mesalib/src/glsl/.gitignore index 43720f60b..d9b4adce5 100644 --- a/mesalib/src/glsl/.gitignore +++ b/mesalib/src/glsl/.gitignore @@ -1,6 +1,6 @@ -glsl_compiler -glsl_lexer.cpp -glsl_parser.cpp -glsl_parser.h -glsl_parser.output -glsl_test +glsl_compiler
+glsl_lexer.cpp
+glsl_parser.cpp
+glsl_parser.h
+glsl_parser.output
+glsl_test
diff --git a/mesalib/src/glsl/ast.h b/mesalib/src/glsl/ast.h index 6b136f518..a59ebcb9f 100644 --- a/mesalib/src/glsl/ast.h +++ b/mesalib/src/glsl/ast.h @@ -50,6 +50,10 @@ struct YYLTYPE; class ast_node { public: DECLARE_RALLOC_CXX_OPERATORS(ast_node); + static void operator delete(void *table, void *ctx) + { + ralloc_free(table); + } /** * Print an AST node in something approximating the original GLSL code diff --git a/mesalib/src/glsl/builtin_functions.cpp b/mesalib/src/glsl/builtin_functions.cpp index 26ea9231f..636a7d9f1 100644..100755 --- a/mesalib/src/glsl/builtin_functions.cpp +++ b/mesalib/src/glsl/builtin_functions.cpp @@ -607,7 +607,7 @@ private: B1(bitCount) B1(findLSB) B1(findMSB) - B1(fma) + B1(fma_mesa) B2(ldexp) B2(frexp) B1(uaddCarry) @@ -2125,7 +2125,7 @@ builtin_builder::create_builtins() IU(bitCount) IU(findLSB) IU(findMSB) - F(fma) + F(fma_mesa) add_function("ldexp", _ldexp(glsl_type::float_type, glsl_type::int_type), @@ -4084,7 +4084,7 @@ builtin_builder::_findMSB(const glsl_type *type) } ir_function_signature * -builtin_builder::_fma(const glsl_type *type) +builtin_builder::_fma_mesa(const glsl_type *type) { ir_variable *a = in_var(type, "a"); ir_variable *b = in_var(type, "b"); diff --git a/mesalib/src/glsl/doflexbison.bat b/mesalib/src/glsl/doflexbison.bat new file mode 100644 index 000000000..28cf2706b --- /dev/null +++ b/mesalib/src/glsl/doflexbison.bat @@ -0,0 +1,21 @@ +@echo off
+setlocal
+
+cd "%~dp0"
+
+set M4=..\..\..\tools\mhmake\m4.exe
+set BISON_PKGDATADIR=../../../tools/mhmake/src/bisondata
+
+set path=..\..\..\tools\mhmake;%path%
+
+..\..\..\tools\mhmake\bison.exe -v -o glsl_parser.cpp -p "_mesa_glsl_" --defines=glsl_parser.h glsl_parser.yy
+
+..\..\..\tools\mhmake\bison.exe -v -o glcpp/glcpp-parse.c -d -p "glcpp_parser_" --defines=glcpp/glcpp-parse.h glcpp/glcpp-parse.y
+
+copy "..\..\..\tools\mhmake\flex++.exe" flex.exe
+flex.exe --nounistd -oglsl_lexer.cpp glsl_lexer.ll
+flex.exe --nounistd -oglcpp/glcpp-lex.c glcpp/glcpp-lex.l
+del flex.exe
+
+endlocal
+
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/.gitignore b/mesalib/src/glsl/glcpp/.gitignore index 24a7119ca..9f7e0cc3e 100644..100755 --- a/mesalib/src/glsl/glcpp/.gitignore +++ b/mesalib/src/glsl/glcpp/.gitignore @@ -1,6 +1,6 @@ -glcpp -glcpp-lex.c -glcpp-parse.output -glcpp-parse.c -glcpp-parse.h -tests/*.out +glcpp
+glcpp-lex.c
+glcpp-parse.output
+glcpp-parse.c
+glcpp-parse.h
+tests/*.out
diff --git a/mesalib/src/glsl/glcpp/glcpp.c b/mesalib/src/glsl/glcpp/glcpp.c index 07b1500b6..0144be85b 100644 --- a/mesalib/src/glsl/glcpp/glcpp.c +++ b/mesalib/src/glsl/glcpp/glcpp.c @@ -30,6 +30,14 @@ #include "main/mtypes.h" #include "main/shaderobj.h" +#ifdef _MSC_VER +#include <io.h> +#define STDIN_FILENO 0 +#define read _read +#define open _open +#define close _close +#endif + extern int glcpp_parser_debug; void diff --git a/mesalib/src/glsl/glsl_parser.yy b/mesalib/src/glsl/glsl_parser.yy index 2d0e7be54..531ae394b 100644 --- a/mesalib/src/glsl/glsl_parser.yy +++ b/mesalib/src/glsl/glsl_parser.yy @@ -23,6 +23,7 @@ */ #include <stdio.h> #include <stdlib.h> +#include <unistd.h> #include <string.h> #include <assert.h> diff --git a/mesalib/src/glsl/glsl_parser_extras.h b/mesalib/src/glsl/glsl_parser_extras.h index 3ad205c07..0fd778dc3 100644 --- a/mesalib/src/glsl/glsl_parser_extras.h +++ b/mesalib/src/glsl/glsl_parser_extras.h @@ -72,6 +72,10 @@ struct _mesa_glsl_parse_state { void *mem_ctx); DECLARE_RALLOC_CXX_OPERATORS(_mesa_glsl_parse_state); + static void operator delete(void *mem, void *ctx) + { + ralloc_free(mem); + } /** * Generate a string representing the GLSL version currently being compiled diff --git a/mesalib/src/glsl/glsl_symbol_table.cpp b/mesalib/src/glsl/glsl_symbol_table.cpp index a05236203..d17a5e66f 100644..100755 --- a/mesalib/src/glsl/glsl_symbol_table.cpp +++ b/mesalib/src/glsl/glsl_symbol_table.cpp @@ -27,6 +27,10 @@ class symbol_table_entry { public: DECLARE_RALLOC_CXX_OPERATORS(symbol_table_entry); + static void operator delete(void *entry, void *ctx) + { + ralloc_free(entry); + } bool add_interface(const glsl_type *i, enum ir_variable_mode mode) { diff --git a/mesalib/src/glsl/glsl_symbol_table.h b/mesalib/src/glsl/glsl_symbol_table.h index f323fc305..83d7935d8 100644 --- a/mesalib/src/glsl/glsl_symbol_table.h +++ b/mesalib/src/glsl/glsl_symbol_table.h @@ -68,6 +68,11 @@ public: /* If the user *does* call delete, that's OK, we will just * ralloc_free in that case. Here, C++ will have already called the * destructor so tell ralloc not to do that again. */ + static void operator delete(void *table, void *ctx) + { + ralloc_set_destructor(table, NULL); + ralloc_free(table); + } static void operator delete(void *table) { ralloc_set_destructor(table, NULL); diff --git a/mesalib/src/glsl/ir.cpp b/mesalib/src/glsl/ir.cpp index 1a18b47f7..f8f661d5e 100644 --- a/mesalib/src/glsl/ir.cpp +++ b/mesalib/src/glsl/ir.cpp @@ -560,7 +560,7 @@ static const char *const operator_strs[] = { "ubo_load", "ldexp", "vector_extract", - "fma", + "fma_mesa", "lrp", "csel", "bfi", diff --git a/mesalib/src/glsl/ir_constant_expression.cpp b/mesalib/src/glsl/ir_constant_expression.cpp index 8afe8f776..f5cb12343 100644..100755 --- a/mesalib/src/glsl/ir_constant_expression.cpp +++ b/mesalib/src/glsl/ir_constant_expression.cpp @@ -53,13 +53,6 @@ static int isnormal(double x) } #endif -#if defined(_MSC_VER) -static double copysign(double x, double y) -{ - return _copysign(x, y); -} -#endif - static float dot(ir_constant *op0, ir_constant *op1) { diff --git a/mesalib/src/glsl/link_uniforms.cpp b/mesalib/src/glsl/link_uniforms.cpp index 29dc0b196..2ea221944 100644 --- a/mesalib/src/glsl/link_uniforms.cpp +++ b/mesalib/src/glsl/link_uniforms.cpp @@ -942,7 +942,6 @@ link_assign_uniform_locations(struct gl_shader_program *prog) for (unsigned i = 0; i < num_user_uniforms; i++) { assert(uniforms[i].storage != NULL); } - assert(parcel.values == data_end); #endif diff --git a/mesalib/src/glsl/list.h b/mesalib/src/glsl/list.h index 694b686b0..b2e249657 100644 --- a/mesalib/src/glsl/list.h +++ b/mesalib/src/glsl/list.h @@ -77,6 +77,10 @@ struct exec_node { #ifdef __cplusplus DECLARE_RALLOC_CXX_OPERATORS(exec_node) + static void operator delete(void *node, void *ctx) + { + ralloc_free(node); + } exec_node() : next(NULL), prev(NULL) { @@ -215,6 +219,10 @@ struct exec_list { #ifdef __cplusplus DECLARE_RALLOC_CXX_OPERATORS(exec_list) + static void operator delete(void *node, void *ctx) + { + ralloc_free(node); + } exec_list() { diff --git a/mesalib/src/glsl/main.cpp b/mesalib/src/glsl/main.cpp index 4ae8f0987..0d8c01f6a 100644 --- a/mesalib/src/glsl/main.cpp +++ b/mesalib/src/glsl/main.cpp @@ -20,7 +20,18 @@ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ +#include <io.h> + +#ifdef _MSC_VER +#define __STDC__ 1 #include <getopt.h> +#define open _open +#define read _read +#define fstat _fstat +#define stat _stat +#define close _close +#define O_RDONLY _O_RDONLY +#endif /** @file main.cpp * diff --git a/mesalib/src/loader/Android.mk b/mesalib/src/loader/Android.mk index 6890af473..6890af473 100644..100755 --- a/mesalib/src/loader/Android.mk +++ b/mesalib/src/loader/Android.mk diff --git a/mesalib/src/loader/Makefile.am b/mesalib/src/loader/Makefile.am index bddf7ac35..bddf7ac35 100644..100755 --- a/mesalib/src/loader/Makefile.am +++ b/mesalib/src/loader/Makefile.am diff --git a/mesalib/src/loader/SConscript b/mesalib/src/loader/SConscript index 359fc1850..359fc1850 100644..100755 --- a/mesalib/src/loader/SConscript +++ b/mesalib/src/loader/SConscript diff --git a/mesalib/src/mapi/glapi/gen/.gitignore b/mesalib/src/mapi/glapi/gen/.gitignore new file mode 100644 index 000000000..343198fd0 --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/.gitignore @@ -0,0 +1,18 @@ +dispatch.h +enums.c +indirect.c +indirect.h +indirect_dispatch.c +indirect_dispatch.h +indirect_dispatch_swap.c +indirect_init.c +indirect_reqsize.c +indirect_reqsize.h +indirect_size.c +indirect_size.h +indirect_size_get.c +indirect_size_get.h +indirect_table.c +mapi_abi.py +remap_helper.h +glfunctions.h diff --git a/mesalib/src/mapi/glapi/gen/GL3x.xml b/mesalib/src/mapi/glapi/gen/GL3x.xml index 5078f7b6d..11c5a186c 100644 --- a/mesalib/src/mapi/glapi/gen/GL3x.xml +++ b/mesalib/src/mapi/glapi/gen/GL3x.xml @@ -30,8 +30,12 @@ <enum name="RGB16F" value="0x881B"/> <enum name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD"/> <enum name="MAX_ARRAY_TEXTURE_LAYERS" value="0x88FF"/> - <enum name="MIN_PROGRAM_TEXEL_OFFSET" value="0x8904"/> - <enum name="MAX_PROGRAM_TEXEL_OFFSET" value="0x8905"/> + <enum name="MIN_PROGRAM_TEXEL_OFFSET" value="0x8904"> + <size name="Get" mode="get"/> + </enum> + <enum name="MAX_PROGRAM_TEXEL_OFFSET" value="0x8905"> + <size name="Get" mode="get"/> + </enum> <enum name="CLAMP_VERTEX_COLOR" value="0x891A"/> <enum name="CLAMP_FRAGMENT_COLOR" value="0x891B"/> <enum name="CLAMP_READ_COLOR" value="0x891C"/> diff --git a/mesalib/src/mapi/glapi/gen/gen.bat b/mesalib/src/mapi/glapi/gen/gen.bat new file mode 100644 index 000000000..aec698a80 --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/gen.bat @@ -0,0 +1,26 @@ +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 -f gl_and_es_API.xml > glapitable.h +gl_gentable.py -f gl_and_es_API.xml > glapi_gentable.c +gl_table.py -f gl_and_es_API.xml -m remap_table > dispatch.h +rem gl_offsets.py > glapioffsets.h +gl_apitemp.py -f gl_and_es_API.xml > glapitemp.h +gl_procs.py -f gl_and_es_API.xml > 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 + +gl_enums.py -f gl_and_es_API.xml > enums.c +remap_helper.py -f gl_and_es_API.xml > remap_helper.h +copy ..\..\mapi_abi.py +mapi_abi.py --printer glapi --mode lib gl_and_es_API.xml > glapi_mapi_tmp.h diff --git a/mesalib/src/mapi/glapi/gen/gen.sh b/mesalib/src/mapi/glapi/gen/gen.sh new file mode 100755 index 000000000..0b72cdf62 --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/gen.sh @@ -0,0 +1,27 @@ +./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 -f gl_and_es_API.xml > glapitable.h +./gl_gentable.py -f gl_and_es_API.xml > glapi_gentable.c +./gl_table.py -f gl_and_es_API.xml -m remap_table > dispatch.h +./gl_functions.py -f gl_and_es_API.xml > glfunctions.h +# ./gl_offsets.py > glapioffsets.h +./gl_apitemp.py -f gl_and_es_API.xml > glapitemp.h +./gl_procs.py -f gl_and_es_API.xml > 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 + +./gl_enums.py -f gl_and_es_API.xml > enums.c +./remap_helper.py -f gl_and_es_API.xml > remap_helper.h +cp ../../mapi_abi.py . +./mapi_abi.py --printer glapi --mode lib gl_and_es_API.xml > glapi_mapi_tmp.h + diff --git a/mesalib/src/mapi/glapi/gen/glX_API.xml b/mesalib/src/mapi/glapi/gen/glX_API.xml index 926d8791b..62ad9ebbd 100644 --- a/mesalib/src/mapi/glapi/gen/glX_API.xml +++ b/mesalib/src/mapi/glapi/gen/glX_API.xml @@ -217,18 +217,4 @@ </function> </category> -<category name="GLX_ARB_create_context" number="56" window_system="glX"> - <function name="SetClientInfoARB"> - <glx sop="33"/> - </function> - - <function name="CreateContextAttribsARB"> - <glx sop="34"/> - </function> - - <function name="SetClientInfo2ARB"> - <glx sop="35"/> - </function> -</category> - </OpenGLAPI> diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py index d076409c2..086fc97d7 100644..100755 --- a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py +++ b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py @@ -78,6 +78,11 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto): def printRealHeader(self): + print '#ifdef HAVE_DIX_CONFIG_H' + print '#include <dix-config.h>' + print '#endif' + print '#include "glheader.h"' + print '' print '#include <X11/Xmd.h>' print '#include <GL/gl.h>' print '#include <GL/glxproto.h>' @@ -277,7 +282,10 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto): if param.is_image(): offset = f.offset_of( param.name ) - print '%s %s const %s = (%s) (%s(pc + %s));' % (indent, type_string, param.name, type_string, cond, offset) + if cond: + print '%s %s const %s = (%s) (%s(pc + %s));' % (indent, type_string, param.name, type_string, cond, offset) + else: + print '%s %s const %s = (%s) (pc + %s);' % (indent, type_string, param.name, type_string, offset) if param.depth: print '%s __GLXpixel3DHeader * const hdr = (__GLXpixel3DHeader *)(pc);' % (indent) @@ -364,8 +372,9 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto): else: for param in f.parameterIterateGlxSend(): if param.count_parameter_list: - print '%s %s = (%s) (pc + %s);' % (indent, param.name, param.type_string(), param.offset) - need_blank = 1 + if param.size() != 1 or self.do_swap: + print '%s %s = (%s) (pc + %s);' % (indent, param.name, param.type_string(), param.offset) + need_blank = 1 if need_blank: diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_send.py b/mesalib/src/mapi/glapi/gen/glX_proto_send.py index a98f63e99..a98f63e99 100644..100755 --- a/mesalib/src/mapi/glapi/gen/glX_proto_send.py +++ b/mesalib/src/mapi/glapi/gen/glX_proto_send.py diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_size.py b/mesalib/src/mapi/glapi/gen/glX_proto_size.py index fdb355d4d..d4cc6e365 100644..100755 --- a/mesalib/src/mapi/glapi/gen/glX_proto_size.py +++ b/mesalib/src/mapi/glapi/gen/glX_proto_size.py @@ -313,7 +313,14 @@ class PrintGlxSizeStubs_common(gl_XML.gl_print_base): class PrintGlxSizeStubs_c(PrintGlxSizeStubs_common): def printRealHeader(self): print '' - print '#include <X11/Xfuncproto.h>' + print '#ifdef HAVE_DIX_CONFIG_H' + print '#include <dix-config.h>' + print '#else' + print '' + print '#include "glheader.h"' + print '' + print '#endif' + print '' print '#include <GL/gl.h>' if self.emit_get: print '#include "indirect_size_get.h"' @@ -444,6 +451,14 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common): def printRealHeader(self): print '' + print '#ifdef HAVE_DIX_CONFIG_H' + print '#include <dix-config.h>' + print '#else' + print '' + print '#include "glheader.h"' + print '' + print '#endif' + print '' print '#include <GL/gl.h>' print '#include "glxserver.h"' print '#include "glxbyteorder.h"' diff --git a/mesalib/src/mapi/glapi/gen/glX_server_table.py b/mesalib/src/mapi/glapi/gen/glX_server_table.py index 47aa11116..fa2036ffa 100644..100755 --- a/mesalib/src/mapi/glapi/gen/glX_server_table.py +++ b/mesalib/src/mapi/glapi/gen/glX_server_table.py @@ -357,6 +357,10 @@ class PrintGlxDispatchTables(glX_proto_common.glx_print_proto): def printRealHeader(self): + print '#ifndef HAVE_DIX_CONFIG_H' + print '#include "glheader.h"' + print '#endif' + print '' print '#include <inttypes.h>' print '#include "glxserver.h"' print '#include "glxext.h"' diff --git a/mesalib/src/mapi/glapi/gen/gl_API.xml b/mesalib/src/mapi/glapi/gen/gl_API.xml index 9200cd68d..7cb10b3ae 100644..100755 --- 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> @@ -3121,8 +3121,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> @@ -3467,8 +3467,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> @@ -3492,32 +3492,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"/> @@ -3569,26 +3569,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> @@ -3736,14 +3736,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> @@ -4221,92 +4221,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> @@ -4689,24 +4689,24 @@ <size name="Get" mode="get"/> </enum> <enum name="POINT_SIZE_MIN" count="1" value="0x8126"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="POINT_SIZE_MAX" count="1" value="0x8127"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE" count="1" value="0x8128"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION" count="3" value="0x8129"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" 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> @@ -4755,10 +4755,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"/> @@ -4771,20 +4771,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> @@ -5347,8 +5347,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="PointParameterfv"/> - <size name="PointParameteriv"/> + <size name="PointParameterfv" mode="get"/> + <size name="PointParameteriv" mode="get"/> </enum> <enum name="LOWER_LEFT" value="0x8CA1"/> <enum name="UPPER_LEFT" value="0x8CA2"/> @@ -6476,16 +6476,16 @@ <category name="GL_ARB_point_parameters" number="14"> <enum name="POINT_SIZE_MIN_ARB" count="1" value="0x8126"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_ARB" count="1" value="0x8127"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_ARB" count="1" value="0x8128"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_ARB" count="3" value="0x8129"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <function name="PointParameterfARB" alias="PointParameterf"> @@ -6791,8 +6791,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> @@ -6800,14 +6800,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> @@ -6816,8 +6816,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> @@ -8068,8 +8068,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> @@ -8682,20 +8682,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> @@ -9216,8 +9216,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> @@ -9227,26 +9227,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> @@ -9261,14 +9261,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> @@ -9345,16 +9345,16 @@ <category name="GL_EXT_point_parameters" number="54"> <enum name="POINT_SIZE_MIN_EXT" count="1" value="0x8126"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_EXT" count="1" value="0x8127"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1" value="0x8128"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <function name="PointParameterfEXT" alias="PointParameterf"> @@ -9403,14 +9403,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> @@ -9470,8 +9470,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> @@ -9518,8 +9518,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> @@ -9685,20 +9685,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> @@ -9713,8 +9713,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> @@ -10061,8 +10061,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"/> @@ -10838,8 +10838,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> @@ -10847,8 +10847,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> @@ -11007,8 +11007,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"/> @@ -11022,26 +11022,26 @@ <category name="GL_NV_texture_env_combine4" number="195"> <enum name="COMBINE4_NV" 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> @@ -12079,20 +12079,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> @@ -12131,8 +12131,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> @@ -12437,30 +12437,30 @@ added for this extension. --> <enum name="POINT_SIZE_MIN_EXT" count="1" value="0x8126"> - <size name="PointParameteriv"/> + <size name="PointParameteriv" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_EXT" count="1" value="0x8127"> - <size name="PointParameteriv"/> + <size name="PointParameteriv" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1" value="0x8128"> - <size name="PointParameteriv"/> + <size name="PointParameteriv" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129"> - <size name="PointParameteriv"/> + <size name="PointParameteriv" 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="PointParameterfv"/> - <size name="PointParameteriv"/> + <size name="PointParameterfv" mode="get"/> + <size name="PointParameteriv" mode="get"/> <size name="Get" mode="get"/> </enum> @@ -12594,8 +12594,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> @@ -12763,22 +12763,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"/> @@ -12898,16 +12898,16 @@ <category name="GL_SGIS_point_parameters"> <enum name="POINT_SIZE_MIN_SGIS" count="1" value="0x8126"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_SGIS" count="1" value="0x8127"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_SGIS" count="1" value="0x8128"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_SGIS" count="3" value="0x8129"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <function name="PointParameterfSGIS" alias="PointParameterf" static_dispatch="false"> diff --git a/mesalib/src/mapi/glapi/gen/gl_apitemp.py b/mesalib/src/mapi/glapi/gen/gl_apitemp.py index 4157032c5..4157032c5 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_apitemp.py +++ b/mesalib/src/mapi/glapi/gen/gl_apitemp.py diff --git a/mesalib/src/mapi/glapi/gen/gl_enums.py b/mesalib/src/mapi/glapi/gen/gl_enums.py index 0214932b6..1ff03fbe1 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_enums.py +++ b/mesalib/src/mapi/glapi/gen/gl_enums.py @@ -1,4 +1,4 @@ -#!/usr/bin/python2 +#!/usr/bin/env python # -*- Mode: Python; py-indent-offset: 8 -*- # (C) Copyright Zack Rusin 2005 diff --git a/mesalib/src/mapi/glapi/gen/gl_functions.py b/mesalib/src/mapi/glapi/gen/gl_functions.py new file mode 100755 index 000000000..cd408ade2 --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/gl_functions.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python + +# (C) Copyright IBM Corporation 2004 +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# on the rights to use, copy, modify, merge, publish, distribute, sub +# license, and/or sell copies of the Software, and to permit persons to whom +# the Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. +# +# Authors: +# Ian Romanick <idr@us.ibm.com> + +import gl_XML +import license +import sys, getopt + +class PrintFunctionTable(gl_XML.gl_print_base): + def __init__(self): + gl_XML.gl_print_base.__init__(self) + + self.header_tag = '__GLFUNCTIONS_H__' + self.name = "gl_functions.py" + self.license = license.bsd_license_template % ("(C) Copyright IBM Corporation 2005", "IBM") + return + + + def printRealHeader(self): + print """ +#include "glapitable.h" +#include "glapi.h" +#include "u_thread.h" +#include "dispatch.h" +""" + return + + def printBody(self, api): + + functions = [] + abi_functions = [] + alias_functions = [] + count = 0 + for f in api.functionIterateByOffset(): + if not f.is_abi(): + functions.append( [f, count] ) + count += 1 + else: + abi_functions.append( [f, -1] ) + + for f, index in abi_functions + functions: + arg_string="" + nrParams=0 + comma="" + + for p in f.parameters: + if not p.is_padding: + nrParams+=1 + arg_string+=comma + comma=", " + arg_string+="a%d"%nrParams + + print '#define gl%s(%s) CALL_%s(GET_DISPATCH(), (%s))' % (f.name, arg_string, f.name, arg_string) + + return + + +def show_usage(): + print "Usage: %s [-f input_file_name]" % sys.argv[0] + sys.exit(1) + +if __name__ == '__main__': + file_name = "gl_API.xml" + + try: + (args, trail) = getopt.getopt(sys.argv[1:], "f:") + except Exception,e: + show_usage() + + for (arg,val) in args: + if arg == "-f": + file_name = val + + printer = PrintFunctionTable() + + api = gl_XML.parse_GL_API( file_name ) + + printer.Print( api ) diff --git a/mesalib/src/mapi/glapi/gen/gl_gentable.py b/mesalib/src/mapi/glapi/gen/gl_gentable.py index 35dddc7a0..1c704452f 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_gentable.py +++ b/mesalib/src/mapi/glapi/gen/gl_gentable.py @@ -56,7 +56,7 @@ header = """/* GLXEXT is the define used in the xserver when the GLX extension i #include <stdlib.h> #include <stdio.h> -#include "main/glheader.h" +#include "glheader.h" #include "glapi.h" #include "glapitable.h" @@ -113,7 +113,7 @@ __glapi_gentable_set_remaining_noop(struct _glapi_table *disp) { struct _glapi_table * _glapi_create_table_from_handle(void *handle, const char *symbol_prefix) { - struct _glapi_table *disp = calloc(1, sizeof(struct _glapi_table)); + struct _glapi_table *disp = calloc(_glapi_get_dispatch_table_size(), sizeof(void*)); char symboln[512]; if(!disp) diff --git a/mesalib/src/mapi/glapi/gen/gl_procs.py b/mesalib/src/mapi/glapi/gen/gl_procs.py index b1fffc4ca..b1fffc4ca 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_procs.py +++ b/mesalib/src/mapi/glapi/gen/gl_procs.py diff --git a/mesalib/src/mapi/glapi/gen/gl_table.py b/mesalib/src/mapi/glapi/gen/gl_table.py index fd384689f..0c9c0b8a1 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_table.py +++ b/mesalib/src/mapi/glapi/gen/gl_table.py @@ -1,4 +1,4 @@ -#!/usr/bin/python2 +#!/usr/bin/env python # (C) Copyright IBM Corporation 2004 # All Rights Reserved. @@ -87,6 +87,7 @@ class PrintRemapTable(gl_XML.gl_print_base): def printRealHeader(self): print """ +#include "glapitable.h" /** * \\file main/dispatch.h * Macros for handling GL dispatch tables. @@ -101,6 +102,11 @@ class PrintRemapTable(gl_XML.gl_print_base): return def printBody(self, api): + print '#ifdef _MSC_VER' + print '#ifndef INLINE' + print '#define INLINE __inline' + print '#endif' + print '#endif' print '#define CALL_by_offset(disp, cast, offset, parameters) \\' print ' (*(cast (GET_by_offset(disp, offset)))) parameters' print '#define GET_by_offset(disp, offset) \\' @@ -151,7 +157,7 @@ class PrintRemapTable(gl_XML.gl_print_base): remap_table = "driDispatchRemapTable" print '#define %s_size %u' % (remap_table, count) - print 'extern int %s[ %s_size ];' % (remap_table, remap_table) + print 'SERVEXTERN int %s[ %s_size ];' % (remap_table, remap_table) print '' for f, index in functions: @@ -170,11 +176,11 @@ class PrintRemapTable(gl_XML.gl_print_base): print 'typedef %s (GLAPIENTRYP _glptr_%s)(%s);' % (f.return_type, f.name, arg_string) print '#define CALL_%s(disp, parameters) \\' % (f.name) print ' (* GET_%s(disp)) parameters' % (f.name) - print 'static inline _glptr_%s GET_%s(struct _glapi_table *disp) {' % (f.name, f.name) + print 'static INLINE _glptr_%s GET_%s(struct _glapi_table *disp) {' % (f.name, f.name) print ' return (_glptr_%s) (GET_by_offset(disp, _gloffset_%s));' % (f.name, f.name) print '}' print - print 'static inline void SET_%s(struct _glapi_table *disp, %s (GLAPIENTRYP fn)(%s)) {' % (f.name, f.return_type, arg_string) + print 'static INLINE void SET_%s(struct _glapi_table *disp, %s (GLAPIENTRYP fn)(%s)) {' % (f.name, f.return_type, arg_string) print ' SET_by_offset(disp, _gloffset_%s, fn);' % (f.name) print '}' print diff --git a/mesalib/src/mapi/glapi/gen/remap_helper.py b/mesalib/src/mapi/glapi/gen/remap_helper.py index e1a13d0b3..8ac047ccc 100644..100755 --- a/mesalib/src/mapi/glapi/gen/remap_helper.py +++ b/mesalib/src/mapi/glapi/gen/remap_helper.py @@ -64,8 +64,8 @@ class PrintGlRemap(gl_XML.gl_print_base): def printRealHeader(self): - print '#include "main/dispatch.h"' - print '#include "main/remap.h"' + print '#include "dispatch.h"' + print '#include "remap.h"' print '' return diff --git a/mesalib/src/mapi/glapi/glapi.h b/mesalib/src/mapi/glapi/glapi.h index e2fa9252f..67bf1f42e 100644..100755 --- a/mesalib/src/mapi/glapi/glapi.h +++ b/mesalib/src/mapi/glapi/glapi.h @@ -68,9 +68,18 @@ extern "C" { # endif #endif /* _GLAPI_NO_EXPORTS */ +#include "GL/gl.h" +#include "GL/glext.h" -/* Is this needed? It is incomplete anyway. */ -#ifdef USE_MGL_NAMESPACE + +struct _glapi_table; + +typedef void (*_glapi_proc)(void); /* generic function pointer */ + +typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...); + + +#if defined(USE_MGL_NAMESPACE) #define _glapi_set_dispatch _mglapi_set_dispatch #define _glapi_get_dispatch _mglapi_get_dispatch #define _glapi_set_context _mglapi_set_context @@ -79,17 +88,23 @@ extern "C" { #define _glapi_Context _mglapi_Context #endif -typedef void (*_glapi_proc)(void); -struct _glapi_table; +/* + * Number of extension functions which we can dynamically add at runtime. + */ +#define MAX_EXTENSION_FUNCS 300 +/** + ** Define the GET_CURRENT_CONTEXT() macro. + ** \param C local variable which will hold the current context. + **/ #if defined (GLX_USE_TLS) _GLAPI_EXPORT extern __thread struct _glapi_table * _glapi_tls_Dispatch - __attribute__((tls_model("initial-exec"))); + ; _GLAPI_EXPORT extern __thread void * _glapi_tls_Context - __attribute__((tls_model("initial-exec"))); + ; _GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch; _GLAPI_EXPORT extern const void *_glapi_Context; @@ -99,8 +114,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 @@ -120,69 +141,53 @@ _GLAPI_EXPORT extern void *_glapi_Context; #endif /* defined (GLX_USE_TLS) */ -void -_glapi_destroy_multithread(void); - +/** + ** GL API public functions + **/ -_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); +SERVEXTERN int +_glapi_begin_dispatch_override(struct _glapi_table *override); -_GLAPI_EXPORT unsigned int +SERVEXTERN void +_glapi_end_dispatch_override(int layer); + +struct _glapi_table * +_glapi_get_override_dispatch(int layer); + +SERVEXTERN GLuint _glapi_get_dispatch_table_size(void); -_GLAPI_EXPORT int +SERVEXTERN int _glapi_add_dispatch( const char * const * function_names, const char * parameter_signature ); -_GLAPI_EXPORT int -_glapi_get_proc_offset(const char *funcName); - - _GLAPI_EXPORT _glapi_proc _glapi_get_proc_address(const char *funcName); - -_GLAPI_EXPORT const char * -_glapi_get_proc_name(unsigned int offset); - - -_GLAPI_EXPORT struct _glapi_table * +extern struct _glapi_table * _glapi_create_table_from_handle(void *handle, const char *symbol_prefix); -/** Deprecated function */ -_GLAPI_EXPORT unsigned long -_glthread_GetID(void); - - -/* - * These stubs are kept so that the old DRI drivers still load. - */ -_GLAPI_EXPORT void -_glapi_noop_enable_warnings(unsigned char enable); - - -_GLAPI_EXPORT void -_glapi_set_warning_func(_glapi_proc func); - #ifdef __cplusplus } diff --git a/mesalib/src/mapi/glapi/glapi_getproc.c b/mesalib/src/mapi/glapi/glapi_getproc.c index bfde92cf2..d52b26450 100644 --- a/mesalib/src/mapi/glapi/glapi_getproc.c +++ b/mesalib/src/mapi/glapi/glapi_getproc.c @@ -369,6 +369,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 ) @@ -478,12 +479,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; @@ -504,7 +505,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; @@ -545,7 +546,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; @@ -571,7 +572,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) { /* diff --git a/mesalib/src/mapi/glapi/glapi_nop.c b/mesalib/src/mapi/glapi/glapi_nop.c index 2597c8cb8..77873684c 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/glapi_priv.h b/mesalib/src/mapi/glapi/glapi_priv.h index 92925faac..5b894d8f6 100644 --- a/mesalib/src/mapi/glapi/glapi_priv.h +++ b/mesalib/src/mapi/glapi/glapi_priv.h @@ -100,15 +100,4 @@ get_entrypoint_address(unsigned int functionOffset); #endif -/** - * Number of extension functions which we can dynamically add at runtime. - * - * Number of extension functions is also subject to the size of backing exec - * mem we allocate. For the common case of dispatch stubs with size 16 bytes, - * the two limits will be hit simultaneously. For larger dispatch function - * sizes, MAX_EXTENSION_FUNCS is effectively reduced. - */ -#define MAX_EXTENSION_FUNCS 256 - - #endif diff --git a/mesalib/src/mapi/mapi_abi.py b/mesalib/src/mapi/mapi_abi.py index d783ed32f..d783ed32f 100644..100755 --- a/mesalib/src/mapi/mapi_abi.py +++ b/mesalib/src/mapi/mapi_abi.py diff --git a/mesalib/src/mesa/drivers/dri/common/dri_util.c b/mesalib/src/mesa/drivers/dri/common/dri_util.c index aed73c73f..78cfcf536 100644 --- a/mesalib/src/mesa/drivers/dri/common/dri_util.c +++ b/mesalib/src/mesa/drivers/dri/common/dri_util.c @@ -116,6 +116,8 @@ driCreateNewScreen2(int scrn, int fd, { static const __DRIextension *emptyExtensionList[] = { NULL }; __DRIscreen *psp; + int gl_version_override; + int i; psp = calloc(1, sizeof(*psp)); if (!psp) @@ -128,7 +130,7 @@ driCreateNewScreen2(int scrn, int fd, * (megadrivers), use that instead. */ if (driver_extensions) { - for (int i = 0; driver_extensions[i]; i++) { + for (i = 0; driver_extensions[i]; i++) { if (strcmp(driver_extensions[i]->name, __DRI_DRIVER_VTABLE) == 0) { psp->driver = ((__DRIDriverVtableExtension *)driver_extensions[i])->vtable; @@ -162,7 +164,7 @@ driCreateNewScreen2(int scrn, int fd, return NULL; } - int gl_version_override = _mesa_get_gl_version_override(); + gl_version_override = _mesa_get_gl_version_override(); if (gl_version_override >= 31) { psp->max_gl_core_version = MAX2(psp->max_gl_core_version, gl_version_override); @@ -310,6 +312,8 @@ driCreateContextAttribs(__DRIscreen *screen, int api, unsigned minor_version = 0; uint32_t flags = 0; bool notify_reset = false; + unsigned i; + struct gl_context *ctx; assert((num_attribs == 0) || (attribs != NULL)); @@ -337,7 +341,7 @@ driCreateContextAttribs(__DRIscreen *screen, int api, return NULL; } - for (unsigned i = 0; i < num_attribs; i++) { + for (i = 0; i < num_attribs; i++) { switch (attribs[i * 2]) { case __DRI_CTX_ATTRIB_MAJOR_VERSION: major_version = attribs[i * 2 + 1]; @@ -735,36 +739,36 @@ driSwapBuffers(__DRIdrawable *pdp) /** Core interface */ const __DRIcoreExtension driCoreExtension = { - .base = { __DRI_CORE, __DRI_CORE_VERSION }, - - .createNewScreen = NULL, - .destroyScreen = driDestroyScreen, - .getExtensions = driGetExtensions, - .getConfigAttrib = driGetConfigAttrib, - .indexConfigAttrib = driIndexConfigAttrib, - .createNewDrawable = NULL, - .destroyDrawable = driDestroyDrawable, - .swapBuffers = driSwapBuffers, /* swrast */ - .createNewContext = driCreateNewContext, /* swrast */ - .copyContext = driCopyContext, - .destroyContext = driDestroyContext, - .bindContext = driBindContext, - .unbindContext = driUnbindContext + /*.base =*/ { __DRI_CORE, __DRI_CORE_VERSION }, + + /*.createNewScreen =*/ NULL, + /*.destroyScreen =*/ driDestroyScreen, + /*.getExtensions =*/ driGetExtensions, + /*.getConfigAttrib =*/ driGetConfigAttrib, + /*.indexConfigAttrib =*/ driIndexConfigAttrib, + /*.createNewDrawable =*/ NULL, + /*.destroyDrawable =*/ driDestroyDrawable, + /*.swapBuffers =*/ driSwapBuffers, /* swrast */ + /*.createNewContext =*/ driCreateNewContext, /* swrast */ + /*.copyContext =*/ driCopyContext, + /*.destroyContext =*/ driDestroyContext, + /*.bindContext =*/ driBindContext, + /*.unbindContext =*/ driUnbindContext }; /** DRI2 interface */ const __DRIdri2Extension driDRI2Extension = { - .base = { __DRI_DRI2, 4 }, - - .createNewScreen = dri2CreateNewScreen, - .createNewDrawable = driCreateNewDrawable, - .createNewContext = driCreateNewContext, - .getAPIMask = driGetAPIMask, - .createNewContextForAPI = driCreateNewContextForAPI, - .allocateBuffer = dri2AllocateBuffer, - .releaseBuffer = dri2ReleaseBuffer, - .createContextAttribs = driCreateContextAttribs, - .createNewScreen2 = driCreateNewScreen2, + /*.base =*/ { __DRI_DRI2, 4 }, + + /*.createNewScreen =*/ dri2CreateNewScreen, + /*.createNewDrawable =*/ driCreateNewDrawable, + /*.createNewContext =*/ driCreateNewContext, + /*.getAPIMask =*/ driGetAPIMask, + /*.createNewContextForAPI =*/ driCreateNewContextForAPI, + /*.allocateBuffer =*/ dri2AllocateBuffer, + /*.releaseBuffer =*/ dri2ReleaseBuffer, + /*.createContextAttribs =*/ driCreateContextAttribs, + /*.createNewScreen2 =*/ driCreateNewScreen2, }; const __DRIswrastExtension driSWRastExtension = { @@ -778,11 +782,11 @@ const __DRIswrastExtension driSWRastExtension = { }; const __DRI2configQueryExtension dri2ConfigQueryExtension = { - .base = { __DRI2_CONFIG_QUERY, __DRI2_CONFIG_QUERY_VERSION }, + /*.base =*/ { __DRI2_CONFIG_QUERY, __DRI2_CONFIG_QUERY_VERSION }, - .configQueryb = dri2ConfigQueryb, - .configQueryi = dri2ConfigQueryi, - .configQueryf = dri2ConfigQueryf, + /*.configQueryb =*/ dri2ConfigQueryb, + /*.configQueryi =*/ dri2ConfigQueryi, + /*.configQueryf =*/ dri2ConfigQueryf, }; void @@ -874,12 +878,12 @@ driImageFormatToGLFormat(uint32_t image_format) /** Image driver interface */ const __DRIimageDriverExtension driImageDriverExtension = { - .base = { __DRI_IMAGE_DRIVER, 1 }, + /*.base =*/ { __DRI_IMAGE_DRIVER, 1 }, - .createNewScreen2 = driCreateNewScreen2, - .createNewDrawable = driCreateNewDrawable, - .getAPIMask = driGetAPIMask, - .createContextAttribs = driCreateContextAttribs, + /*.createNewScreen2 =*/ driCreateNewScreen2, + /*.createNewDrawable =*/ driCreateNewDrawable, + /*.createContextAttribs =*/ driCreateContextAttribs, + /*.getAPIMask =*/ driGetAPIMask, }; /* swrast copy sub buffer entrypoint. */ @@ -893,7 +897,7 @@ static void driCopySubBuffer(__DRIdrawable *pdp, int x, int y, /* for swrast only */ const __DRIcopySubBufferExtension driCopySubBufferExtension = { - .base = { __DRI_COPY_SUB_BUFFER, 1 }, + /*.base =*/ { __DRI_COPY_SUB_BUFFER, 1 }, - .copySubBuffer = driCopySubBuffer, + /*.copySubBuffer =*/ driCopySubBuffer, }; diff --git a/mesalib/src/mesa/drivers/dri/common/megadriver_stub.c b/mesalib/src/mesa/drivers/dri/common/megadriver_stub.c index 7b6d13450..4c3cc6776 100644 --- a/mesalib/src/mesa/drivers/dri/common/megadriver_stub.c +++ b/mesalib/src/mesa/drivers/dri/common/megadriver_stub.c @@ -163,5 +163,5 @@ __DRIconfig **stub_error_init_screen(__DRIscreen *psp) * never be used. */ const struct __DriverAPIRec driDriverAPI = { - .InitScreen = stub_error_init_screen, + /*.InitScreen = */stub_error_init_screen, }; diff --git a/mesalib/src/mesa/drivers/dri/common/xmlconfig.c b/mesalib/src/mesa/drivers/dri/common/xmlconfig.c index b95e452f1..cce47c753 100644 --- a/mesalib/src/mesa/drivers/dri/common/xmlconfig.c +++ b/mesalib/src/mesa/drivers/dri/common/xmlconfig.c @@ -101,7 +101,11 @@ static const char *__getProgramName () { # define GET_PROGRAM_NAME() __getProgramName() # else # define GET_PROGRAM_NAME() "" +# ifdef _MSC_VER +# pragma message("Per application configuration won't work with your OS version.") +# else # warning "Per application configuration won't work with your OS version." +# endif # endif #endif @@ -438,11 +442,11 @@ __driUtilMessage(const char *f, ...) (int) XML_GetCurrentLineNumber(data->parser), \ (int) XML_GetCurrentColumnNumber(data->parser)); \ } while (0) -#define XML_WARNING(msg,args...) do { \ +#define XML_WARNING(msg, ...) do { \ __driUtilMessage ("Warning in %s line %d, column %d: "msg, data->name, \ (int) XML_GetCurrentLineNumber(data->parser), \ (int) XML_GetCurrentColumnNumber(data->parser), \ - args); \ + __VA_ARGS__); \ } while (0) /** \brief Output an error message. */ #define XML_ERROR1(msg) do { \ @@ -450,11 +454,11 @@ __driUtilMessage(const char *f, ...) (int) XML_GetCurrentLineNumber(data->parser), \ (int) XML_GetCurrentColumnNumber(data->parser)); \ } while (0) -#define XML_ERROR(msg,args...) do { \ +#define XML_ERROR(msg, ...) do { \ __driUtilMessage ("Error in %s line %d, column %d: "msg, data->name, \ (int) XML_GetCurrentLineNumber(data->parser), \ (int) XML_GetCurrentColumnNumber(data->parser), \ - args); \ + __VA_ARGS__); \ } while (0) /** \brief Output a fatal error message and abort. */ #define XML_FATAL1(msg) do { \ @@ -464,12 +468,12 @@ __driUtilMessage(const char *f, ...) (int) XML_GetCurrentColumnNumber(data->parser)); \ abort();\ } while (0) -#define XML_FATAL(msg,args...) do { \ +#define XML_FATAL(msg, ...) do { \ fprintf (stderr, "Fatal error in %s line %d, column %d: "msg"\n", \ data->name, \ (int) XML_GetCurrentLineNumber(data->parser), \ (int) XML_GetCurrentColumnNumber(data->parser), \ - args); \ + __VA_ARGS__); \ abort();\ } while (0) diff --git a/mesalib/src/mesa/drivers/dri/swrast/swrast.c b/mesalib/src/mesa/drivers/dri/swrast/swrast.c index 071192c6f..3d19a52dc 100644 --- a/mesalib/src/mesa/drivers/dri/swrast/swrast.c +++ b/mesalib/src/mesa/drivers/dri/swrast/swrast.c @@ -32,6 +32,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/api_exec.h" #include "main/context.h" #include "main/extensions.h" @@ -59,7 +64,7 @@ #include "swrast_priv.h" #include "swrast/s_context.h" -const __DRIextension **__driDriverGetExtensions_swrast(void); +PUBLIC const __DRIextension **__driDriverGetExtensions_swrast(void); /** * Screen and config-related functions @@ -77,7 +82,7 @@ static void swrastSetTexBuffer2(__DRIcontext *pDRICtx, GLint target, uint32_t internalFormat; mesa_format texFormat; - dri_ctx = pDRICtx->driverPrivate; + dri_ctx = (struct dri_context *)pDRICtx->driverPrivate; internalFormat = (texture_format == __DRI_TEXTURE_FORMAT_RGB ? 3 : 4); @@ -173,7 +178,7 @@ swrastFillInModes(__DRIscreen *psp, format = MESA_FORMAT_B8G8R8A8_UNORM; 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; } @@ -308,7 +313,7 @@ swrast_alloc_back_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, swrast_alloc_front_storage(ctx, rb, internalFormat, width, height); - xrb->Base.Buffer = malloc(height * xrb->pitch); + xrb->Base.Buffer = (GLubyte*)malloc(height * xrb->pitch); return GL_TRUE; } @@ -317,7 +322,7 @@ static struct dri_swrast_renderbuffer * swrast_new_renderbuffer(const struct gl_config *visual, __DRIdrawable *dPriv, GLboolean front) { - struct dri_swrast_renderbuffer *xrb = calloc(1, sizeof *xrb); + struct dri_swrast_renderbuffer *xrb = (struct dri_swrast_renderbuffer *)calloc(1, sizeof *xrb); struct gl_renderbuffer *rb; GLuint pixel_format; @@ -398,7 +403,7 @@ swrast_map_renderbuffer(struct gl_context *ctx, xrb->map_h = h; stride = w * cpp; - xrb->Base.Buffer = malloc(h * stride); + xrb->Base.Buffer = (GLubyte*)malloc(h * stride); sPriv->swrast_loader->getImage(dPriv, x, rb->Height - y - h, w, h, (char *) xrb->Base.Buffer, @@ -467,7 +472,7 @@ dri_create_buffer(__DRIscreen * sPriv, dPriv->driverPrivate = drawable; drawable->dPriv = dPriv; - drawable->row = malloc(SWRAST_MAX_WIDTH * 4); + drawable->row = (char*)malloc(SWRAST_MAX_WIDTH * 4); if (drawable->row == NULL) goto drawable_fail; @@ -851,21 +856,23 @@ dri_copy_sub_buffer(__DRIdrawable *dPriv, int x, int y, static const struct __DriverAPIRec swrast_driver_api = { - .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, - .CopySubBuffer = dri_copy_sub_buffer, + /*.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, + /*.CopySubBuffer = */dri_copy_sub_buffer, + /*.AllocateBuffer = */NULL, + /*.ReleaseBuffer = */NULL }; static const struct __DRIDriverVtableExtensionRec swrast_vtable = { - .base = { __DRI_DRIVER_VTABLE, 1 }, - .vtable = &swrast_driver_api, + /*.base = */{ __DRI_DRIVER_VTABLE, 1 }, + /*.vtable = */&swrast_driver_api, }; static const __DRIextension *swrast_driver_extensions[] = { diff --git a/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h b/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h index 535f6fe59..339e4502f 100644 --- a/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h +++ b/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h @@ -33,6 +33,13 @@ #include "dri_util.h" #include "swrast/s_context.h" +#ifdef _MSC_VER +#ifdef PUBLIC +#undef PUBLIC +#endif +#define PUBLIC __declspec(dllexport) +#endif + /** * Debugging diff --git a/mesalib/src/mesa/main/.gitignore b/mesalib/src/mesa/main/.gitignore index 837f49036..b1b83f102 100644 --- a/mesalib/src/mesa/main/.gitignore +++ b/mesalib/src/mesa/main/.gitignore @@ -1,10 +1,11 @@ -api_exec.c -dispatch.h -enums.c -get_es1.c -get_es2.c -git_sha1.h -git_sha1.h.tmp -remap_helper.h -get_hash.h -get_hash.h.tmp +api_exec.c
+dispatch.h
+enums.c
+get_es1.c
+get_es2.c
+git_sha1.h
+git_sha1.h.tmp
+remap_helper.h
+get_hash.h
+get_hash.h.tmp
+glapitable.h
diff --git a/mesalib/src/mesa/main/bufferobj.c b/mesalib/src/mesa/main/bufferobj.c index 36acd64ce..aed6d4366 100644 --- a/mesalib/src/mesa/main/bufferobj.c +++ b/mesalib/src/mesa/main/bufferobj.c @@ -387,7 +387,7 @@ convert_clear_buffer_data(struct gl_context *ctx, * * Default callback for the \c dd_function_table::NewBufferObject() hook. */ -static struct gl_buffer_object * +struct gl_buffer_object * _mesa_new_buffer_object( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_buffer_object *obj; @@ -405,7 +405,7 @@ _mesa_new_buffer_object( struct gl_context *ctx, GLuint name, GLenum target ) * * Default callback for the \c dd_function_table::DeleteBuffer() hook. */ -static void +void _mesa_delete_buffer_object(struct gl_context *ctx, struct gl_buffer_object *bufObj) { @@ -556,7 +556,7 @@ _mesa_total_buffer_object_memory(struct gl_context *ctx) * \return GL_TRUE for success, GL_FALSE for failure * \sa glBufferDataARB, dd_function_table::BufferData. */ -static GLboolean +GLboolean _mesa_buffer_data( struct gl_context *ctx, GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage, GLenum storageFlags, struct gl_buffer_object * bufObj ) @@ -602,7 +602,7 @@ _mesa_buffer_data( struct gl_context *ctx, GLenum target, GLsizeiptrARB size, * * \sa glBufferSubDataARB, dd_function_table::BufferSubData. */ -static void +void _mesa_buffer_subdata( struct gl_context *ctx, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data, struct gl_buffer_object * bufObj ) @@ -635,7 +635,7 @@ _mesa_buffer_subdata( struct gl_context *ctx, GLintptrARB offset, * * \sa glBufferGetSubDataARB, dd_function_table::GetBufferSubData. */ -static void +void _mesa_buffer_get_subdata( struct gl_context *ctx, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data, struct gl_buffer_object * bufObj ) @@ -748,7 +748,7 @@ _mesa_buffer_flush_mapped_range( struct gl_context *ctx, * * \sa glUnmapBufferARB, dd_function_table::UnmapBuffer */ -static GLboolean +GLboolean _mesa_buffer_unmap(struct gl_context *ctx, struct gl_buffer_object *bufObj, gl_map_buffer_index index) { diff --git a/mesalib/src/mesa/main/config.h b/mesalib/src/mesa/main/config.h index 30da5d422..b2583e6d5 100644 --- a/mesalib/src/mesa/main/config.h +++ b/mesalib/src/mesa/main/config.h @@ -32,6 +32,10 @@ #define MESA_CONFIG_H_INCLUDED +#define PACKAGE_VERSION "9.2-devel" +#define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa" + + /** * \name OpenGL implementation limits */ diff --git a/mesalib/src/mesa/main/context.c b/mesalib/src/mesa/main/context.c index 860ae8605..8eb426d59 100644 --- a/mesalib/src/mesa/main/context.c +++ b/mesalib/src/mesa/main/context.c @@ -1141,7 +1141,7 @@ _mesa_initialize_context(struct gl_context *ctx, fail: _mesa_reference_shared_state(ctx, &ctx->Shared, NULL); free(ctx->BeginEnd); - free(ctx->Exec); + free(ctx->OutsideBeginEnd); free(ctx->Save); return GL_FALSE; } @@ -1242,7 +1242,7 @@ _mesa_free_context_data( struct gl_context *ctx ) /* free dispatch tables */ free(ctx->BeginEnd); - free(ctx->Exec); + free(ctx->OutsideBeginEnd); free(ctx->Save); /* Shared context state (display lists, textures, etc) */ diff --git a/mesalib/src/mesa/main/dlopen.h b/mesalib/src/mesa/main/dlopen.h index 55a56f0d7..b060cdbac 100644 --- a/mesalib/src/mesa/main/dlopen.h +++ b/mesalib/src/mesa/main/dlopen.h @@ -52,7 +52,7 @@ _mesa_dlopen(const char *libname, int flags) #elif defined(HAVE_DLOPEN) flags = RTLD_LAZY | RTLD_GLOBAL; /* Overriding flags at this time */ return dlopen(libname, flags); -#elif defined(__MINGW32__) +#elif defined(__MINGW32__) || defined(_WIN32) return LoadLibraryA(libname); #else return NULL; @@ -82,7 +82,7 @@ _mesa_dlsym(void *handle, const char *fname) u.v = dlsym(handle, fname2); #elif defined(HAVE_DLOPEN) u.v = dlsym(handle, fname); -#elif defined(__MINGW32__) +#elif defined(__MINGW32__) || defined(_WIN32) u.v = (void *) GetProcAddress(handle, fname); #else u.v = NULL; @@ -100,7 +100,7 @@ _mesa_dlclose(void *handle) (void) handle; #elif defined(HAVE_DLOPEN) dlclose(handle); -#elif defined(__MINGW32__) +#elif defined(__MINGW32__) || defined(_WIN32) FreeLibrary(handle); #else (void) handle; diff --git a/mesalib/src/mesa/main/imports.h b/mesalib/src/mesa/main/imports.h index 17a9bd099..db19eda3d 100644 --- a/mesalib/src/mesa/main/imports.h +++ b/mesalib/src/mesa/main/imports.h @@ -135,7 +135,6 @@ static inline float acoshf(float x) { return logf(x + sqrtf(x * x - 1.0f)); } static inline float atanhf(float x) { return (logf(1.0f + x) - logf(1.0f - x)) / 2.0f; } static inline int isblank(int ch) { return ch == ' ' || ch == '\t'; } #define strtoll(p, e, b) _strtoi64(p, e, b) -#define strcasecmp(s1, s2) _stricmp(s1, s2) #endif /*@}*/ diff --git a/mesalib/src/mesa/main/queryobj.c b/mesalib/src/mesa/main/queryobj.c index 86e7c3ad0..b411eae50 100644 --- a/mesalib/src/mesa/main/queryobj.c +++ b/mesalib/src/mesa/main/queryobj.c @@ -40,7 +40,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(struct gl_context *ctx, GLuint id) { struct gl_query_object *q = CALLOC_STRUCT(gl_query_object); @@ -72,7 +72,7 @@ _mesa_new_query_object(struct gl_context *ctx, GLuint id) * Begin a query. Software driver fallback. * Called via ctx->Driver.BeginQuery(). */ -static void +void _mesa_begin_query(struct gl_context *ctx, struct gl_query_object *q) { ctx->NewState |= _NEW_DEPTH; /* for swrast */ @@ -83,7 +83,7 @@ _mesa_begin_query(struct gl_context *ctx, struct gl_query_object *q) * End a query. Software driver fallback. * Called via ctx->Driver.EndQuery(). */ -static void +void _mesa_end_query(struct gl_context *ctx, struct gl_query_object *q) { ctx->NewState |= _NEW_DEPTH; /* for swrast */ @@ -95,7 +95,7 @@ _mesa_end_query(struct gl_context *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(struct gl_context *ctx, struct gl_query_object *q) { /* For software drivers, _mesa_end_query() should have completed the query. @@ -123,7 +123,7 @@ _mesa_check_query(struct gl_context *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(struct gl_context *ctx, struct gl_query_object *q) { free(q->Label); diff --git a/mesalib/src/mesa/main/remap.c b/mesalib/src/mesa/main/remap.c index 4a881865a..02365f76e 100644 --- a/mesalib/src/mesa/main/remap.c +++ b/mesalib/src/mesa/main/remap.c @@ -35,9 +35,9 @@ * a dynamic entry, or the corresponding static entry, in glapi. */ +#include "glapi/glapi.h" #include "remap.h" #include "imports.h" -#include "glapi/glapi.h" #define MAX_ENTRY_POINTS 16 @@ -46,7 +46,7 @@ /* this is global for quick access */ -int driDispatchRemapTable[driDispatchRemapTable_size]; +SERVEXTERN int driDispatchRemapTable[driDispatchRemapTable_size]; /** diff --git a/mesalib/src/mesa/main/remap.h b/mesalib/src/mesa/main/remap.h index 7199169d3..f6e856c64 100644 --- a/mesalib/src/mesa/main/remap.h +++ b/mesalib/src/mesa/main/remap.h @@ -40,7 +40,7 @@ struct gl_function_remap { }; -extern int +SERVEXTERN int driDispatchRemapTable[]; extern const char * diff --git a/mesalib/src/mesa/main/syncobj.c b/mesalib/src/mesa/main/syncobj.c index a88d7e469..9721b14b4 100644 --- a/mesalib/src/mesa/main/syncobj.c +++ b/mesalib/src/mesa/main/syncobj.c @@ -127,7 +127,7 @@ _mesa_wait_sync(struct gl_context *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; @@ -144,7 +144,7 @@ _mesa_init_sync_object_functions(struct dd_function_table *driver) /** * Allocate/init the context state related to sync objects. */ -void +void GLAPIENTRY _mesa_init_sync(struct gl_context *ctx) { (void) ctx; @@ -154,7 +154,7 @@ _mesa_init_sync(struct gl_context *ctx) /** * Free the context state related to sync objects. */ -void +void GLAPIENTRY _mesa_free_sync_data(struct gl_context *ctx) { (void) ctx; @@ -181,7 +181,7 @@ _mesa_validate_sync(struct gl_context *ctx, } -void +void GLAPIENTRY _mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { mtx_lock(&ctx->Shared->Mutex); @@ -190,7 +190,7 @@ _mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) } -void +void GLAPIENTRY _mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { struct set_entry *entry; diff --git a/mesalib/src/mesa/main/syncobj.h b/mesalib/src/mesa/main/syncobj.h index 5d510e873..1dbb7b14a 100644 --- a/mesalib/src/mesa/main/syncobj.h +++ b/mesalib/src/mesa/main/syncobj.h @@ -38,19 +38,19 @@ struct dd_function_table; struct gl_context; struct gl_sync_object; -extern void +extern void GLAPIENTRY _mesa_init_sync_object_functions(struct dd_function_table *driver); -extern void +extern void GLAPIENTRY _mesa_init_sync(struct gl_context *); -extern void +extern void GLAPIENTRY _mesa_free_sync_data(struct gl_context *); -extern void +extern void GLAPIENTRY _mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj); -extern void +extern void GLAPIENTRY _mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj); extern bool diff --git a/mesalib/src/mesa/main/version.c b/mesalib/src/mesa/main/version.c index b7cc50fc1..b3ae3f5e8 100644 --- a/mesalib/src/mesa/main/version.c +++ b/mesalib/src/mesa/main/version.c @@ -26,7 +26,7 @@ #include "imports.h" #include "mtypes.h" #include "version.h" -#include "git_sha1.h" +/*#include "git_sha1.h"*/ /** * Scans 'string' to see if it ends with 'ending'. diff --git a/mesalib/src/mesa/program/.gitignore b/mesalib/src/mesa/program/.gitignore index 4c20872e1..2f1601fcc 100644..100755 --- a/mesalib/src/mesa/program/.gitignore +++ b/mesalib/src/mesa/program/.gitignore @@ -1,4 +1,4 @@ -program_parse.output -lex.yy.c -program_parse.tab.c -program_parse.tab.h +lex.yy.c
+program_parse.output
+program_parse.tab.c
+program_parse.tab.h
\ No newline at end of file diff --git a/mesalib/src/mesa/program/doflexbison.bat b/mesalib/src/mesa/program/doflexbison.bat new file mode 100644 index 000000000..b39b53cf8 --- /dev/null +++ b/mesalib/src/mesa/program/doflexbison.bat @@ -0,0 +1,18 @@ +@echo off
+setlocal
+
+cd "%~dp0"
+
+set M4=..\..\..\..\tools\mhmake\m4.exe
+set BISON_PKGDATADIR=../../../../tools/mhmake/src/bisondata
+
+set path=..\..\..\..\tools\mhmake;%path%
+
+..\..\..\..\tools\mhmake\bison.exe -v -d -p "_mesa_program_" --output=program_parse.tab.c program_parse.y
+
+copy "..\..\..\..\tools\mhmake\flex++.exe" flex.exe
+flex.exe --never-interactive --outfile=lex.yy.c program_lexer.l
+del flex.exe
+
+endlocal
+
diff --git a/mesalib/src/mesa/program/hash_table.h b/mesalib/src/mesa/program/hash_table.h index e95fc4982..b814497a6 100644 --- a/mesalib/src/mesa/program/hash_table.h +++ b/mesalib/src/mesa/program/hash_table.h @@ -37,6 +37,7 @@ #include <stdint.h> #include <limits.h> #include <assert.h> +#include <unistd.h> struct string_to_uint_map; |