diff options
author | Morgan Armand <morgan.devel@gmail.com> | 2011-11-02 08:30:35 +0100 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2011-11-02 20:14:56 +0000 |
commit | f6d1f5dfe0421c15cf38ff49c67ded8f9f7dc63a (patch) | |
tree | 176b307a55880ca3c60ae81cb092593848f8ed53 | |
parent | 3e31dc7d602def24821469d37b0b37ff162f1a30 (diff) |
glean: Fix handling of PIXELFORMATDESCRIPTORs.
Signed-off-by: José Fonseca <jfonseca@vmware.com>
-rw-r--r-- | src/glean/dsurf.cpp | 3 | ||||
-rw-r--r-- | src/glean/rc.cpp | 4 | ||||
-rw-r--r-- | src/libs/dsurf/dsconfig.cpp | 42 | ||||
-rw-r--r-- | src/libs/dsurf/dsconfig.h | 2 |
4 files changed, 24 insertions, 27 deletions
diff --git a/src/glean/dsurf.cpp b/src/glean/dsurf.cpp index f158921..84e4fda 100644 --- a/src/glean/dsurf.cpp +++ b/src/glean/dsurf.cpp @@ -145,8 +145,7 @@ legacyMethod: hDC = GetDC(hWindow); - PIXELFORMATDESCRIPTOR pfd; - SetPixelFormat(hDC,config->pfdID,&pfd); + SetPixelFormat(hDC,config->pfdID,&config->pfd); #elif defined(__BEWIN__) diff --git a/src/glean/rc.cpp b/src/glean/rc.cpp index 8cc95b3..e432d99 100644 --- a/src/glean/rc.cpp +++ b/src/glean/rc.cpp @@ -66,9 +66,7 @@ HGLRC create_context(GLEAN::DrawingSurfaceConfig &c) if (!hDC) return 0; - PIXELFORMATDESCRIPTOR pfd; - - if (!SetPixelFormat(hDC,c.pfdID,&pfd)) + if (!SetPixelFormat(hDC,c.pfdID,&c.pfd)) { ReleaseDC(hwnd,hDC); DestroyWindow(hwnd); diff --git a/src/libs/dsurf/dsconfig.cpp b/src/libs/dsurf/dsconfig.cpp index 25a4f25..ff559fc 100644 --- a/src/libs/dsurf/dsconfig.cpp +++ b/src/libs/dsurf/dsconfig.cpp @@ -367,48 +367,48 @@ DrawingSurfaceConfig::DrawingSurfaceConfig(int id, ::PIXELFORMATDESCRIPTOR *ppfd if (!mapsInitialized) initializeMaps(); - pfd = ppfd; + pfd = *ppfd; pfdID = id; - canRGBA = pfd->iPixelType == PFD_TYPE_RGBA; - canCI = pfd->iPixelType == PFD_TYPE_COLORINDEX; + canRGBA = pfd.iPixelType == PFD_TYPE_RGBA; + canCI = pfd.iPixelType == PFD_TYPE_COLORINDEX; - bufSize = pfd->cColorBits + pfd->cAlphaBits; + bufSize = pfd.cColorBits + pfd.cAlphaBits; level = 0; - db = pfd->dwFlags & PFD_DOUBLEBUFFER; + db = pfd.dwFlags & PFD_DOUBLEBUFFER; - stereo = pfd->dwFlags & PFD_STEREO; + stereo = pfd.dwFlags & PFD_STEREO; - aux = pfd->cAuxBuffers; + aux = pfd.cAuxBuffers; if (canRGBA) { - r = pfd->cRedBits; - g = pfd->cGreenBits; - b = pfd->cBlueBits; - a = pfd->cAlphaBits; + r = pfd.cRedBits; + g = pfd.cGreenBits; + b = pfd.cBlueBits; + a = pfd.cAlphaBits; } else r = g = b = a = 0; - z = pfd->cDepthBits; - s = pfd->cStencilBits; + z = pfd.cDepthBits; + s = pfd.cStencilBits; - accR = pfd->cAccumRedBits; - accG = pfd->cAccumGreenBits; - accB = pfd->cAccumBlueBits; - accA = pfd->cAccumAlphaBits; + accR = pfd.cAccumRedBits; + accG = pfd.cAccumGreenBits; + accB = pfd.cAccumBlueBits; + accA = pfd.cAccumAlphaBits; samples = 0; // XXX implement properly for Windows! - canWindow = pfd->dwFlags & PFD_DRAW_TO_WINDOW; + canWindow = pfd.dwFlags & PFD_DRAW_TO_WINDOW; - canWinSysRender = pfd->dwFlags & PFD_SUPPORT_GDI; + canWinSysRender = pfd.dwFlags & PFD_SUPPORT_GDI; - if (pfd->dwFlags & PFD_GENERIC_FORMAT) + if (pfd.dwFlags & PFD_GENERIC_FORMAT) { - if (pfd->dwFlags & PFD_GENERIC_ACCELERATED) + if (pfd.dwFlags & PFD_GENERIC_ACCELERATED) { // it's an MCD - at least it has some acceleration fast = true; diff --git a/src/libs/dsurf/dsconfig.h b/src/libs/dsurf/dsconfig.h index 3827662..8df2abc 100644 --- a/src/libs/dsurf/dsconfig.h +++ b/src/libs/dsurf/dsconfig.h @@ -93,7 +93,7 @@ class DrawingSurfaceConfig { ::XID fbcID; // Framebuffer Config ID. # endif # elif defined(__WIN__) - ::PIXELFORMATDESCRIPTOR *pfd; + ::PIXELFORMATDESCRIPTOR pfd; int pfdID; # elif defined(__AGL__) AGLPixelFormat pf; |