[cairo-commit] 3 commits - pixman/src src/cairo-atsui-font.c src/cairo-win32-surface.c

Vladimir Vukicevic vladimir at kemper.freedesktop.org
Thu Jan 25 12:03:34 PST 2007


 pixman/src/fbmmx.c        |   10 ++++------
 src/cairo-atsui-font.c    |    3 +++
 src/cairo-win32-surface.c |    2 +-
 3 files changed, 8 insertions(+), 7 deletions(-)

New commits:
diff-tree 691f9d1c0c4c98f6e6aa7b2f41fa0b8670e6205d (from 8ff70d6b9106b2dc57e903104237285a7062c2f0)
Author: Vladimir Vukicevic <vladimir at pobox.com>
Date:   Wed Jan 24 17:34:57 2007 -0800

    [mmx] avoid casts between int32 and __m64 types
    
    The MS compiler doesn't like this; _mm_cvtsi32_si64 and _mm_cvtsi64_si32
    must be used.

diff --git a/pixman/src/fbmmx.c b/pixman/src/fbmmx.c
index 9c263f8..93e7d50 100644
--- a/pixman/src/fbmmx.c
+++ b/pixman/src/fbmmx.c
@@ -1487,12 +1487,11 @@ fbCompositeSrc_8888x0565mmx (pixman_oper
 	while (w && (unsigned long)dst & 7)
 	{
 	    __m64 vsrc = load8888 (*src);
-	    ullong d = *dst;
-	    __m64 vdest = expand565 ((__m64)d, 0);
+	    __m64 vdest = expand565 (_mm_cvtsi32_si64(*dst), 0);
 
 	    vdest = pack565(over(vsrc, expand_alpha(vsrc), vdest), vdest, 0);
 
-	    *dst = (ullong)vdest;
+	    *dst = _mm_cvtsi64_si32(vdest);
 
 	    w--;
 	    dst++;
@@ -1554,12 +1553,11 @@ fbCompositeSrc_8888x0565mmx (pixman_oper
 	while (w)
 	{
 	    __m64 vsrc = load8888 (*src);
-	    ullong d = *dst;
-	    __m64 vdest = expand565 ((__m64)d, 0);
+	    __m64 vdest = expand565 (_mm_cvtsi32_si64(*dst), 0);
 
 	    vdest = pack565(over(vsrc, expand_alpha(vsrc), vdest), vdest, 0);
 
-	    *dst = (ullong)vdest;
+	    *dst = _mm_cvtsi64_si32(vdest);
 
 	    w--;
 	    dst++;
diff-tree 8ff70d6b9106b2dc57e903104237285a7062c2f0 (from 0231d18a57dd31d9d619d53b70e71c1b916e0d75)
Author: Vladimir Vukicevic <vladimir at pobox.com>
Date:   Wed Jan 24 16:47:48 2007 -0800

    [win32] regression with win32 glyph y-offsets (mozbug#365021)

diff --git a/src/cairo-win32-surface.c b/src/cairo-win32-surface.c
index be7e706..4025b94 100644
--- a/src/cairo-win32-surface.c
+++ b/src/cairo-win32-surface.c
@@ -1581,7 +1581,7 @@ _cairo_win32_surface_show_glyphs (void		
             next_logical_y = _cairo_lround (next_user_y);
 
             dxy_buf[j] = _cairo_lround ((next_logical_x - logical_x) * WIN32_FONT_LOGICAL_SCALE);
-            dxy_buf[j+1] = _cairo_lround ((logical_y - start_y) * WIN32_FONT_LOGICAL_SCALE);
+            dxy_buf[j+1] = _cairo_lround ((next_logical_y - logical_y) * WIN32_FONT_LOGICAL_SCALE);
 
             logical_x = next_logical_x;
             logical_y = next_logical_y;
diff-tree 0231d18a57dd31d9d619d53b70e71c1b916e0d75 (from 50136a78063137ebca16bcb839bec33e2917824e)
Author: Vladimir Vukicevic <vladimir at pobox.com>
Date:   Wed Jan 24 16:46:36 2007 -0800

    [atsui] add function prototype for a public 10.4 function that's

diff --git a/src/cairo-atsui-font.c b/src/cairo-atsui-font.c
index 8d95b8e..4841eaa 100644
--- a/src/cairo-atsui-font.c
+++ b/src/cairo-atsui-font.c
@@ -61,6 +61,9 @@
 #define CG_BITMAP_BYTE_ORDER_FLAG kCGBitmapByteOrder32Host
 #endif
 
+/* Public in 10.4, present in 10.3.9 */
+CG_EXTERN CGRect CGRectApplyAffineTransform (CGRect, CGAffineTransform);
+
 typedef struct _cairo_atsui_font_face cairo_atsui_font_face_t;
 typedef struct _cairo_atsui_font cairo_atsui_font_t;
 typedef struct _cairo_atsui_scaled_path cairo_atsui_scaled_path_t;


More information about the cairo-commit mailing list