7fd59977 |
1 | /* |
2 | * Fonction |
3 | * ~~~~~~~~ |
4 | * Gestion des extensions sous OpenGL |
5 | * |
6 | * |
7 | * Attention: |
8 | * ~~~~~~~~~~~ |
9 | * Ce package a ete teste sur SGI, OSF, SUN, HP et WNT. |
10 | * |
11 | * Remarques: |
12 | * ~~~~~~~~~~~ |
13 | * Le InitExtensionGLX permet d'initialiser le display. Ceci est necessaire |
14 | * pour travailler sur les extensions de GLX. On ne peut appeler QueryExtensionGLX |
15 | * si on n'a pas fait cette manip. |
16 | * Par contre QueryExtension gere les extensions a GL, on n'a pas besoin du |
17 | * Display. |
18 | * |
19 | * Pour l'instant on ne gere pas les extensions a GLU et a WGL. |
20 | * |
21 | * Historique des modifications |
22 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
23 | * 14-10-97: FMN ; Creation |
24 | * 23-10-97: FMN ; Ajout gestion glx |
25 | * 19-11-97: FMN ; Ajout GetCurrentDisplay |
26 | * 04-12-97: FMN ; Ajout supportsOneDotOne |
27 | * 19-06-98: FMN ; Portage Optimizer (C++) |
28 | */ |
29 | /*----------------------------------------------------------------------*/ |
30 | |
31 | #ifndef _OPENGL_EXTENSION_H__ |
32 | #define _OPENGL_EXTENSION_H__ |
33 | |
34 | /*----------------------------------------------------------------------*/ |
35 | /* |
36 | * Includes |
37 | */ |
38 | |
39 | #if defined(WNT) && !defined(HAVE_NO_DLL) |
40 | # ifdef __OpenGl_DLL |
41 | # define EXPORT __declspec(dllexport) |
42 | # else |
43 | # define EXPORT |
44 | # endif /* DLL */ |
45 | # ifdef STRICT |
46 | # undef STRICT |
47 | # endif |
48 | # define STRICT |
49 | # include <windows.h> |
50 | #else |
51 | # define EXPORT |
52 | #endif /* WNT */ |
53 | |
54 | #include <GL/gl.h> |
55 | #include <GL/glu.h> |
56 | |
57 | #ifdef WNT |
58 | # include <windows.h> |
59 | # ifndef Display |
60 | # define Display char |
61 | # endif /* Display */ |
62 | #else |
63 | # include <GL/glx.h> |
64 | #endif /* WNT */ |
65 | |
66 | |
67 | #ifdef GL_VERSION_1_1 |
68 | #define GL_EXT_vertex_array 1 |
69 | #define GL_EXT_polygon_offset 1 |
70 | #define GL_EXT_blend_logic_op 1 |
71 | #define GL_EXT_texture 1 |
72 | #define GL_EXT_copy_texture 1 |
73 | #define GL_EXT_subtexture 1 |
74 | #define GL_EXT_texture_object 1 |
75 | #endif /* GL_VERSION_1_1 */ |
76 | |
77 | |
78 | #ifndef GLU_VERSION_1_2 |
79 | #define GLUtesselator GLUtriangulatorObj |
80 | #define GLU_TESS_BEGIN 100100 |
81 | #define GLU_TESS_VERTEX 100101 |
82 | #define GLU_TESS_END 100102 |
83 | #define GLU_TESS_ERROR 100103 |
84 | #define GLU_TESS_COMBINE 100105 |
85 | #endif |
86 | |
87 | #define INVALID_EXT_FUNCTION_PTR 0xffffffff |
88 | /* |
89 | * Contournement temporaire glPolygoneOffsetEXT |
90 | * La syntaxe change entre OpenGL 1.0 et OpenGL 1.1 |
91 | */ |
92 | |
93 | #if defined (__sun) || defined (__osf__) || defined (__hp) |
94 | #define glPolygonOffsetEXT(a, b) glPolygonOffset(a, b) |
95 | #endif |
96 | #if defined (__sun) |
97 | #define GL_POLYGON_OFFSET_EXT GL_POLYGON_OFFSET_FILL |
98 | #endif |
99 | |
100 | #ifdef WNT |
101 | #define glPolygonOffsetEXT(a, b) glPolygonOffset(a, b) |
102 | #define GL_POLYGON_OFFSET_EXT GL_POLYGON_OFFSET_FILL |
103 | #endif /* WNT */ |
104 | |
105 | #if defined (__sun) || defined (__osf__) || defined (__hp) || defined (__sgi) |
106 | #else |
107 | typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); |
108 | #endif |
109 | |
110 | /*----------------------------------------------------------------------*/ |
111 | /* |
112 | * Prototypes |
113 | */ |
114 | |
115 | /* |
116 | * Points d'entree Public du module |
117 | */ |
118 | |
119 | |
120 | extern GLboolean InitExtensionGLX(Display *display); |
121 | extern GLboolean QueryExtensionGLX(char *extName); |
122 | |
123 | extern GLboolean QueryExtension(char *extName); |
124 | |
125 | extern Display *GetCurrentDisplay(void); |
126 | |
127 | extern GLboolean supportsOneDotOne(void); |
128 | |
129 | extern GLboolean CheckExtension(char *extName, const char *extString); |
130 | |
131 | |
132 | /* Methods defined in OpenGl_GraphicDriver.cxx */ |
133 | |
134 | EXPORT GLboolean OpenGl_QueryExtensionGLX (const char *extName); |
135 | |
136 | EXPORT GLboolean OpenGl_QueryExtension (const char *extName); |
137 | |
138 | /*----------------------------------------------------------------------*/ |
139 | |
140 | #endif /* _OPENGL_EXTENSION_H__ */ |