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