|  | /* | 
|  | * Copyright 2014 Google Inc. | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  | #ifndef CanvasStateHelpers_DEFINED | 
|  | #define CanvasStateHelpers_DEFINED | 
|  |  | 
|  | #include "include/core/SkTypes.h" | 
|  |  | 
|  | #include <cstdint> | 
|  |  | 
|  | // See CanvasStateTest. These functions are either linked in to 'dm' directly (when this flag is | 
|  | // not defined), or built in a shared library that is dlopened by the test. In that case, they | 
|  | // should not be visible in 'dm', but the shared library will not have this flag set and compiles | 
|  | // them as expected. | 
|  | #if !defined(SK_TEST_CANVAS_STATE_CROSS_LIBRARY) | 
|  |  | 
|  | class SkCanvas; | 
|  | class SkCanvasState; | 
|  | class SkRegion; | 
|  |  | 
|  | #if defined(SK_BUILD_FOR_WIN) | 
|  | #define EXPORT _declspec(dllexport) | 
|  | #else | 
|  | #define EXPORT | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | *  Helper function to perform drawing to an SkCanvas. Used by both | 
|  | *  test_complex_layers and complex_layers_draw_from_canvas_state. | 
|  | */ | 
|  | void complex_layers_draw(SkCanvas* canvas, float left, float top, | 
|  | float right, float bottom, int32_t spacer); | 
|  |  | 
|  | /* | 
|  | *  Create an SkCanvas from state and draw to it. Return true on success. | 
|  | * | 
|  | *  Used by test_complex_layers test in CanvasStateTest. Marked as extern | 
|  | *  so it can be called from a separate library. | 
|  | */ | 
|  | extern "C" bool EXPORT complex_layers_draw_from_canvas_state(SkCanvasState* state, | 
|  | float left, float top, float right, float bottom, int32_t spacer); | 
|  |  | 
|  | /* | 
|  | *  Helper function to perform drawing to an SkCanvas. Used both by test_complex_clips | 
|  | *  and complex_clips_draw_from_canvas_state. | 
|  | */ | 
|  | void complex_clips_draw(SkCanvas* canvas, int32_t left, int32_t top, | 
|  | int32_t right, int32_t bottom, int32_t clipOp, const SkRegion& localRegion); | 
|  |  | 
|  | /* | 
|  | *  Create an SkCanvas from state and draw to it. Return true on success. | 
|  | * | 
|  | *  Used by test_complex_clips test in CanvasStateTest. Marked as extern | 
|  | *  so it can be called from a separate library. | 
|  | */ | 
|  | extern "C" bool EXPORT complex_clips_draw_from_canvas_state(SkCanvasState* state, | 
|  | int32_t left, int32_t top, int32_t right, int32_t bottom, int32_t clipOp, | 
|  | int32_t regionRects, int32_t* rectCoords); | 
|  |  | 
|  | #endif // SK_TEST_CANVAS_STATE_CROSS_LIBRARY | 
|  | #endif // CanvasStateHelpers_DEFINED |