QUARTZ: Patch 2 - Move blitting operation to message thread and handle WM_PAINT

a_villacis at palosanto.com a_villacis at palosanto.com
Sun Jun 17 15:51:56 CDT 2007


This patch moves the blitting code into the message thread. This is a setup
patch for the DirectDraw rewrite, but can be applied on its own after the
first patch. This patch allows the videorenderer to drop frames while the
first one is being rendered. However, this does not completely solve the
stuttering problem. It seems that the very act of StretchDIBits() causes the
sound to loop or skip, regardless of the thread in which it is done.

One problem not corrected by the first patch is that the message thread
does not handle WM_PAINT. If a video starts to play, is then paused, and
then the rendering window is obscured, the paused frame is not restored on
expose, unlike native. This patch enables the videorenderer to cache the last
frame sent, in order to display it on WM_PAINT.

Changelog:
* Move the StretchDIBits call to the message loop, in preparation for
DirectDraw
* Copy frame data into internal buffer, for access from message loop, and
  in order to implement WM_PAINT on pause.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wine-quartz-videorenderer-02-blit-in-message-loop.patch
Type: text/x-patch
Size: 13022 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20070617/52ab721a/wine-quartz-videorenderer-02-blit-in-message-loop.bin


More information about the wine-patches mailing list