[Bug 59810] New: Buffered paint alpha/clear operations are missing
http://bugs.winehq.org/show_bug.cgi?id=59810 Bug ID: 59810 Summary: Buffered paint alpha/clear operations are missing Product: Wine Version: 11.10 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: uxtheme Assignee: wine-bugs@list.winehq.org Reporter: juan3@yandex.com Distribution: --- Applications using the buffered paint API can fail to render themed/translucent controls correctly because Wine does not perform the clear and alpha operations requested through BufferedPaintClear() and BufferedPaintSetAlpha(). These calls are used after BeginBufferedPaint() to prepare or adjust the backing buffer before EndBufferedPaint() copies the result to the target DC. On Windows, callers can clear a sub-rectangle of the paint buffer and apply a uniform alpha value to a sub-rectangle. Wine currently leaves those operations ineffective. Expected behavior: - BufferedPaintClear(buffer, NULL) clears the whole buffered paint area. - BufferedPaintClear(buffer, rect) clears the requested rectangle, clipped to the buffer. - BufferedPaintSetAlpha(buffer, NULL, alpha) applies alpha to the whole buffered paint area. - BufferedPaintSetAlpha(buffer, rect, alpha) applies alpha to the requested rectangle, clipped to the buffer. - Empty rectangles should succeed without changing pixels. Impact: Applications that depend on these operations may leave stale pixels in the buffered paint surface, lose expected transparency, or draw themed controls with incorrect backgrounds/alpha. One possible implementation direction would be to update the DIB-backed buffer directly for these operations, clipping the requested rectangle to the buffer bounds. For non-DIB-backed buffers, BufferedPaintClear() could clear through the memory DC. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla