From 27d260b41038e0c19c8f24b8bdb2c004c1eb7aa2 Mon Sep 17 00:00:00 2001
From: Chia-I Wu
- glFooBar() - a public GL entry point (in dispatch.c) + glFooBar() - a public GL entry point (in glapi_dispatch.c) _mesa_FooBar() - the internal immediate mode function save_FooBar() - retained mode (display list) function in dlist.c foo_bar() - a static (private) function diff --git a/docs/dispatch.html b/docs/dispatch.html index bcab74c7070..0c54a84675e 100644 --- a/docs/dispatch.html +++ b/docs/dispatch.html @@ -244,8 +244,8 @@ isn't a significant problem. system. There are two steps to this. The file must first be added to src/mesa/sources. That gets the file built and linked. The second step is to add the correct #ifdef magic to -src/mesa/main/dispatch.c to prevent the C version of the dispatch -functions from being built. +src/mesa/glapi/glapi_dispatch.c to prevent the C version of the +dispatch functions from being built.3.4. Fixed-Length Dispatch Stubs
diff --git a/src/mesa/Makefile.mgw b/src/mesa/Makefile.mgw index e894c6277d1..b90384d04a7 100644 --- a/src/mesa/Makefile.mgw +++ b/src/mesa/Makefile.mgw @@ -200,7 +200,7 @@ ifeq (1,1) x86/glapi_x86.o: x86/glapi_x86.S $(CC) -o $@ $(CFLAGS) -DSTDCALL_API -c $< else -main/dispatch.o: main/dispatch.c +glapi/glapi_dispatch.o: glapi/glapi_dispatch.c $(CC) -o $@ $(CFLAGS) -UUSE_X86_ASM -c $< glapi/glapi.o: glapi/glapi.c $(CC) -o $@ $(CFLAGS) -UUSE_X86_ASM -c $< diff --git a/src/mesa/SConscript b/src/mesa/SConscript index 0726fcb1a7e..0a25dccde56 100644 --- a/src/mesa/SConscript +++ b/src/mesa/SConscript @@ -247,8 +247,8 @@ if env['platform'] != 'winddk': ) glapi_sources = [ - 'main/dispatch.c', 'glapi/glapi.c', + 'glapi/glapi_dispatch.c', 'glapi/glapi_getproc.c', 'glapi/glapi_nop.c', 'glapi/glthread.c', diff --git a/src/mesa/glapi/glapi_dispatch.c b/src/mesa/glapi/glapi_dispatch.c new file mode 100644 index 00000000000..4cb43f45055 --- /dev/null +++ b/src/mesa/glapi/glapi_dispatch.c @@ -0,0 +1,96 @@ +/* + * Mesa 3-D graphics library + * Version: 6.3 + * + * Copyright (C) 1999-2004 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. + */ + + +/** + * \file glapi_dispatch.c + * + * This file generates all the gl* function entrypoints. This code is not + * used if optimized assembly stubs are available (e.g., using x86/glapi_x86.S + * on IA32 or sparc/glapi_sparc.S on SPARC). + * + * \note + * This file is also used to build the client-side libGL that loads DRI-based + * device drivers. At build-time it is symlinked to src/glx. + * + * \author Brian Paul+ */ + +#include "main/glheader.h" +#include "main/compiler.h" +#include "glapi/glapi.h" +#include "glapi/glapitable.h" +#include "glapi/glapidispatch.h" +#include "glapi/glthread.h" + + +#if !(defined(USE_X86_ASM) || defined(USE_X86_64_ASM) || defined(USE_SPARC_ASM)) + +#if defined(WIN32) +#define KEYWORD1 GLAPI +#else +#define KEYWORD1 PUBLIC +#endif + +#define KEYWORD2 GLAPIENTRY + +#if defined(USE_MGL_NAMESPACE) +#define NAME(func) mgl##func +#else +#define NAME(func) gl##func +#endif + +#if 0 /* Use this to log GL calls to stdout (for DEBUG only!) */ + +#define F stdout +#define DISPATCH(FUNC, ARGS, MESSAGE) \ + fprintf MESSAGE; \ + CALL_ ## FUNC(GET_DISPATCH(), ARGS); + +#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ + fprintf MESSAGE; \ + return CALL_ ## FUNC(GET_DISPATCH(), ARGS); + +#else + +#define DISPATCH(FUNC, ARGS, MESSAGE) \ + CALL_ ## FUNC(GET_DISPATCH(), ARGS); + +#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ + return CALL_ ## FUNC(GET_DISPATCH(), ARGS); + +#endif /* logging */ + + +#ifndef GLAPIENTRY +#define GLAPIENTRY +#endif + +#ifdef GLX_INDIRECT_RENDERING +/* those link to libglapi.a should provide the entry points */ +#define _GLAPI_SKIP_PROTO_ENTRY_POINTS +#endif +#include "glapi/glapitemp.h" + +#endif /* USE_X86_ASM */ diff --git a/src/mesa/main/descrip.mms b/src/mesa/main/descrip.mms index e49ec65d42d..70bc2637268 100644 --- a/src/mesa/main/descrip.mms +++ b/src/mesa/main/descrip.mms @@ -38,7 +38,6 @@ SOURCES =accum.c \ debug.c \ depth.c \ depthstencil.c \ - dispatch.c \ dlist.c \ drawpix.c \ enable.c \ @@ -113,7 +112,6 @@ convolve.obj,\ debug.obj,\ depth.obj,\ depthstencil.obj,\ -dispatch.obj,\ dlist.obj,\ drawpix.obj,\ enable.obj,\ @@ -198,7 +196,6 @@ convolve.obj : convolve.c debug.obj : debug.c depth.obj : depth.c depthstencil.obj : depthstencil.c -dispatch.obj : dispatch.c dlist.obj : dlist.c drawpix.obj : drawpix.c enable.obj : enable.c diff --git a/src/mesa/main/dispatch.c b/src/mesa/main/dispatch.c deleted file mode 100644 index b9b726b0017..00000000000 --- a/src/mesa/main/dispatch.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.3 - * - * Copyright (C) 1999-2004 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. - */ - - -/** - * \file dispatch.c - * - * This file generates all the gl* function entrypoints. This code is not - * used if optimized assembly stubs are available (e.g., using x86/glapi_x86.S - * on IA32 or sparc/glapi_sparc.S on SPARC). - * - * \note - * This file is also used to build the client-side libGL that loads DRI-based - * device drivers. At build-time it is symlinked to src/glx. - * - * \author Brian Paul - */ - -#include "main/glheader.h" -#include "main/compiler.h" -#include "glapi/glapi.h" -#include "glapi/glapitable.h" -#include "glapi/glapidispatch.h" -#include "glapi/glthread.h" - - -#if !(defined(USE_X86_ASM) || defined(USE_X86_64_ASM) || defined(USE_SPARC_ASM)) - -#if defined(WIN32) -#define KEYWORD1 GLAPI -#else -#define KEYWORD1 PUBLIC -#endif - -#define KEYWORD2 GLAPIENTRY - -#if defined(USE_MGL_NAMESPACE) -#define NAME(func) mgl##func -#else -#define NAME(func) gl##func -#endif - -#if 0 /* Use this to log GL calls to stdout (for DEBUG only!) */ - -#define F stdout -#define DISPATCH(FUNC, ARGS, MESSAGE) \ - fprintf MESSAGE; \ - CALL_ ## FUNC(GET_DISPATCH(), ARGS); - -#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ - fprintf MESSAGE; \ - return CALL_ ## FUNC(GET_DISPATCH(), ARGS); - -#else - -#define DISPATCH(FUNC, ARGS, MESSAGE) \ - CALL_ ## FUNC(GET_DISPATCH(), ARGS); - -#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ - return CALL_ ## FUNC(GET_DISPATCH(), ARGS); - -#endif /* logging */ - - -#ifndef GLAPIENTRY -#define GLAPIENTRY -#endif - -#ifdef GLX_INDIRECT_RENDERING -/* those link to libglapi.a should provide the entry points */ -#define _GLAPI_SKIP_PROTO_ENTRY_POINTS -#endif -#include "glapi/glapitemp.h" - -#endif /* USE_X86_ASM */ diff --git a/src/mesa/sources.mak b/src/mesa/sources.mak index 354331955ac..9f2e4e51575 100644 --- a/src/mesa/sources.mak +++ b/src/mesa/sources.mak @@ -86,8 +86,8 @@ MAIN_SOURCES = \ main/vtxfmt.c GLAPI_SOURCES = \ - main/dispatch.c \ glapi/glapi.c \ + glapi/glapi_dispatch.c \ glapi/glapi_getproc.c \ glapi/glapi_nop.c \ glapi/glthread.c diff --git a/windows/VC7/mesa/mesa/mesa.vcproj b/windows/VC7/mesa/mesa/mesa.vcproj index caee6c0ca6e..623e001c74b 100644 --- a/windows/VC7/mesa/mesa/mesa.vcproj +++ b/windows/VC7/mesa/mesa/mesa.vcproj @@ -181,9 +181,6 @@ - - @@ -226,6 +223,9 @@ + + diff --git a/windows/VC8/mesa/mesa/mesa.vcproj b/windows/VC8/mesa/mesa/mesa.vcproj index 15ad2293280..87957469168 100644 --- a/windows/VC8/mesa/mesa/mesa.vcproj +++ b/windows/VC8/mesa/mesa/mesa.vcproj @@ -422,10 +422,6 @@ RelativePath="..\..\..\..\src\mesa\main\depthstencil.c" > - - @@ -494,6 +490,10 @@ RelativePath="..\..\..\..\src\mesa\glapi\glapi.c" > ++ -- cgit v1.2.3