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. 14void SkRecordOptimize(SkRecord*); 15 16// NoOp away pointless PushCull/PopCull pairs with nothing between them. 17void SkRecordNoopCulls(SkRecord*); 18 19// Turns logical no-op Save-[non-drawing command]*-Restore patterns into actual no-ops. 20void 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. 24void SkRecordNoopSaveLayerDrawRestores(SkRecord*); 25 26// Annotates PushCull commands with the relative offset of their paired PopCull. 27void SkRecordAnnotateCullingPairs(SkRecord*); 28 29// Convert DrawPosText to DrawPosTextH when all the Y coordinates are equal. 30void SkRecordReduceDrawPosTextStrength(SkRecord*); 31 32// Calculate min and max Y bounds for DrawPosTextH commands, for use with SkCanvas::quickRejectY. 33void SkRecordBoundDrawPosTextH(SkRecord*); 34 35#endif//SkRecordOpts_DEFINED 36