summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorgan Armand <morgan.devel@gmail.com>2011-11-02 08:30:35 +0100
committerJosé Fonseca <jfonseca@vmware.com>2011-11-02 20:14:56 +0000
commitf6d1f5dfe0421c15cf38ff49c67ded8f9f7dc63a (patch)
tree176b307a55880ca3c60ae81cb092593848f8ed53
parent3e31dc7d602def24821469d37b0b37ff162f1a30 (diff)
glean: Fix handling of PIXELFORMATDESCRIPTORs.
Signed-off-by: José Fonseca <jfonseca@vmware.com>
-rw-r--r--src/glean/dsurf.cpp3
-rw-r--r--src/glean/rc.cpp4
-rw-r--r--src/libs/dsurf/dsconfig.cpp42
-rw-r--r--src/libs/dsurf/dsconfig.h2
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;