stw: move pixelformat_describe to shared
authorKeith Whitwell <keith@tungstengraphics.com>
Wed, 28 Jan 2009 13:35:18 +0000 (13:35 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Wed, 28 Jan 2009 13:35:49 +0000 (13:35 +0000)
src/gallium/state_trackers/wgl/icd/stw_icd.c
src/gallium/state_trackers/wgl/shared/stw_context.c
src/gallium/state_trackers/wgl/shared/stw_pixelformat.h
src/gallium/state_trackers/wgl/wgl/stw_wgl_pixelformat.c

index 94c6dfe10818c5158fcedd5e991de3ef0a7952f6..5504ac19b10302f9f4c37975625a56f13491e0d8 100644 (file)
@@ -34,6 +34,7 @@
 
 #include "shared/stw_device.h"
 #include "shared/stw_context.h"
+#include "shared/stw_pixelformat.h"
 #include "icd/stw_icd.h"
 #include "wgl/stw_wgl.h"
 
@@ -135,7 +136,7 @@ DrvDescribePixelFormat(
 {
    LONG r;
 
-   r = wglDescribePixelFormat( hdc, iPixelFormat, cjpfd, ppfd );
+   r = stw_pixelformat_describe( hdc, iPixelFormat, cjpfd, ppfd );
 
    debug_printf( "%s( 0x%p, %d, %u, 0x%p ) = %d\n",
                  __FUNCTION__, hdc, iPixelFormat, cjpfd, ppfd, r );
@@ -596,7 +597,8 @@ DrvSetPixelFormat(
    PIXELFORMATDESCRIPTOR pfd;
    BOOL r;
 
-   wglDescribePixelFormat( hdc, iPixelFormat, sizeof( pfd ), &pfd );
+   stw_pixelformat_describe( hdc, iPixelFormat, sizeof( pfd ), &pfd );
+
    r = wglSetPixelFormat( hdc, iPixelFormat, &pfd );
 
    debug_printf( "%s( 0x%p, %d ) = %s\n", __FUNCTION__, hdc, iPixelFormat, r ? "TRUE" : "FALSE" );
index b54e084230f53af2444d1d82269a7698ed8bad41..e89438557de78b81e5d3556736a702e56b2dc5e1 100644 (file)
@@ -286,3 +286,60 @@ wgl_context_from_hdc(
    }
    return NULL;
 }
+
+
+
+int
+stw_pixelformat_describe(
+   HDC hdc,
+   int iPixelFormat,
+   UINT nBytes,
+   LPPIXELFORMATDESCRIPTOR ppfd )
+{
+   uint count;
+   uint index;
+   const struct pixelformat_info *pf;
+
+   (void) hdc;
+
+   count = pixelformat_get_extended_count();
+   index = (uint) iPixelFormat - 1;
+
+   if (ppfd == NULL)
+      return count;
+   if (index >= count || nBytes != sizeof( PIXELFORMATDESCRIPTOR ))
+      return 0;
+
+   pf = pixelformat_get_info( index );
+
+   ppfd->nSize = sizeof( PIXELFORMATDESCRIPTOR );
+   ppfd->nVersion = 1;
+   ppfd->dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL;
+   if (pf->flags & PF_FLAG_DOUBLEBUFFER)
+      ppfd->dwFlags |= PFD_DOUBLEBUFFER | PFD_SWAP_COPY;
+   ppfd->iPixelType = PFD_TYPE_RGBA;
+   ppfd->cColorBits = pf->color.redbits + pf->color.greenbits + pf->color.bluebits;
+   ppfd->cRedBits = pf->color.redbits;
+   ppfd->cRedShift = pf->color.redshift;
+   ppfd->cGreenBits = pf->color.greenbits;
+   ppfd->cGreenShift = pf->color.greenshift;
+   ppfd->cBlueBits = pf->color.bluebits;
+   ppfd->cBlueShift = pf->color.blueshift;
+   ppfd->cAlphaBits = pf->alpha.alphabits;
+   ppfd->cAlphaShift = pf->alpha.alphashift;
+   ppfd->cAccumBits = 0;
+   ppfd->cAccumRedBits = 0;
+   ppfd->cAccumGreenBits = 0;
+   ppfd->cAccumBlueBits = 0;
+   ppfd->cAccumAlphaBits = 0;
+   ppfd->cDepthBits = pf->depth.depthbits;
+   ppfd->cStencilBits = pf->depth.stencilbits;
+   ppfd->cAuxBuffers = 0;
+   ppfd->iLayerType = 0;
+   ppfd->bReserved = 0;
+   ppfd->dwLayerMask = 0;
+   ppfd->dwVisibleMask = 0;
+   ppfd->dwDamageMask = 0;
+
+   return count;
+}
index 0b67da8d25c16309985530b73f2d6b0c5a52f458..da26df5c648742e6c6220f1df58dcc91269ecb35 100644 (file)
@@ -28,6 +28,8 @@
 #ifndef PIXELFORMAT_H
 #define PIXELFORMAT_H
 
+#include <windows.h>
+
 #define PF_FLAG_DOUBLEBUFFER  0x00000001
 #define PF_FLAG_MULTISAMPLED  0x00000002
 
@@ -73,4 +75,13 @@ pixelformat_get_extended_count( void );
 const struct pixelformat_info *
 pixelformat_get_info( uint index );
 
+
+int
+stw_pixelformat_describe(
+   HDC hdc,
+   int iPixelFormat,
+   UINT nBytes,
+   LPPIXELFORMATDESCRIPTOR ppfd );
+
+
 #endif /* PIXELFORMAT_H */
index 4646f57a198473437b9eb05ec314353db62b30b5..20d7adc6645f41acce3818103bf362111f36b3ed 100644 (file)
@@ -108,52 +108,7 @@ wglDescribePixelFormat(
    UINT nBytes,
    LPPIXELFORMATDESCRIPTOR ppfd )
 {
-   uint count;
-   uint index;
-   const struct pixelformat_info *pf;
-
-   (void) hdc;
-
-   count = pixelformat_get_extended_count();
-   index = (uint) iPixelFormat - 1;
-
-   if (ppfd == NULL)
-      return count;
-   if (index >= count || nBytes != sizeof( PIXELFORMATDESCRIPTOR ))
-      return 0;
-
-   pf = pixelformat_get_info( index );
-
-   ppfd->nSize = sizeof( PIXELFORMATDESCRIPTOR );
-   ppfd->nVersion = 1;
-   ppfd->dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL;
-   if (pf->flags & PF_FLAG_DOUBLEBUFFER)
-      ppfd->dwFlags |= PFD_DOUBLEBUFFER | PFD_SWAP_COPY;
-   ppfd->iPixelType = PFD_TYPE_RGBA;
-   ppfd->cColorBits = pf->color.redbits + pf->color.greenbits + pf->color.bluebits;
-   ppfd->cRedBits = pf->color.redbits;
-   ppfd->cRedShift = pf->color.redshift;
-   ppfd->cGreenBits = pf->color.greenbits;
-   ppfd->cGreenShift = pf->color.greenshift;
-   ppfd->cBlueBits = pf->color.bluebits;
-   ppfd->cBlueShift = pf->color.blueshift;
-   ppfd->cAlphaBits = pf->alpha.alphabits;
-   ppfd->cAlphaShift = pf->alpha.alphashift;
-   ppfd->cAccumBits = 0;
-   ppfd->cAccumRedBits = 0;
-   ppfd->cAccumGreenBits = 0;
-   ppfd->cAccumBlueBits = 0;
-   ppfd->cAccumAlphaBits = 0;
-   ppfd->cDepthBits = pf->depth.depthbits;
-   ppfd->cStencilBits = pf->depth.stencilbits;
-   ppfd->cAuxBuffers = 0;
-   ppfd->iLayerType = 0;
-   ppfd->bReserved = 0;
-   ppfd->dwLayerMask = 0;
-   ppfd->dwVisibleMask = 0;
-   ppfd->dwDamageMask = 0;
-
-   return count;
+   return stw_pixelformat_describe( hdc, iPixelFormat, nBytes, ppfd );
 }
 
 WINGDIAPI int APIENTRY