X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fremap.c;h=5a95387728512ffa149ff2e0a1e518f7605ff793;hb=1c1873b93b9aa30c8e9275000f813bce69ed99e4;hp=0385ae8d7d996eaf24d5e76575f796ada673e84c;hpb=080c40ab32b2abd6d8381b4a0cc143d36a1652b2;p=mesa.git diff --git a/src/mesa/main/remap.c b/src/mesa/main/remap.c index 0385ae8d7d9..5a953877285 100644 --- a/src/mesa/main/remap.c +++ b/src/mesa/main/remap.c @@ -1,6 +1,5 @@ /* * Mesa 3-D graphics library - * Version: 7.7 * * Copyright (C) 2009 Chia-I Wu * @@ -14,12 +13,13 @@ * The above copyright notice and this permission notice 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, + * 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 NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL 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. + * THE AUTHORS OR COPYRIGHT HOLDERS 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. */ @@ -37,18 +37,12 @@ #include "remap.h" #include "imports.h" +#include "glapi/glapi.h" -#include "glapi/dispatch.h" - - -#if FEATURE_remap_table - +#define MAX_ENTRY_POINTS 16 #define need_MESA_remap_table -#include "remap_helper.h" - -#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0])) -#define MAX_ENTRY_POINTS 16 +#include "main/remap_helper.h" /* this is global for quick access */ @@ -183,10 +177,12 @@ _mesa_map_static_functions(void) /** * Initialize the remap table. This is called in one_time_init(). * The remap table needs to be initialized before calling the - * CALL/GET/SET macros defined in glapi/dispatch.h. + * CALL/GET/SET macros defined in main/dispatch.h. */ -void -_mesa_init_remap_table(void) +static void +_mesa_do_init_remap_table(const char *pool, + int size, + const struct gl_function_pool_remap *remap) { static GLboolean initialized = GL_FALSE; GLint i; @@ -196,21 +192,29 @@ _mesa_init_remap_table(void) initialized = GL_TRUE; /* initialize the remap table */ - for (i = 0; i < ARRAY_SIZE(driDispatchRemapTable); i++) { + for (i = 0; i < size; i++) { GLint offset; const char *spec; /* sanity check */ - ASSERT(i == MESA_remap_table_functions[i].remap_index); - spec = _mesa_function_pool + MESA_remap_table_functions[i].pool_index; + assert(i == remap[i].remap_index); + spec = _mesa_function_pool + remap[i].pool_index; offset = _mesa_map_function_spec(spec); /* store the dispatch offset in the remap table */ driDispatchRemapTable[i] = offset; - if (offset < 0) - _mesa_warning(NULL, "failed to remap index %d", i); + if (offset < 0) { + const char *name = spec + strlen(spec) + 1; + _mesa_warning(NULL, "failed to remap %s", name); + } } } -#endif /* FEATURE_remap_table */ +void +_mesa_init_remap_table(void) +{ + _mesa_do_init_remap_table(_mesa_function_pool, + driDispatchRemapTable_size, + MESA_remap_table_functions); +}