diff dmblitfunc.h @ 809:eba3b87f3f84

Add some separate macros for 64/32 precision fixed point types.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 14 May 2014 21:28:14 +0300
parents 79dac918c81e
children
line wrap: on
line diff
--- a/dmblitfunc.h	Tue May 13 18:18:10 2014 +0300
+++ b/dmblitfunc.h	Wed May 14 21:28:14 2014 +0300
@@ -15,7 +15,7 @@
 #define DM_BLITFUNC_SRC_TYPE Uint8
 #define DM_BLITFUNC_DST_TYPE Uint8
 
-#define DM_BLITFUNC_INNER *dp++ = sp[FP_GETH(xv)];
+#define DM_BLITFUNC_INNER *dp++ = sp[FP_GETH16(xv)];
 
 #include "dmscaledblit.h"
 
@@ -32,7 +32,7 @@
     if (src->format->palette == NULL || src->format->palette->ncolors < 256) return -2;	\
     pal = (Uint32 *) src->format->palette->colors;
 
-#define DM_BLITFUNC_INNER *dp++ = pal[sp[FP_GETH(xv)]];
+#define DM_BLITFUNC_INNER *dp++ = pal[sp[FP_GETH16(xv)]];
 
 #include "dmscaledblit.h"
 
@@ -44,7 +44,7 @@
 #define DM_BLITFUNC_SRC_TYPE Uint32
 #define DM_BLITFUNC_DST_TYPE Uint32
 #define DM_BLITFUNC_INIT
-#define DM_BLITFUNC_INNER *dp++ = sp[FP_GETH(xv)];
+#define DM_BLITFUNC_INNER *dp++ = sp[FP_GETH16(xv)];
 
 #include "dmscaledblit.h"
 
@@ -60,7 +60,7 @@
 #define DM_BLITFUNC_DST_TYPE Uint8
 
 #define DM_BLITFUNC_INNER \
-    *dp = sp[FP_GETH(xv)] ? sp[FP_GETH(xv)] : *dp; dp++;
+    *dp = sp[FP_GETH16(xv)] ? sp[FP_GETH16(xv)] : *dp; dp++;
 
 #include "dmscaledblit.h"
 
@@ -77,7 +77,7 @@
     pal = (DMRGBA32 *) src->format->palette->colors;
 
 #define DM_BLITFUNC_INNER \
-    const DMRGBA32 q = pal[sp[FP_GETH(xv)]]; \
+    const DMRGBA32 q = pal[sp[FP_GETH16(xv)]]; \
     dp->r += ((q.r - dp->r) * q.a) >> 8; \
     dp->g += ((q.g - dp->g) * q.a) >> 8; \
     dp->b += ((q.b - dp->b) * q.a) >> 8; \
@@ -124,7 +124,7 @@
         "packuswb    %%mm2,  %%mm1\n"		\
         "movd        %%mm1,  %0\n"		\
         : "=m" (*dp)				\
-        : "m" (*dp), "m" (sp[FP_GETH(xv)]), "m" (qpdmask), "m" (qpdrm)	\
+        : "m" (*dp), "m" (sp[FP_GETH16(xv)]), "m" (qpdmask), "m" (qpdrm)	\
         : "memory", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5" ); dp++;
 
 #define DM_BLITFUNC_FINISH asm("emms\n");
@@ -134,7 +134,7 @@
 #define DM_BLITFUNC_SRC_TYPE DMRGBA32
 #define DM_BLITFUNC_DST_TYPE DMRGBA32
 #define DM_BLITFUNC_INNER \
-    const DMRGBA32 q = sp[FP_GETH(xv)]; \
+    const DMRGBA32 q = sp[FP_GETH16(xv)]; \
     dp->r += ((q.r - dp->r) * q.a) >> 8; \
     dp->g += ((q.g - dp->g) * q.a) >> 8; \
     dp->b += ((q.b - dp->b) * q.a) >> 8; \
@@ -154,7 +154,7 @@
 #define DM_BLITFUNC_INIT
 
 #define DM_BLITFUNC_INNER \
