124519371cb541db6f59d903d21878ed9c45eb549scroggo/* 224519371cb541db6f59d903d21878ed9c45eb549scroggo * Copyright 2014 Google Inc. 324519371cb541db6f59d903d21878ed9c45eb549scroggo * 424519371cb541db6f59d903d21878ed9c45eb549scroggo * Use of this source code is governed by a BSD-style license that can be 524519371cb541db6f59d903d21878ed9c45eb549scroggo * found in the LICENSE file. 624519371cb541db6f59d903d21878ed9c45eb549scroggo */ 724519371cb541db6f59d903d21878ed9c45eb549scroggo 824519371cb541db6f59d903d21878ed9c45eb549scroggo#ifndef CanvasStateHelpers_DEFINED 924519371cb541db6f59d903d21878ed9c45eb549scroggo#define CanvasStateHelpers_DEFINED 1024519371cb541db6f59d903d21878ed9c45eb549scroggo 1124519371cb541db6f59d903d21878ed9c45eb549scroggo#include "SkTypes.h" 1224519371cb541db6f59d903d21878ed9c45eb549scroggo 1324519371cb541db6f59d903d21878ed9c45eb549scroggo#ifdef SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG 1424519371cb541db6f59d903d21878ed9c45eb549scroggoclass SkCanvas; 1524519371cb541db6f59d903d21878ed9c45eb549scroggoclass SkCanvasState; 1624519371cb541db6f59d903d21878ed9c45eb549scroggoclass SkRegion; 1724519371cb541db6f59d903d21878ed9c45eb549scroggo 1824519371cb541db6f59d903d21878ed9c45eb549scroggo/* 1924519371cb541db6f59d903d21878ed9c45eb549scroggo * Helper function to perform drawing to an SkCanvas. Used by both 2024519371cb541db6f59d903d21878ed9c45eb549scroggo * test_complex_layers and complex_layers_draw_from_canvas_state. 2124519371cb541db6f59d903d21878ed9c45eb549scroggo */ 2224519371cb541db6f59d903d21878ed9c45eb549scroggovoid complex_layers_draw(SkCanvas* canvas, float left, float top, 2324519371cb541db6f59d903d21878ed9c45eb549scroggo float right, float bottom, int32_t spacer); 2424519371cb541db6f59d903d21878ed9c45eb549scroggo 2524519371cb541db6f59d903d21878ed9c45eb549scroggo/* 2624519371cb541db6f59d903d21878ed9c45eb549scroggo * Create an SkCanvas from state and draw to it. Return true on success. 2724519371cb541db6f59d903d21878ed9c45eb549scroggo * 2824519371cb541db6f59d903d21878ed9c45eb549scroggo * Used by test_complex_layers test in CanvasStateTest. Marked as extern 2924519371cb541db6f59d903d21878ed9c45eb549scroggo * so it can be called from a separate library. 3024519371cb541db6f59d903d21878ed9c45eb549scroggo */ 3124519371cb541db6f59d903d21878ed9c45eb549scroggoextern "C" bool complex_layers_draw_from_canvas_state(SkCanvasState* state, 3224519371cb541db6f59d903d21878ed9c45eb549scroggo float left, float top, float right, float bottom, int32_t spacer); 3324519371cb541db6f59d903d21878ed9c45eb549scroggo 3424519371cb541db6f59d903d21878ed9c45eb549scroggo/* 3524519371cb541db6f59d903d21878ed9c45eb549scroggo * Helper function to perform drawing to an SkCanvas. Used both by test_complex_clips 3624519371cb541db6f59d903d21878ed9c45eb549scroggo * and complex_clips_draw_from_canvas_state. 3724519371cb541db6f59d903d21878ed9c45eb549scroggo */ 3824519371cb541db6f59d903d21878ed9c45eb549scroggovoid complex_clips_draw(SkCanvas* canvas, int32_t left, int32_t top, 3924519371cb541db6f59d903d21878ed9c45eb549scroggo int32_t right, int32_t bottom, int32_t clipOp, const SkRegion& localRegion); 4024519371cb541db6f59d903d21878ed9c45eb549scroggo 4124519371cb541db6f59d903d21878ed9c45eb549scroggo/* 4224519371cb541db6f59d903d21878ed9c45eb549scroggo * Create an SkCanvas from state and draw to it. Return true on success. 4324519371cb541db6f59d903d21878ed9c45eb549scroggo * 4424519371cb541db6f59d903d21878ed9c45eb549scroggo * Used by test_complex_clips test in CanvasStateTest. Marked as extern 4524519371cb541db6f59d903d21878ed9c45eb549scroggo * so it can be called from a separate library. 4624519371cb541db6f59d903d21878ed9c45eb549scroggo */ 4724519371cb541db6f59d903d21878ed9c45eb549scroggoextern "C" bool complex_clips_draw_from_canvas_state(SkCanvasState* state, 4824519371cb541db6f59d903d21878ed9c45eb549scroggo int32_t left, int32_t top, int32_t right, int32_t bottom, int32_t clipOp, 4924519371cb541db6f59d903d21878ed9c45eb549scroggo int32_t regionRects, int32_t* rectCoords); 5024519371cb541db6f59d903d21878ed9c45eb549scroggo 5124519371cb541db6f59d903d21878ed9c45eb549scroggo#endif // SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG 5224519371cb541db6f59d903d21878ed9c45eb549scroggo#endif // CanvasStateHelpers_DEFINED 53