Question about ddraw implemtation

Ralph Little littlesincanada at yahoo.co.uk
Fri May 13 12:38:07 CDT 2011


Hi,
> On 13 May 2011 19:03, Ralph Little<littlesincanada at yahoo.co.uk>  wrote:
>> trace:ddraw:CreateSurface DDSURF==== dwFlags(124)
> Is that correct? It doesn't have DDSD_PIXELFORMAT set.
>

Wait, you're right. I misread what the code was doing.

     /* No pixelformat given? Use the current screen format */
     if(!(desc2.dwFlags & DDSD_PIXELFORMAT))
     {
         WARN("No pixelformat given\n");
         desc2.dwFlags |= DDSD_PIXELFORMAT;
         desc2.u4.ddpfPixelFormat.dwSize=sizeof(DDPIXELFORMAT);

It sees that there is no pixelformat specified, then tries to fill one in.

Here:

         else
         {
              WARN("pixformat=default\n");
            PixelFormat_WineD3DtoDD(&desc2.u4.ddpfPixelFormat, Mode.Format);
         }

it calls the function PixelFormat_WineD3DtoDD() to determine the format 
details, assuming that there is something in ddpfPixelFormat worth 
looking at.
In this case, it is wrong.

With the surface ptr. being NULL, I suspect that all talk of pixelformat 
is moot in this case. There are no pixels to render.
I really do wonder if this is a "trick" to blank the screen.

Cheers,
Ralph





More information about the wine-devel mailing list