mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-25 18:50:31 +01:00
glapi: mv table functions to glapi_getproc.c and add local header
This commit is contained in:
parent
fe14868d96
commit
2c8b5ffed9
4 changed files with 98 additions and 66 deletions
|
|
@ -59,7 +59,7 @@
|
|||
#endif
|
||||
|
||||
#include "glapi/glapi.h"
|
||||
#include "glapi/glapitable.h"
|
||||
#include "glapi/glapi_priv.h"
|
||||
|
||||
extern _glapi_proc __glapi_noop_table[];
|
||||
|
||||
|
|
@ -291,45 +291,3 @@ _glapi_get_dispatch(void)
|
|||
return _glapi_Dispatch;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* The dispatch table size (number of entries) is the size of the
|
||||
* _glapi_table struct plus the number of dynamic entries we can add.
|
||||
* The extra slots can be filled in by DRI drivers that register new extension
|
||||
* functions.
|
||||
*/
|
||||
#define DISPATCH_TABLE_SIZE (sizeof(struct _glapi_table) / sizeof(void *) + MAX_EXTENSION_FUNCS)
|
||||
|
||||
|
||||
/**
|
||||
* Return size of dispatch table struct as number of functions (or
|
||||
* slots).
|
||||
*/
|
||||
PUBLIC GLuint
|
||||
_glapi_get_dispatch_table_size(void)
|
||||
{
|
||||
return DISPATCH_TABLE_SIZE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Make sure there are no NULL pointers in the given dispatch table.
|
||||
* Intended for debugging purposes.
|
||||
*/
|
||||
void
|
||||
_glapi_check_table_not_null(const struct _glapi_table *table)
|
||||
{
|
||||
#if 0 /* enable this for extra DEBUG */
|
||||
const GLuint entries = _glapi_get_dispatch_table_size();
|
||||
const void **tab = (const void **) table;
|
||||
GLuint i;
|
||||
for (i = 1; i < entries; i++) {
|
||||
assert(tab[i]);
|
||||
}
|
||||
#else
|
||||
(void) table;
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -165,29 +165,8 @@ extern _glapi_proc
|
|||
_glapi_get_proc_address(const char *funcName);
|
||||
|
||||
|
||||
/**
|
||||
* GL API local functions and defines
|
||||
*/
|
||||
|
||||
extern void
|
||||
init_glapi_relocs_once(void);
|
||||
|
||||
extern void
|
||||
_glapi_check_table_not_null(const struct _glapi_table *table);
|
||||
|
||||
|
||||
extern void
|
||||
_glapi_check_table(const struct _glapi_table *table);
|
||||
|
||||
|
||||
extern const char *
|
||||
_glapi_get_proc_name(unsigned int offset);
|
||||
|
||||
|
||||
/*
|
||||
* Number of extension functions which we can dynamically add at runtime.
|
||||
*/
|
||||
#define MAX_EXTENSION_FUNCS 300
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -39,8 +39,9 @@
|
|||
#endif
|
||||
|
||||
#include "glapi/glapi.h"
|
||||
#include "glapi/glapioffsets.h"
|
||||
#include "glapi/glapi_priv.h"
|
||||
#include "glapi/glapitable.h"
|
||||
#include "glapi/glapioffsets.h"
|
||||
|
||||
|
||||
#if defined(USE_X64_64_ASM) && defined(GLX_USE_TLS)
|
||||
|
|
@ -378,6 +379,12 @@ struct _glapi_function {
|
|||
};
|
||||
|
||||
|
||||
/*
|
||||
* Number of extension functions which we can dynamically add at runtime.
|
||||
*/
|
||||
#define MAX_EXTENSION_FUNCS 300
|
||||
|
||||
|
||||
static struct _glapi_function ExtEntryTable[MAX_EXTENSION_FUNCS];
|
||||
static GLuint NumExtEntryPoints = 0;
|
||||
|
||||
|
|
@ -766,6 +773,51 @@ _glapi_get_proc_name(GLuint offset)
|
|||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* GL API table functions.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* The dispatch table size (number of entries) is the size of the
|
||||
* _glapi_table struct plus the number of dynamic entries we can add.
|
||||
* The extra slots can be filled in by DRI drivers that register new extension
|
||||
* functions.
|
||||
*/
|
||||
#define DISPATCH_TABLE_SIZE (sizeof(struct _glapi_table) / sizeof(void *) + MAX_EXTENSION_FUNCS)
|
||||
|
||||
|
||||
/**
|
||||
* Return size of dispatch table struct as number of functions (or
|
||||
* slots).
|
||||
*/
|
||||
PUBLIC GLuint
|
||||
_glapi_get_dispatch_table_size(void)
|
||||
{
|
||||
return DISPATCH_TABLE_SIZE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Make sure there are no NULL pointers in the given dispatch table.
|
||||
* Intended for debugging purposes.
|
||||
*/
|
||||
void
|
||||
_glapi_check_table_not_null(const struct _glapi_table *table)
|
||||
{
|
||||
#ifdef EXTRA_DEBUG /* set to DEBUG for extra DEBUG */
|
||||
const GLuint entries = _glapi_get_dispatch_table_size();
|
||||
const void **tab = (const void **) table;
|
||||
GLuint i;
|
||||
for (i = 1; i < entries; i++) {
|
||||
assert(tab[i]);
|
||||
}
|
||||
#else
|
||||
(void) table;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Do some spot checks to be sure that the dispatch table
|
||||
* slots are assigned correctly. For debugging only.
|
||||
|
|
@ -773,7 +825,7 @@ _glapi_get_proc_name(GLuint offset)
|
|||
void
|
||||
_glapi_check_table(const struct _glapi_table *table)
|
||||
{
|
||||
#if 0 /* enable this for extra DEBUG */
|
||||
#ifdef EXTRA_DEBUG /* set to DEBUG for extra DEBUG */
|
||||
{
|
||||
GLuint BeginOffset = _glapi_get_proc_offset("glBegin");
|
||||
char *BeginFunc = (char*) &table->Begin;
|
||||
|
|
|
|||
43
src/mesa/glapi/glapi_priv.h
Normal file
43
src/mesa/glapi/glapi_priv.h
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 7.1
|
||||
*
|
||||
* Copyright (C) 1999-2008 Brian Paul 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
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* 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 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 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.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _GLAPI_PRIV_H
|
||||
#define _GLAPI_PRIV_H
|
||||
|
||||
#include "glthread.h"
|
||||
|
||||
extern void
|
||||
_glapi_check_table_not_null(const struct _glapi_table *table);
|
||||
|
||||
|
||||
extern void
|
||||
_glapi_check_table(const struct _glapi_table *table);
|
||||
|
||||
|
||||
extern void
|
||||
init_glapi_relocs_once(void);
|
||||
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Reference in a new issue