From 24519371cb541db6f59d903d21878ed9c45eb549 Mon Sep 17 00:00:00 2001 From: scroggo Date: Tue, 22 Jul 2014 12:38:55 -0700 Subject: Run CanvasState test across a library boundary. Refactor CanvasStateTest to pull out functions which can either be called directly or from a shared library. Add a command line flag to pass in the path to a library to open to call those functions from. Separate different CanvasTest tests into separate DEF_TEST tests. This allows them to be run in parallel. Move the ifdefs outside of function declarations to skip running CanvasTest tests which do nothing. Add the canvas_state_lib target. It is a shared library that exports some functions to be called by another version of Skia. BUG=b/15693384 R=djsollen@google.com, reed@google.com Author: scroggo@google.com Review URL: https://codereview.chromium.org/400043003 --- tests/CanvasStateHelpers.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tests/CanvasStateHelpers.h (limited to 'tests/CanvasStateHelpers.h') diff --git a/tests/CanvasStateHelpers.h b/tests/CanvasStateHelpers.h new file mode 100644 index 0000000000..aa3c1781aa --- /dev/null +++ b/tests/CanvasStateHelpers.h @@ -0,0 +1,52 @@ +/* + * 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 "SkTypes.h" + +#ifdef SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG +class SkCanvas; +class SkCanvasState; +class SkRegion; + +/* + * 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 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 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_SUPPORT_LEGACY_CLIPTOLAYERFLAG +#endif // CanvasStateHelpers_DEFINED -- cgit v1.2.3