wgl: Flatten the source tree.
[mesa.git] / src / gallium / state_trackers / wgl / stw_wgl.c
1 /**************************************************************************
2 *
3 * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
4 * All Rights Reserved.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
13 *
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
16 * of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 *
26 **************************************************************************/
27
28 #include <windows.h>
29
30 #include "util/u_debug.h"
31 #include "stw_public.h"
32 #include "stw_wgl.h"
33
34
35 WINGDIAPI BOOL APIENTRY
36 wglCopyContext(
37 HGLRC hglrcSrc,
38 HGLRC hglrcDst,
39 UINT mask )
40 {
41 return stw_copy_context( (UINT_PTR)hglrcSrc,
42 (UINT_PTR)hglrcDst,
43 mask );
44 }
45
46 WINGDIAPI HGLRC APIENTRY
47 wglCreateContext(
48 HDC hdc )
49 {
50 return wglCreateLayerContext(hdc, 0);
51 }
52
53 WINGDIAPI HGLRC APIENTRY
54 wglCreateLayerContext(
55 HDC hdc,
56 int iLayerPlane )
57 {
58 return (HGLRC) stw_create_layer_context( hdc, iLayerPlane );
59 }
60
61 WINGDIAPI BOOL APIENTRY
62 wglDeleteContext(
63 HGLRC hglrc )
64 {
65 return stw_delete_context( (UINT_PTR)hglrc );
66 }
67
68
69 WINGDIAPI HGLRC APIENTRY
70 wglGetCurrentContext( VOID )
71 {
72 return (HGLRC)stw_get_current_context();
73 }
74
75 WINGDIAPI HDC APIENTRY
76 wglGetCurrentDC( VOID )
77 {
78 return stw_get_current_dc();
79 }
80
81 WINGDIAPI BOOL APIENTRY
82 wglMakeCurrent(
83 HDC hdc,
84 HGLRC hglrc )
85 {
86 return stw_make_current( hdc, (UINT_PTR)hglrc );
87 }
88
89
90 WINGDIAPI BOOL APIENTRY
91 wglSwapBuffers(
92 HDC hdc )
93 {
94 return stw_swap_buffers( hdc );
95 }
96
97
98 WINGDIAPI BOOL APIENTRY
99 wglSwapLayerBuffers(
100 HDC hdc,
101 UINT fuPlanes )
102 {
103 return stw_swap_layer_buffers( hdc, fuPlanes );
104 }
105
106 WINGDIAPI PROC APIENTRY
107 wglGetProcAddress(
108 LPCSTR lpszProc )
109 {
110 return stw_get_proc_address( lpszProc );
111 }
112
113
114 WINGDIAPI int APIENTRY
115 wglChoosePixelFormat(
116 HDC hdc,
117 CONST PIXELFORMATDESCRIPTOR *ppfd )
118 {
119 if (ppfd->nSize != sizeof( PIXELFORMATDESCRIPTOR ) || ppfd->nVersion != 1)
120 return 0;
121 if (ppfd->iPixelType != PFD_TYPE_RGBA)
122 return 0;
123 if (!(ppfd->dwFlags & PFD_DRAW_TO_WINDOW))
124 return 0;
125 if (!(ppfd->dwFlags & PFD_SUPPORT_OPENGL))
126 return 0;
127 if (ppfd->dwFlags & PFD_DRAW_TO_BITMAP)
128 return 0;
129 if (ppfd->dwFlags & PFD_SUPPORT_GDI)
130 return 0;
131 if (!(ppfd->dwFlags & PFD_STEREO_DONTCARE) && (ppfd->dwFlags & PFD_STEREO))
132 return 0;
133
134 return stw_pixelformat_choose( hdc, ppfd );
135 }
136
137 WINGDIAPI int APIENTRY
138 wglDescribePixelFormat(
139 HDC hdc,
140 int iPixelFormat,
141 UINT nBytes,
142 LPPIXELFORMATDESCRIPTOR ppfd )
143 {
144 return stw_pixelformat_describe( hdc, iPixelFormat, nBytes, ppfd );
145 }
146
147 WINGDIAPI int APIENTRY
148 wglGetPixelFormat(
149 HDC hdc )
150 {
151 return stw_pixelformat_get( hdc );
152 }
153
154 WINGDIAPI BOOL APIENTRY
155 wglSetPixelFormat(
156 HDC hdc,
157 int iPixelFormat,
158 const PIXELFORMATDESCRIPTOR *ppfd )
159 {
160 if (ppfd->nSize != sizeof( PIXELFORMATDESCRIPTOR ))
161 return FALSE;
162
163 return stw_pixelformat_set( hdc, iPixelFormat );
164 }
165
166
167 WINGDIAPI BOOL APIENTRY
168 wglUseFontBitmapsA(
169 HDC hdc,
170 DWORD first,
171 DWORD count,
172 DWORD listBase )
173 {
174 (void) hdc;
175 (void) first;
176 (void) count;
177 (void) listBase;
178
179 assert( 0 );
180
181 return FALSE;
182 }
183
184 WINGDIAPI BOOL APIENTRY
185 wglShareLists(
186 HGLRC hglrc1,
187 HGLRC hglrc2 )
188 {
189 return stw_share_lists( (UINT_PTR)hglrc1, (UINT_PTR)hglrc2);;
190 }
191
192 WINGDIAPI BOOL APIENTRY
193 wglUseFontBitmapsW(
194 HDC hdc,
195 DWORD first,
196 DWORD count,
197 DWORD listBase )
198 {
199 (void) hdc;
200 (void) first;
201 (void) count;
202 (void) listBase;
203
204 assert( 0 );
205
206 return FALSE;
207 }
208
209 WINGDIAPI BOOL APIENTRY
210 wglUseFontOutlinesA(
211 HDC hdc,
212 DWORD first,
213 DWORD count,
214 DWORD listBase,
215 FLOAT deviation,
216 FLOAT extrusion,
217 int format,
218 LPGLYPHMETRICSFLOAT lpgmf )
219 {
220 (void) hdc;
221 (void) first;
222 (void) count;
223 (void) listBase;
224 (void) deviation;
225 (void) extrusion;
226 (void) format;
227 (void) lpgmf;
228
229 assert( 0 );
230
231 return FALSE;
232 }
233
234 WINGDIAPI BOOL APIENTRY
235 wglUseFontOutlinesW(
236 HDC hdc,
237 DWORD first,
238 DWORD count,
239 DWORD listBase,
240 FLOAT deviation,
241 FLOAT extrusion,
242 int format,
243 LPGLYPHMETRICSFLOAT lpgmf )
244 {
245 (void) hdc;
246 (void) first;
247 (void) count;
248 (void) listBase;
249 (void) deviation;
250 (void) extrusion;
251 (void) format;
252 (void) lpgmf;
253
254 assert( 0 );
255
256 return FALSE;
257 }
258
259 WINGDIAPI BOOL APIENTRY
260 wglDescribeLayerPlane(
261 HDC hdc,
262 int iPixelFormat,
263 int iLayerPlane,
264 UINT nBytes,
265 LPLAYERPLANEDESCRIPTOR plpd )
266 {
267 (void) hdc;
268 (void) iPixelFormat;
269 (void) iLayerPlane;
270 (void) nBytes;
271 (void) plpd;
272
273 assert( 0 );
274
275 return FALSE;
276 }
277
278 WINGDIAPI int APIENTRY
279 wglSetLayerPaletteEntries(
280 HDC hdc,
281 int iLayerPlane,
282 int iStart,
283 int cEntries,
284 CONST COLORREF *pcr )
285 {
286 (void) hdc;
287 (void) iLayerPlane;
288 (void) iStart;
289 (void) cEntries;
290 (void) pcr;
291
292 assert( 0 );
293
294 return 0;
295 }
296
297 WINGDIAPI int APIENTRY
298 wglGetLayerPaletteEntries(
299 HDC hdc,
300 int iLayerPlane,
301 int iStart,
302 int cEntries,
303 COLORREF *pcr )
304 {
305 (void) hdc;
306 (void) iLayerPlane;
307 (void) iStart;
308 (void) cEntries;
309 (void) pcr;
310
311 assert( 0 );
312
313 return 0;
314 }
315
316 WINGDIAPI BOOL APIENTRY
317 wglRealizeLayerPalette(
318 HDC hdc,
319 int iLayerPlane,
320 BOOL bRealize )
321 {
322 (void) hdc;
323 (void) iLayerPlane;
324 (void) bRealize;
325
326 assert( 0 );
327
328 return FALSE;
329 }