aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/wgl/stw_wgl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/state_trackers/wgl/stw_wgl.c')
-rw-r--r--src/gallium/state_trackers/wgl/stw_wgl.c400
1 files changed, 0 insertions, 400 deletions
diff --git a/src/gallium/state_trackers/wgl/stw_wgl.c b/src/gallium/state_trackers/wgl/stw_wgl.c
deleted file mode 100644
index 9103c750ea9..00000000000
--- a/src/gallium/state_trackers/wgl/stw_wgl.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2008 VMware, Inc.
- * 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, sub license, 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 (including the
- * next paragraph) 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 NON-INFRINGEMENT.
- * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS 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
- *
- * Fake WGL API implementation.
- *
- * These functions implement the WGL API, on top of the ICD DDI, so that the
- * resulting DLL can be used as a drop-in replacement for the system's
- * opengl32.dll.
- *
- * These functions never get called for ICD drivers, which use exclusively the
- * ICD DDI, i.e., the Drv* entrypoints.
- */
-
-#include <windows.h>
-#include <GL/gl.h>
-
-#include "util/u_debug.h"
-#include "gldrv.h"
-#include "stw_context.h"
-#include "stw_pixelformat.h"
-#include "stw_wgl.h"
-#include "stw_ext_context.h"
-
-
-static void
-overrideOpenGL32EntryPoints(void);
-
-WINGDIAPI BOOL APIENTRY
-wglCopyContext(
- HGLRC hglrcSrc,
- HGLRC hglrcDst,
- UINT mask )
-{
- return DrvCopyContext( (DHGLRC)(UINT_PTR)hglrcSrc,
- (DHGLRC)(UINT_PTR)hglrcDst,
- mask );
-}
-
-WINGDIAPI HGLRC APIENTRY
-wglCreateContext(
- HDC hdc )
-{
- overrideOpenGL32EntryPoints();
- return (HGLRC)(UINT_PTR)DrvCreateContext(hdc);
-}
-
-WINGDIAPI HGLRC APIENTRY
-wglCreateLayerContext(
- HDC hdc,
- int iLayerPlane )
-{
- overrideOpenGL32EntryPoints();
- return (HGLRC)(UINT_PTR)DrvCreateLayerContext( hdc, iLayerPlane );
-}
-
-WINGDIAPI BOOL APIENTRY
-wglDeleteContext(
- HGLRC hglrc )
-{
- return DrvDeleteContext((DHGLRC)(UINT_PTR)hglrc );
-}
-
-
-WINGDIAPI HGLRC APIENTRY
-wglGetCurrentContext( VOID )
-{
- return (HGLRC)(UINT_PTR)stw_get_current_context();
-}
-
-WINGDIAPI HDC APIENTRY
-wglGetCurrentDC( VOID )
-{
- return stw_get_current_dc();
-}
-
-WINGDIAPI HDC APIENTRY
-wglGetCurrentReadDCARB( VOID )
-{
- return stw_get_current_read_dc();
-}
-
-
-WINGDIAPI BOOL APIENTRY
-wglMakeCurrent(
- HDC hdc,
- HGLRC hglrc )
-{
- return DrvSetContext( hdc, (DHGLRC)(UINT_PTR)hglrc, NULL ) ? TRUE : FALSE;
-}
-
-
-WINGDIAPI BOOL APIENTRY
-wglSwapBuffers(
- HDC hdc )
-{
- return DrvSwapBuffers( hdc );
-}
-
-
-WINGDIAPI DWORD WINAPI
-wglSwapMultipleBuffers(UINT n,
- CONST WGLSWAP *ps)
-{
- UINT i;
-
- for (i =0; i < n; ++i)
- wglSwapBuffers(ps->hdc);
-
- return 0;
-}
-
-
-WINGDIAPI BOOL APIENTRY
-wglSwapLayerBuffers(
- HDC hdc,
- UINT fuPlanes )
-{
- return DrvSwapLayerBuffers( hdc, fuPlanes );
-}
-
-WINGDIAPI PROC APIENTRY
-wglGetProcAddress(
- LPCSTR lpszProc )
-{
- return DrvGetProcAddress( lpszProc );
-}
-
-
-WINGDIAPI int APIENTRY
-wglChoosePixelFormat(
- HDC hdc,
- CONST PIXELFORMATDESCRIPTOR *ppfd )
-{
- if (ppfd->nSize != sizeof( PIXELFORMATDESCRIPTOR ) || ppfd->nVersion != 1)
- return 0;
- if (ppfd->iPixelType != PFD_TYPE_RGBA)
- return 0;
- if (!(ppfd->dwFlags & PFD_DRAW_TO_WINDOW))
- return 0;
- if (!(ppfd->dwFlags & PFD_SUPPORT_OPENGL))
- return 0;
- if (ppfd->dwFlags & PFD_DRAW_TO_BITMAP)
- return 0;
- if (ppfd->dwFlags & PFD_SUPPORT_GDI)
- return 0;
- if (!(ppfd->dwFlags & PFD_STEREO_DONTCARE) && (ppfd->dwFlags & PFD_STEREO))
- return 0;
-
- return stw_pixelformat_choose( hdc, ppfd );
-}
-
-WINGDIAPI int APIENTRY
-wglDescribePixelFormat(
- HDC hdc,
- int iPixelFormat,
- UINT nBytes,
- LPPIXELFORMATDESCRIPTOR ppfd )
-{
- return DrvDescribePixelFormat( hdc, iPixelFormat, nBytes, ppfd );
-}
-
-WINGDIAPI int APIENTRY
-wglGetPixelFormat(
- HDC hdc )
-{
- return stw_pixelformat_get( hdc );
-}
-
-WINGDIAPI BOOL APIENTRY
-wglSetPixelFormat(
- HDC hdc,
- int iPixelFormat,
- const PIXELFORMATDESCRIPTOR *ppfd )
-{
- /* SetPixelFormat (hence wglSetPixelFormat) must not touch ppfd, per
- * http://msdn.microsoft.com/en-us/library/dd369049(v=vs.85).aspx
- */
- (void) ppfd;
-
- return DrvSetPixelFormat( hdc, iPixelFormat );
-}
-
-
-WINGDIAPI BOOL APIENTRY
-wglUseFontBitmapsA(
- HDC hdc,
- DWORD first,
- DWORD count,
- DWORD listBase )
-{
- return wglUseFontBitmapsW(hdc, first, count, listBase);
-}
-
-WINGDIAPI BOOL APIENTRY
-wglShareLists(
- HGLRC hglrc1,
- HGLRC hglrc2 )
-{
- return DrvShareLists((DHGLRC)(UINT_PTR)hglrc1,
- (DHGLRC)(UINT_PTR)hglrc2);
-}
-
-WINGDIAPI BOOL APIENTRY
-wglUseFontBitmapsW(
- HDC hdc,
- DWORD first,
- DWORD count,
- DWORD listBase )
-{
- GLYPHMETRICS gm;
- MAT2 tra;
- FIXED one, minus_one, zero;
- void *buffer = NULL;
- BOOL result = TRUE;
-
- one.value = 1;
- one.fract = 0;
- minus_one.value = -1;
- minus_one.fract = 0;
- zero.value = 0;
- zero.fract = 0;
-
- tra.eM11 = one;
- tra.eM22 = minus_one;
- tra.eM12 = tra.eM21 = zero;
-
- for (int i = 0; i < count; i++) {
- DWORD size = GetGlyphOutline(hdc, first + i, GGO_BITMAP, &gm, 0,
- NULL, &tra);
-
- glNewList(listBase + i, GL_COMPILE);
-
- if (size != GDI_ERROR) {
- if (size == 0) {
- glBitmap(0, 0, (GLfloat)-gm.gmptGlyphOrigin.x,
- (GLfloat)gm.gmptGlyphOrigin.y,
- (GLfloat)gm.gmCellIncX,
- (GLfloat)gm.gmCellIncY, NULL);
- }
- else {
- buffer = realloc(buffer, size);
- size = GetGlyphOutline(hdc, first + i, GGO_BITMAP, &gm,
- size, buffer, &tra);
-
- glBitmap(gm.gmBlackBoxX, gm.gmBlackBoxY,
- -gm.gmptGlyphOrigin.x, gm.gmptGlyphOrigin.y,
- gm.gmCellIncX, gm.gmCellIncY, buffer);
- }
- }
- else {
- result = FALSE;
- }
-
- glEndList();
- }
-
- free(buffer);
-
- return result;
-}
-
-WINGDIAPI BOOL APIENTRY
-wglUseFontOutlinesA(
- HDC hdc,
- DWORD first,
- DWORD count,
- DWORD listBase,
- FLOAT deviation,
- FLOAT extrusion,
- int format,
- LPGLYPHMETRICSFLOAT lpgmf )
-{
- (void) hdc;
- (void) first;
- (void) count;
- (void) listBase;
- (void) deviation;
- (void) extrusion;
- (void) format;
- (void) lpgmf;
-
- assert( 0 );
-
- return FALSE;
-}
-
-WINGDIAPI BOOL APIENTRY
-wglUseFontOutlinesW(
- HDC hdc,
- DWORD first,
- DWORD count,
- DWORD listBase,
- FLOAT deviation,
- FLOAT extrusion,
- int format,
- LPGLYPHMETRICSFLOAT lpgmf )
-{
- (void) hdc;
- (void) first;
- (void) count;
- (void) listBase;
- (void) deviation;
- (void) extrusion;
- (void) format;
- (void) lpgmf;
-
- assert( 0 );
-
- return FALSE;
-}
-
-WINGDIAPI BOOL APIENTRY
-wglDescribeLayerPlane(
- HDC hdc,
- int iPixelFormat,
- int iLayerPlane,
- UINT nBytes,
- LPLAYERPLANEDESCRIPTOR plpd )
-{
- return DrvDescribeLayerPlane(hdc, iPixelFormat, iLayerPlane, nBytes, plpd);
-}
-
-WINGDIAPI int APIENTRY
-wglSetLayerPaletteEntries(
- HDC hdc,
- int iLayerPlane,
- int iStart,
- int cEntries,
- CONST COLORREF *pcr )
-{
- return DrvSetLayerPaletteEntries(hdc, iLayerPlane, iStart, cEntries, pcr);
-}
-
-WINGDIAPI int APIENTRY
-wglGetLayerPaletteEntries(
- HDC hdc,
- int iLayerPlane,
- int iStart,
- int cEntries,
- COLORREF *pcr )
-{
- return DrvGetLayerPaletteEntries(hdc, iLayerPlane, iStart, cEntries, pcr);
-}
-
-WINGDIAPI BOOL APIENTRY
-wglRealizeLayerPalette(
- HDC hdc,
- int iLayerPlane,
- BOOL bRealize )
-{
- (void) hdc;
- (void) iLayerPlane;
- (void) bRealize;
-
- assert( 0 );
-
- return FALSE;
-}
-
-
-/* When this library is used as a opengl32.dll drop-in replacement, ensure we
- * use the wglCreate/Destroy entrypoints above, and not the true opengl32.dll,
- * which could happen if this library's name is not opengl32.dll exactly.
- *
- * For example, Qt 5.4 bundles this as opengl32sw.dll:
- * https://blog.qt.io/blog/2014/11/27/qt-weekly-21-dynamic-opengl-implementation-loading-in-qt-5-4/
- */
-static void
-overrideOpenGL32EntryPoints(void)
-{
- wglCreateContext_func = &wglCreateContext;
- wglDeleteContext_func = &wglDeleteContext;
-}