blob: 946f39d1f983c26a826d5aa350be03489adac30c [file] [log] [blame]
Brian Paulfbd8f211999-11-11 01:22:25 +00001/*
2 * Mesa 3-D graphics library
Brian Paul11364122004-11-27 03:47:14 +00003 * Version: 6.3
Brian Paulfbd8f211999-11-11 01:22:25 +00004 *
Brian Paul11364122004-11-27 03:47:14 +00005 * Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
Brian Paulfbd8f211999-11-11 01:22:25 +00006 *
7 * Permission is hereby granted, free of charge, to any person obtaining a
8 * copy of this software and associated documentation files (the "Software"),
9 * to deal in the Software without restriction, including without limitation
10 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 * and/or sell copies of the Software, and to permit persons to whom the
12 * Software is furnished to do so, subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included
15 * in all copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 */
24
25
Brian Paula02fb6a2000-02-02 19:34:08 +000026/*
Brian Paul11364122004-11-27 03:47:14 +000027 * This file generates all the gl* function entrypoints.
Brian Paula02fb6a2000-02-02 19:34:08 +000028 * But if we're using X86-optimized dispatch (X86/glapi_x86.S) then
Brian Paul471a7742001-12-04 23:43:31 +000029 * we don't use this code.
Brian Paula02fb6a2000-02-02 19:34:08 +000030 *
31 * NOTE: This file should _not_ be used when compiling Mesa for a DRI-
32 * based device driver.
33 *
34 */
35
36
Brian Paulfbd8f211999-11-11 01:22:25 +000037#include "glheader.h"
Brian Paul59577b51999-11-27 21:40:28 +000038#include "glapi.h"
Brian Paul784d7602000-02-02 19:18:19 +000039#include "glapitable.h"
Jouk Jansenef68e7b2001-01-02 10:07:33 +000040#include "glthread.h"
Brian Paul3c634522002-10-24 23:57:19 +000041
Brian Paulfbd8f211999-11-11 01:22:25 +000042
Kendall Bennettc40d1dd2003-10-21 22:22:17 +000043#if !(defined(USE_X86_ASM) || defined(USE_SPARC_ASM))
Brian Paul59577b51999-11-27 21:40:28 +000044
Brian Paul04120f62001-09-14 22:19:18 +000045#if defined(WIN32)
46#define KEYWORD1 GLAPI
47#else
Brian Paul819b5192004-11-27 17:30:41 +000048#define KEYWORD1 PUBLIC
Brian Paul04120f62001-09-14 22:19:18 +000049#endif
50
Brian Paul01c07132000-01-28 19:02:57 +000051#define KEYWORD2 GLAPIENTRY
Brian Paul04120f62001-09-14 22:19:18 +000052
Brian Paul3c257e12001-03-28 17:19:58 +000053#if defined(USE_MGL_NAMESPACE)
Brian Paul01c07132000-01-28 19:02:57 +000054#define NAME(func) mgl##func
55#else
56#define NAME(func) gl##func
57#endif
58
Brian Paul4e9676f2002-06-29 19:48:15 +000059#if 0 /* Use this to log GL calls to stdout (for DEBUG only!) */
Brian Paul471a7742001-12-04 23:43:31 +000060
61#define F stdout
Brian Paul3c257e12001-03-28 17:19:58 +000062#define DISPATCH(FUNC, ARGS, MESSAGE) \
Brian Paulb15a3b42001-12-15 16:42:59 +000063 fprintf MESSAGE; \
Ian Romanickc1d455f2004-05-27 00:03:53 +000064 GL_CALL(FUNC) ARGS;
Brian Paulb15a3b42001-12-15 16:42:59 +000065
66#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
67 fprintf MESSAGE; \
Ian Romanickc1d455f2004-05-27 00:03:53 +000068 return GL_CALL(FUNC) ARGS;
Brian Paul471a7742001-12-04 23:43:31 +000069
70#else
71
72#define DISPATCH(FUNC, ARGS, MESSAGE) \
Ian Romanickc1d455f2004-05-27 00:03:53 +000073 GL_CALL(FUNC) ARGS;
Brian Paul471a7742001-12-04 23:43:31 +000074
Brian Paul3c257e12001-03-28 17:19:58 +000075#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
Ian Romanickc1d455f2004-05-27 00:03:53 +000076 return GL_CALL(FUNC) ARGS;
Brian Paul01c07132000-01-28 19:02:57 +000077
Brian Paulb15a3b42001-12-15 16:42:59 +000078#endif /* logging */
79
Brian Paul01c07132000-01-28 19:02:57 +000080
81#ifndef GLAPIENTRY
82#define GLAPIENTRY
83#endif
84
85#include "glapitemp.h"
Brian Paul3c257e12001-03-28 17:19:58 +000086
87
88#endif /* USE_X86_ASM */