-    const DMRGBA32 q = sp[FP_GETH(xv)]; \
+    const DMRGBA32 q = sp[FP_GETH16(xv)]; \
     dp->r = (q.r * q.a + dp->r * dp->a) >> 8; \
     dp->g = (q.g * q.a + dp->g * dp->a) >> 8; \
     dp->b = (q.b * q.a + dp->b * dp->a) >> 8; \
@@ -214,7 +214,7 @@
         "packuswb    %%mm2,  %%mm1\n"		\
         "movd        %%mm1,  %0\n"		\
         : "=m" (*dp)				\
-        : "m" (*dp), "m" (sp[FP_GETH(xv)]), "m" (qpdmask), "m" (qpdrm)	\
+        : "m" (*dp), "m" (sp[FP_GETH16(xv)]), "m" (qpdmask), "m" (qpdrm)	\
         : "memory", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5" ); dp++;
 
 #define DM_BLITFUNC_FINISH asm("emms\n");
@@ -224,7 +224,7 @@
 #define DM_BLITFUNC_SRC_TYPE DMRGBA32
 #define DM_BLITFUNC_DST_TYPE DMRGBA32
 #define DM_BLITFUNC_INNER \
-    const DMRGBA32 q = sp[FP_GETH(xv)]; \
+    const DMRGBA32 q = sp[FP_GETH16(xv)]; \
     const int a = (alpha * q.a) >> 8; \
     dp->r += ((q.r - dp->r) * a) >> 8; \
     dp->g += ((q.g - dp->g) * a) >> 8; \
@@ -245,7 +245,7 @@
 #define DM_BLITFUNC_SRC_TYPE Uint8
 #define DM_BLITFUNC_DST_TYPE Uint8
 #define DM_BLITFUNC_INNER \
-    const int q = sp[FP_GETH(xv)] + *dp; \
+    const int q = sp[FP_GETH16(xv)] + *dp; \
     *(dp++) = q < 256 ? q : 255;
 
 #include "dmscaledblit.h"
@@ -269,13 +269,13 @@
         "paddusb     %%mm2,  %%mm1\n"		\
         "movd        %%mm1,  %0\n"		\
         : "=m" (*dp)				\
-        : "m" (*dp), "m" (pal[sp[FP_GETH(xv)]])	\
+        : "m" (*dp), "m" (pal[sp[FP_GETH16(xv)]])	\
         : "memory", "%mm1", "%mm2" ); dp++;
 
 #define DM_BLITFUNC_FINISH asm("emms\n");
 #else
 #define DM_BLITFUNC_INNER \
-    const DMRGBA32 q = pal[sp[FP_GETH(xv)]]; \
+    const DMRGBA32 q = pal[sp[FP_GETH16(xv)]]; \
     const int qr = dp->r + q.r, qg = dp->g + q.g, qb = dp->b + q.b; \
     dp->r = qr < 256 ? qr : 255; \
     dp->g = qg < 256 ? qg : 255; \
@@ -302,7 +302,7 @@
         "paddusb     %%mm2,  %%mm1\n"		\
         "movd        %%mm1,  %0\n"		\
         : "=m" (*dp)				\
-        : "m" (*dp), "m" (sp[FP_GETH(xv)])	\
+        : "m" (*dp), "m" (sp[FP_GETH16(xv)])	\
         : "memory", "%mm1", "%mm2" ); dp++;
 
 #define DM_BLITFUNC_FINISH asm("emms\n");
@@ -310,7 +310,7 @@
 #define DM_BLITFUNC_SRC_TYPE DMRGBA32
 #define DM_BLITFUNC_DST_TYPE DMRGBA32
 #define DM_BLITFUNC_INNER \
-    const DMRGBA32 q = sp[FP_GETH(xv)]; \
+    const DMRGBA32 q = sp[FP_GETH16(xv)]; \
     const int qr = dp->r + q.r, qg = dp->g + q.g, qb = dp->b + q.b; \
     dp->r = qr < 256 ? qr : 255; \
     dp->g = qg < 256 ? qg : 255; \