1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2014 Google Inc. 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci#ifndef CanvasStateHelpers_DEFINED 9cb93a386Sopenharmony_ci#define CanvasStateHelpers_DEFINED 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ci#include "include/core/SkTypes.h" 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_ci// See CanvasStateTest. These functions are either linked in to 'dm' directly (when this flag is 14cb93a386Sopenharmony_ci// not defined), or built in a shared library that is dlopened by the test. In that case, they 15cb93a386Sopenharmony_ci// should not be visible in 'dm', but the shared library will not have this flag set and compiles 16cb93a386Sopenharmony_ci// them as expected. 17cb93a386Sopenharmony_ci#if !defined(SK_TEST_CANVAS_STATE_CROSS_LIBRARY) 18cb93a386Sopenharmony_ci 19cb93a386Sopenharmony_ciclass SkCanvas; 20cb93a386Sopenharmony_ciclass SkCanvasState; 21cb93a386Sopenharmony_ciclass SkRegion; 22cb93a386Sopenharmony_ci 23cb93a386Sopenharmony_ci// #if defined(SK_BUILD_FOR_WIN) 24cb93a386Sopenharmony_ci// #define EXPORT _declspec(dllexport) 25cb93a386Sopenharmony_ci// #else 26cb93a386Sopenharmony_ci#define EXPORT 27cb93a386Sopenharmony_ci// #endif 28cb93a386Sopenharmony_ci 29cb93a386Sopenharmony_ci/* 30cb93a386Sopenharmony_ci * Helper function to perform drawing to an SkCanvas. Used by both 31cb93a386Sopenharmony_ci * test_complex_layers and complex_layers_draw_from_canvas_state. 32cb93a386Sopenharmony_ci */ 33cb93a386Sopenharmony_civoid complex_layers_draw(SkCanvas* canvas, float left, float top, 34cb93a386Sopenharmony_ci float right, float bottom, int32_t spacer); 35cb93a386Sopenharmony_ci 36cb93a386Sopenharmony_ci/* 37cb93a386Sopenharmony_ci * Create an SkCanvas from state and draw to it. Return true on success. 38cb93a386Sopenharmony_ci * 39cb93a386Sopenharmony_ci * Used by test_complex_layers test in CanvasStateTest. Marked as extern 40cb93a386Sopenharmony_ci * so it can be called from a separate library. 41cb93a386Sopenharmony_ci */ 42cb93a386Sopenharmony_ciextern "C" bool EXPORT complex_layers_draw_from_canvas_state(SkCanvasState* state, 43cb93a386Sopenharmony_ci float left, float top, float right, float bottom, int32_t spacer); 44cb93a386Sopenharmony_ci 45cb93a386Sopenharmony_ci/* 46cb93a386Sopenharmony_ci * Helper function to perform drawing to an SkCanvas. Used both by test_complex_clips 47cb93a386Sopenharmony_ci * and complex_clips_draw_from_canvas_state. 48cb93a386Sopenharmony_ci */ 49cb93a386Sopenharmony_civoid complex_clips_draw(SkCanvas* canvas, int32_t left, int32_t top, 50cb93a386Sopenharmony_ci int32_t right, int32_t bottom, int32_t clipOp, const SkRegion& localRegion); 51cb93a386Sopenharmony_ci 52cb93a386Sopenharmony_ci/* 53cb93a386Sopenharmony_ci * Create an SkCanvas from state and draw to it. Return true on success. 54cb93a386Sopenharmony_ci * 55cb93a386Sopenharmony_ci * Used by test_complex_clips test in CanvasStateTest. Marked as extern 56cb93a386Sopenharmony_ci * so it can be called from a separate library. 57cb93a386Sopenharmony_ci */ 58cb93a386Sopenharmony_ciextern "C" bool EXPORT complex_clips_draw_from_canvas_state(SkCanvasState* state, 59cb93a386Sopenharmony_ci int32_t left, int32_t top, int32_t right, int32_t bottom, int32_t clipOp, 60cb93a386Sopenharmony_ci int32_t regionRects, int32_t* rectCoords); 61cb93a386Sopenharmony_ci 62cb93a386Sopenharmony_ci#endif // SK_TEST_CANVAS_STATE_CROSS_LIBRARY 63cb93a386Sopenharmony_ci#endif // CanvasStateHelpers_DEFINED 64