Am Mittwoch, 12. September 2007 04:37:51 schrieb Markus Amsler:
Juan Lang wrote:
Folks, I just sent a series of wintrust patches that gets iTunes 7 to start, at least for me. I expect some will get rejected due to collision with Francois's patch - I'll resynch and resend. But if you want to play around with iTunes, grab those patches and give them a whirl.
Known issues:
- Your screen will go black when it starts. This is something
QuickTime is doing. You can drag windows around to force some repainting to work around it
Just a wild guess, does the attached patch fix the problem? Battlefield 1942 shows the same behavior in windowed mode.
The problem with QuickTime is that it does a LockRect() on the front buffer, which draws on the NULL window without a clipper set. The GetDC call you're removing here causes a simmilar issue(it also leads to a LockRect). WineD3D's gdi surfaces write to the destination window, but they do not read from it. A quick test shows that locking the primary returns the contents of the screen so we should propably read the destination window's contents if we're locking the front buffer, but AJ objected against that and I didn't put much effort in getting this patch in.
However, you make a good point that wined3d inherently has that problem, due to these GetDC() and ReleaseDC(). We use them to make the surface code create a DIB section for the surface.