1474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org/* 2474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * Mesa 3-D graphics library 3474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * Version: 6.3 4474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * 5474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. 6474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * 7474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * Permission is hereby granted, free of charge, to any person obtaining a 8474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * copy of this software and associated documentation files (the "Software"), 9474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * to deal in the Software without restriction, including without limitation 10474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * the rights to use, copy, modify, merge, publish, distribute, sublicense, 11474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * and/or sell copies of the Software, and to permit persons to whom the 12474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * Software is furnished to do so, subject to the following conditions: 13474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * 14474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * The above copyright notice and this permission notice shall be included 15474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * in all copies or substantial portions of the Software. 16167514562bbce1eb0566271d6cb41d90d2b5ffa0hclam@chromium.org * 17474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 215c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org */ 24474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 25474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 26474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org/** 27474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * \file glapi_dispatch.c 28ed759d81a39febed3a8a395386639d54307504aagrunell@chromium.org * 29474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * This file generates all the gl* function entrypoints. This code is not 30474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * used if optimized assembly stubs are available (e.g., using 31474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * glapi/glapi_x86.S on IA32 or glapi/glapi_sparc.S on SPARC). 325c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org * 335c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org * \note 345c1d3b27608a3f3f6028c069b9bf066a4de474b6hclam@chromium.org * This file is also used to build the client-side libGL that loads DRI-based 35474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * device drivers. At build-time it is symlinked to src/glx. 36474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * 37474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org * \author Brian Paul <brian@precisioninsight.com> 38474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org */ 39474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 40474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#include "glapi/glapi_priv.h" 41474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#include "glapi/glapitable.h" 42474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 43474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 44474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#if !(defined(USE_X86_ASM) || defined(USE_X86_64_ASM) || defined(USE_SPARC_ASM)) 45474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 46d348b8d765c019ee7250075d663a83db00c65c08tomfinegan@chromium.org#if defined(WIN32) 47474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define KEYWORD1 GLAPI 48474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#else 49474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define KEYWORD1 PUBLIC 50474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#endif 51474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 52474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define KEYWORD2 GLAPIENTRY 53474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 54474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#if defined(USE_MGL_NAMESPACE) 55474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define NAME(func) mgl##func 56474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#else 57474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define NAME(func) gl##func 58474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#endif 59474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 60167514562bbce1eb0566271d6cb41d90d2b5ffa0hclam@chromium.org#if 0 /* Use this to log GL calls to stdout (for DEBUG only!) */ 61167514562bbce1eb0566271d6cb41d90d2b5ffa0hclam@chromium.org 62167514562bbce1eb0566271d6cb41d90d2b5ffa0hclam@chromium.org#define F stdout 63474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define DISPATCH(FUNC, ARGS, MESSAGE) \ 64474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org fprintf MESSAGE; \ 65474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org GET_DISPATCH()->FUNC ARGS 66474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 67474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ 68474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org fprintf MESSAGE; \ 69474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org return GET_DISPATCH()->FUNC ARGS 70474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 71474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#else 72474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 73474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define DISPATCH(FUNC, ARGS, MESSAGE) \ 74474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org GET_DISPATCH()->FUNC ARGS 75474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 76474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \ 77474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org return GET_DISPATCH()->FUNC ARGS 78474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 79474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#endif /* logging */ 80474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 81474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 82474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#ifndef GLAPIENTRY 83474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define GLAPIENTRY 84474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#endif 85474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 86474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#ifdef GLX_INDIRECT_RENDERING 87474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org/* those link to libglapi.a should provide the entry points */ 88474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#define _GLAPI_SKIP_PROTO_ENTRY_POINTS 89474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#endif 90474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#include "glapi/glapitemp.h" 91474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org 92474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org#endif /* USE_X86_ASM */ 93474eb7536515fb785e925cc9375d22817c416851hclam@chromium.org