Pb WineD3D: power of 2 surface and non power of 2 DIB section
Christian Costa
titan.costa at wanadoo.fr
Tue Jul 11 16:56:42 CDT 2006
Stefan Dösinger a écrit :
> Am Montag 10 Juli 2006 22:10 schrieb Christian Costa:
>
>> Hi,
>>
>> When calling CreateSurface, a power of 2 surface is created and then the
>> necessary memory is allocated.
>> If we try to get the DC with GetDC, a DIB section is created with the
>> original size of the surface and data from the surface
>> is copied to the DIB section The power of 2 surface being greater than
>> the DIB section, this makes Wine crashes.
>>
> I got nonpower of 2 dib sections working for some games here, and as far as I
> remember I create the dib section with the full pow2 size.
>
>
The problem is that a render target surface is created, CreateSurface
always computes the size using power of 2 width and height.
But in GetDC the original size is used in the case of the render target.
This mismatch is the source of the problem.
I guess we should compute the size in CreateSurface using the original
size in the case of the render target.
If this is the right fix, I will send a patch.
Christian
More information about the wine-devel
mailing list