|
|
@@ -8,6 +8,12 @@
|
|
|
#include "NativeTexture.h"
|
|
|
#include "VideoDriver.h"
|
|
|
|
|
|
+#if OXYGINE_NO_SUBPIXEL_RENDERING
|
|
|
+#define ROUND_TO_PIXELS_IF_ENABLED(arg) floor(arg)
|
|
|
+#else
|
|
|
+#define ROUND_TO_PIXELS_IF_ENABLED(arg) (arg)
|
|
|
+#endif
|
|
|
+
|
|
|
namespace oxygine
|
|
|
{
|
|
|
typedef AffineTransform Transform;
|
|
|
@@ -50,29 +56,29 @@ namespace oxygine
|
|
|
|
|
|
vt.z = 0;
|
|
|
|
|
|
- vt.x = p1.x;
|
|
|
- vt.y = p1.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p1.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p1.y);
|
|
|
vt.u = u;
|
|
|
vt.v = v;
|
|
|
*pv = vt;
|
|
|
++pv;
|
|
|
|
|
|
- vt.x = p2.x;
|
|
|
- vt.y = p2.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p2.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p2.y);
|
|
|
vt.u = u;
|
|
|
vt.v = v + dv;
|
|
|
*pv = vt;
|
|
|
++pv;
|
|
|
|
|
|
- vt.x = p3.x;
|
|
|
- vt.y = p3.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p3.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p3.y);
|
|
|
vt.u = u + du;
|
|
|
vt.v = v;
|
|
|
*pv = vt;
|
|
|
++pv;
|
|
|
|
|
|
- vt.x = p4.x;
|
|
|
- vt.y = p4.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p4.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p4.y);
|
|
|
vt.u = u + du;
|
|
|
vt.v = v + dv;
|
|
|
*pv = vt;
|
|
|
@@ -102,29 +108,29 @@ namespace oxygine
|
|
|
|
|
|
vt.z = Z;
|
|
|
|
|
|
- vt.x = p1.x;
|
|
|
- vt.y = p1.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p1.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p1.y);
|
|
|
vt.u = u;
|
|
|
vt.v = v;
|
|
|
*pv = vt;
|
|
|
++pv;
|
|
|
|
|
|
- vt.x = p2.x;
|
|
|
- vt.y = p2.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p2.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p2.y);
|
|
|
vt.u = u;
|
|
|
vt.v = v + dv;
|
|
|
*pv = vt;
|
|
|
++pv;
|
|
|
|
|
|
- vt.x = p3.x;
|
|
|
- vt.y = p3.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p3.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p3.y);
|
|
|
vt.u = u + du;
|
|
|
vt.v = v;
|
|
|
*pv = vt;
|
|
|
++pv;
|
|
|
|
|
|
- vt.x = p4.x;
|
|
|
- vt.y = p4.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p4.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p4.y);
|
|
|
vt.u = u + du;
|
|
|
vt.v = v + dv;
|
|
|
*pv = vt;
|
|
|
@@ -166,8 +172,8 @@ namespace oxygine
|
|
|
|
|
|
vt.z = 0;
|
|
|
|
|
|
- vt.x = p1.x;
|
|
|
- vt.y = p1.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p1.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p1.y);
|
|
|
vt.u = u;
|
|
|
vt.v = v;
|
|
|
vt.u2 = u2;
|
|
|
@@ -175,8 +181,8 @@ namespace oxygine
|
|
|
*pv = vt;
|
|
|
++pv;
|
|
|
|
|
|
- vt.x = p2.x;
|
|
|
- vt.y = p2.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p2.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p2.y);
|
|
|
vt.u = u;
|
|
|
vt.v = v + dv;
|
|
|
vt.u2 = u2;
|
|
|
@@ -184,8 +190,8 @@ namespace oxygine
|
|
|
*pv = vt;
|
|
|
++pv;
|
|
|
|
|
|
- vt.x = p3.x;
|
|
|
- vt.y = p3.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p3.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p3.y);
|
|
|
vt.u = u + du;
|
|
|
vt.v = v;
|
|
|
vt.u2 = u2 + du2;
|
|
|
@@ -193,8 +199,8 @@ namespace oxygine
|
|
|
*pv = vt;
|
|
|
++pv;
|
|
|
|
|
|
- vt.x = p4.x;
|
|
|
- vt.y = p4.y;
|
|
|
+ vt.x = ROUND_TO_PIXELS_IF_ENABLED(p4.x);
|
|
|
+ vt.y = ROUND_TO_PIXELS_IF_ENABLED(p4.y);
|
|
|
vt.u = u + du;
|
|
|
vt.v = v + dv;
|
|
|
vt.u2 = u2 + du2;
|