Ken Thomases : winemac: Prevent interpolation of the window surface image when it' s blitted to the actual window.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Feb 3 10:01:12 CST 2015


Module: wine
Branch: master
Commit: 530a039dac488bbd57a8c2833c0e5a781e79f920
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=530a039dac488bbd57a8c2833c0e5a781e79f920

Author: Ken Thomases <ken at codeweavers.com>
Date:   Mon Feb  2 23:11:37 2015 -0600

winemac: Prevent interpolation of the window surface image when it's blitted to the actual window.

On high-resolution Retina displays, the OS X window backing store has twice the
pixels as Wine's window backing store.  So, our images get scaled up.  Core
Graphics had been interpolating/smoothing the image, which resulted in
fuzziness.  This tells it not to do that.

I had assumed this wouldn't be necessary since we pass FALSE for the
shouldInterpolate parameter of CGImageCreate() when we create the images.
Apparently, that's not sufficient.

---

 dlls/winemac.drv/cocoa_window.m | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dlls/winemac.drv/cocoa_window.m b/dlls/winemac.drv/cocoa_window.m
index 57ae2b8..4688687 100644
--- a/dlls/winemac.drv/cocoa_window.m
+++ b/dlls/winemac.drv/cocoa_window.m
@@ -265,6 +265,7 @@ static inline NSUInteger adjusted_modifiers_for_option_behavior(NSUInteger modif
 
                 context = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
                 CGContextSetBlendMode(context, kCGBlendModeCopy);
+                CGContextSetInterpolationQuality(context, kCGInterpolationNone);
 
                 for (i = 0; i < count; i++)
                 {




More information about the wine-cvs mailing list