SkPDF: Use Pathops clipping
authorhalcanary <halcanary@google.com>
Thu, 31 Mar 2016 14:33:57 +0000 (07:33 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 31 Mar 2016 14:33:57 +0000 (07:33 -0700)
Turn this on all the time.  Remove the SK_PDF_USE_PATHOPS_CLIPPING
define that used to hide this functionality.

All rendering tests are the same or improved by this.

Also, remove non-functional SK_ALLOW_LARGE_PDF_SCALARS.

TBR=reed@google.com
    removing dead #defines from SkUserConfig.h

BUG=591805
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1845623002

Review URL: https://codereview.chromium.org/1845623002

include/config/SkUserConfig.h
src/pdf/SkPDFDevice.cpp

index a3e40ec5dbc703b1e1051ed36b70c908304e08cf..3022b1fef60c4c0a110ba168fd1c6150eaca39fd 100644 (file)
  */
 //#define SK_DEFAULT_IMAGE_CACHE_LIMIT (1024 * 1024)
 
-/*  Define this to allow PDF scalars above 32k.  The PDF/A spec doesn't allow
-    them, but modern PDF interpreters should handle them just fine.
- */
-//#define SK_ALLOW_LARGE_PDF_SCALARS
-
 /*  Define this to provide font subsetter in PDF generation.
  */
 //#define SK_SFNTLY_SUBSETTER "sfntly/subsetter/font_subsetter.h"
  */
 //#define SK_SUPPORT_GPU 1
 
-
-/* The PDF generation code uses Path Ops to handle complex clipping paths,
- * but at this time, Path Ops is not release ready yet. So, the code is
- * hidden behind this #define guard. If you are feeling adventurous and
- * want the latest and greatest PDF generation code, uncomment the #define.
- * When Path Ops is release ready, the define guards and this user config
- * define should be removed entirely.
- */
-//#define SK_PDF_USE_PATHOPS_CLIPPING
-
 /* Skia makes use of histogram logging macros to trace the frequency of
  * events. By default, Skia provides no-op versions of these macros.
  * Skia consumers can provide their own definitions of these macros to
index df6a8f8fe2612fb11193f1c5c72e340a144a87f0..38e6d1f021506390204125f84c106132559d9f2f 100644 (file)
@@ -320,7 +320,6 @@ static bool calculate_inverse_path(const SkRect& bounds, const SkPath& invPath,
     return Op(clipPath, invPath, kIntersect_SkPathOp, outPath);
 }
 
-#ifdef SK_PDF_USE_PATHOPS_CLIPPING
 // Sanity check the numerical values of the SkRegion ops and PathOps ops
 // enums so region_op_to_pathops_op can do a straight passthrough cast.
 // If these are failing, it may be necessary to make region_op_to_pathops_op
@@ -387,7 +386,6 @@ static bool get_clip_stack_path(const SkMatrix& transform,
     }
     return true;
 }
-#endif
 
 // TODO(vandebo): Take advantage of SkClipStack::getSaveCount(), the PDF
 // graphic state stack, and the fact that we can know all the clips used
@@ -413,13 +411,12 @@ void GraphicStackState::updateClip(const SkClipStack& clipStack,
     SkMatrix transform;
     transform.setTranslate(translation.fX, translation.fY);
 
-#ifdef SK_PDF_USE_PATHOPS_CLIPPING
     SkPath clipPath;
     if (get_clip_stack_path(transform, clipStack, clipRegion, &clipPath)) {
         emit_clip(&clipPath, nullptr, fContentStream);
         return;
     }
-#endif
+
     // gsState->initialEntry()->fClipStack/Region specifies the clip that has
     // already been applied.  (If this is a top level device, then it specifies
     // a clip to the content area.  If this is a layer, then it specifies