Home | History | Annotate | Download | only in core
      1 /*
      2  * Copyright 2014 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #ifndef SkRecordOpts_DEFINED
      9 #define SkRecordOpts_DEFINED
     10 
     11 #include "SkRecord.h"
     12 
     13 // Run all optimizations in recommended order.
     14 void SkRecordOptimize(SkRecord*);
     15 
     16 // NoOp away pointless PushCull/PopCull pairs with nothing between them.
     17 void SkRecordNoopCulls(SkRecord*);
     18 
     19 // Turns logical no-op Save-[non-drawing command]*-Restore patterns into actual no-ops.
     20 void SkRecordNoopSaveRestores(SkRecord*);
     21 
     22 // For some SaveLayer-[drawing command]-Restore patterns, merge the SaveLayer's alpha into the
     23 // draw, and no-op the SaveLayer and Restore.
     24 void SkRecordNoopSaveLayerDrawRestores(SkRecord*);
     25 
     26 // Annotates PushCull commands with the relative offset of their paired PopCull.
     27 void SkRecordAnnotateCullingPairs(SkRecord*);
     28 
     29 // Convert DrawPosText to DrawPosTextH when all the Y coordinates are equal.
     30 void SkRecordReduceDrawPosTextStrength(SkRecord*);
     31 
     32 // Calculate min and max Y bounds for DrawPosTextH commands, for use with SkCanvas::quickRejectY.
     33 void SkRecordBoundDrawPosTextH(SkRecord*);
     34 
     35 #endif//SkRecordOpts_DEFINED
     36