Add geometry-based rotated AA rect drawing path
https://codereview.chromium.org/14854005/
git-svn-id: http://skia.googlecode.com/svn/trunk@8961 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index d23dd54..320f8f6 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -723,7 +723,7 @@
return false;
}
-#ifdef SHADER_AA_FILL_RECT
+#if defined(SHADER_AA_FILL_RECT) || !defined(IGNORE_ROT_AA_RECT_OPT)
if (strokeWidth >= 0) {
#endif
if (!drawState.getViewMatrix().preservesAxisAlignment()) {
@@ -733,7 +733,7 @@
if (NULL != matrix && !matrix->preservesAxisAlignment()) {
return false;
}
-#ifdef SHADER_AA_FILL_RECT
+#if defined(SHADER_AA_FILL_RECT) || !defined(IGNORE_ROT_AA_RECT_OPT)
} else {
if (!drawState.getViewMatrix().preservesAxisAlignment() &&
!drawState.getViewMatrix().preservesRightAngles()) {
@@ -751,11 +751,11 @@
combinedMatrix->preConcat(*matrix);
#if GR_DEBUG
-#ifdef SHADER_AA_FILL_RECT
+#if defined(SHADER_AA_FILL_RECT) || !defined(IGNORE_ROT_AA_RECT_OPT)
if (strokeWidth >= 0) {
#endif
GrAssert(combinedMatrix->preservesAxisAlignment());
-#ifdef SHADER_AA_FILL_RECT
+#if defined(SHADER_AA_FILL_RECT) || !defined(IGNORE_ROT_AA_RECT_OPT)
} else {
GrAssert(combinedMatrix->preservesRightAngles());
}
@@ -765,7 +765,11 @@
combinedMatrix->mapRect(devRect, rect);
- if (strokeWidth < 0) {
+ if (strokeWidth < 0
+#if defined(SHADER_AA_FILL_RECT) || !defined(IGNORE_ROT_AA_RECT_OPT)
+ && drawState.getViewMatrix().preservesAxisAlignment()
+#endif
+ ) {
return !isIRect(*devRect);
} else {
return true;