On Thu, Jun 26, 2008 at 1:38 PM, celticht32@aol.com wrote:
I am sorry everyone for the spam =) been awhile since I developed stuff, been so used to designing things =)
here in all its glorry is the diff -u context.c context.c.new > diff.txt file
I couldnt get the -c option to work so here is just the -u
--- context.c 2008-06-26 13:52:57.000000000 -0400 +++ context.c.change 2008-06-26 14:32:48.000000000 -0400 @@ -116,13 +116,12 @@ int iPixelFormat=0; short redBits, greenBits, blueBits, alphaBits, colorBits; short depthBits=0, stencilBits=0;
int i = 0; int nCfgs = This->adapter->nCfgs;
WineD3D_PixelFormat *cfgs = This->adapter->cfgs;
TRACE("ColorFormat=%s, DepthStencilFormat=%s, auxBuffers=%d,
numSamples=%d, pbuffer=%d, findCompatible=%d\n",
debug_d3dformat(ColorFormat),
debug_d3dformat(DepthStencilFormat), auxBuffers, numSamples, pbuffer, findCompatible);
WineD3D_PixelFormat *cfgs = This->adapter->cfgs;
BOOL exactDepthMatch = FALSE; /*Changed june 23,08 */
PIXELFORMATDESCRIPTOR pfd; /*Changed june 23,08 */
if(!getColorBits(ColorFormat, &redBits, &greenBits, &blueBits,
&alphaBits, &colorBits)) { ERR("Unable to get color bits for format %s (%#x)!\n", debug_d3dformat(ColorFormat), ColorFormat); @@ -145,84 +144,91 @@
DepthStencilFormat = WINED3DFMT_D24S8;
- if(DepthStencilFormat) {
getDepthStencilBits(DepthStencilFormat, &depthBits, &stencilBits);
- }
+/* Changed Section June 24,08 */
+#if 0
- if(DepthStencilFormat)
{
- getDepthStencilBits(DepthStencilFormat, &depthBits, &stencilBits);
- }
+#endif
+/* Just call getDepthStencilBits as the above IF will always in this case be true */
getDepthStencilBits(DepthStencilFormat, &depthBits, &stencilBits);
/* Find a pixel format which EXACTLY matches our requirements (except
for depth) */
- for(i=0; i<nCfgs; i++) {
BOOL exactDepthMatch = TRUE;
- for(i=0; i<nCfgs; i++)
{ cfgs = &This->adapter->cfgs[i];
/* For now only accept RGBA formats. Perhaps some day we will * allow floating point formats for pbuffers. */ if(cfgs->iPixelType != WGL_TYPE_RGBA_ARB)
continue;
continue; /* In window mode (!pbuffer) we need a window drawable format and
double buffering. */ if(!pbuffer && !(cfgs->windowDrawable && cfgs->doubleBuffer))
continue;
continue;
/* We like to have aux buffers in backbuffer mode */
/* We like to have aux buffers in backbuffer mode */ if(auxBuffers && !cfgs->auxBuffers)
continue;
continue; /* In pbuffer-mode we need a pbuffer-capable format but we don't
want double buffering */ if(pbuffer && (!cfgs->pbufferDrawable || cfgs->doubleBuffer))
continue;
continue;
if(cfgs->redSize != redBits)
continue;
if(cfgs->greenSize != greenBits)
continue;
if(cfgs->blueSize != blueBits)
continue;
if(cfgs->alphaSize != alphaBits)
continue;
/* We try to locate a format which matches our requirements
exactly. In case of
* depth it is no problem to emulate 16-bit using e.g. 24-bit, so
accept that. */
if(cfgs->depthSize < depthBits)
continue;
else if(cfgs->depthSize > depthBits)
exactDepthMatch = FALSE;
if ((cfgs->redSize != redBits) || (cfgs->greenSize != greenBits) ||
(cfgs->blueSize != blueBits) || (cfgs->alphaSize != alphaBits))
continue; /* In all cases make sure the number of stencil bits matches our
requirements * even when we don't need stencil because it could affect performance EXCEPT * on cards which don't offer depth formats without stencil like the i915 drivers * on Linux. */
if(stencilBits != cfgs->stencilSize &&
!(This->adapter->brokenStencil && stencilBits <= cfgs->stencilSize))
continue;
if((stencilBits != cfgs->stencilSize) &&
!((This->adapter->brokenStencil && stencilBits) <= cfgs->stencilSize))
continue; /* Check multisampling support */ if(cfgs->numSamples != numSamples)
continue;
continue;
/* When we have passed all the checks then we have found a format
which matches our
* requirements. Note that we only check for a limit number of
capabilities right now,
* so there can easily be a dozen of pixel formats which appear to
be the 'same' but
* can still differ in things like multisampling, stereo, SRGB and
other flags.
*/
/* We try to locate a format which matches our requirements
exactly. In case of
* depth it is no problem to emulate 16-bit using e.g. 24-bit, so
accept that. */
if (cfgs->depthSize != depthBits)
continue; /* Exit the loop as we have found a format :) */
if(exactDepthMatch) {
if (exactDepthMatch)
{
TRACE("Exact Depth Match\n"); iPixelFormat = cfgs->iPixelFormat; break;
} else if(!iPixelFormat) {
}
if (!iPixelFormat)
{ /* In the end we might end up with a format which doesn't
exactly match our depth * requirements. Accept the first format we found because formats with higher iPixelFormat * values tend to have more extended capabilities (e.g. multisampling) which we don't need. */
TRACE("Emulating %d\n",cfgs->iPixelFormat); iPixelFormat = cfgs->iPixelFormat;
}
break; /* Added June 24,08 */
}
}
/* When findCompatible is set and no suitable format was found, let
ChoosePixelFormat choose a pixel format in order not to crash. */
- if(!iPixelFormat && !findCompatible) {
+#if 0 +if (!iPixelFormat && !findCompatible)
{ ERR("Can't find a suitable iPixelFormat\n"); return FALSE;
- } else if(!iPixelFormat) {
PIXELFORMATDESCRIPTOR pfd;
}
+#endif
- if (!iPixelFormat)
{ TRACE("Falling back to ChoosePixelFormat as we weren't able to find
an exactly matching pixel format\n"); /* PixelFormat selection */ ZeroMemory(&pfd, sizeof(pfd)); @@ -235,16 +241,17 @@ pfd.cDepthBits = depthBits; pfd.cStencilBits = stencilBits; pfd.iLayerType = PFD_MAIN_PLANE;
iPixelFormat = ChoosePixelFormat(hdc, &pfd);
if(!iPixelFormat) {
/* If this happens something is very wrong as ChoosePixelFormat
barely fails */
ERR("Can't find a suitable iPixelFormat\n");
return FALSE;
}
- }
if (!iPixelFormat)
{
/* If this happens something is very wrong as ChoosePixelFormat
barely fails */
ERR("Can't find a suitable iPixelFormat\n");
return FALSE;
}
}
- TRACE("Found iPixelFormat=%d for ColorFormat=%s,
DepthStencilFormat=%s\n", iPixelFormat, debug_d3dformat(ColorFormat), debug_d3dformat(DepthStencilFormat));
- TRACE("Found iPixelFormat\n"); return iPixelFormat;
}
@@ -372,6 +379,7 @@
/* If we still don't have a pixel format, something is very wrong
as ChoosePixelFormat barely fails */ if(!iPixelFormat) {
TRACE("Choose Pixel Format Failed\n"); ERR("Can't find a suitable iPixelFormat\n"); return FALSE; }
Better?
Not really. You made a lot of superfluous changes (line spacing, formatting, etc) that make it hard to see what you actually changed.