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