blob: 48c71e7e74315fa521110f80ba51bb2f956192ff [file] [log] [blame]
commit-bot@chromium.org4cd9e212014-03-07 03:25:16 +00001/*
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 sk_tool_utils_DEFINED
9#define sk_tool_utils_DEFINED
10
halcanaryb0cce2c2015-01-26 12:49:00 -080011#include "SkColor.h"
tfarina20108912014-06-21 10:54:17 -070012#include "SkImageInfo.h"
caryclark5fb6bd42014-06-23 11:25:00 -070013#include "SkTypeface.h"
commit-bot@chromium.org4cd9e212014-03-07 03:25:16 +000014
Cary Clark992c7b02014-07-31 08:58:44 -040015class SkBitmap;
16class SkCanvas;
17class SkPaint;
halcanaryb0cce2c2015-01-26 12:49:00 -080018class SkShader;
Cary Clark992c7b02014-07-31 08:58:44 -040019class SkTestFont;
skia.committer@gmail.comdb0c8752014-03-18 03:02:11 +000020
Cary Clark992c7b02014-07-31 08:58:44 -040021namespace sk_tool_utils {
caryclark5fb6bd42014-06-23 11:25:00 -070022
commit-bot@chromium.orga713f9c2014-03-17 21:31:26 +000023 const char* colortype_name(SkColorType);
commit-bot@chromium.org4cd9e212014-03-07 03:25:16 +000024
25 /**
caryclark5fb6bd42014-06-23 11:25:00 -070026 * Sets the paint to use a platform-independent text renderer.
27 */
Cary Clark992c7b02014-07-31 08:58:44 -040028 void set_portable_typeface(SkPaint* paint, const char* name = NULL,
29 SkTypeface::Style style = SkTypeface::kNormal);
30 SkTypeface* create_portable_typeface(const char* name, SkTypeface::Style style);
31 void report_used_chars();
caryclark5fb6bd42014-06-23 11:25:00 -070032
33 /**
commit-bot@chromium.org4cd9e212014-03-07 03:25:16 +000034 * Call canvas->writePixels() by using the pixels from bitmap, but with an info that claims
35 * the pixels are colorType + alphaType
36 */
37 void write_pixels(SkCanvas*, const SkBitmap&, int x, int y, SkColorType, SkAlphaType);
commit-bot@chromium.org4cd9e212014-03-07 03:25:16 +000038
Cary Clark992c7b02014-07-31 08:58:44 -040039 // private to sk_tool_utils
40 SkTypeface* create_font(const char* name, SkTypeface::Style );
41 SkTypeface* resource_font(const char* name, SkTypeface::Style );
42
halcanaryb0cce2c2015-01-26 12:49:00 -080043 /** Returns a newly created CheckerboardShader. */
44 SkShader* create_checkerboard_shader(SkColor c1, SkColor c2, int size);
45
46 /** Draw a checkerboard pattern in the current canvas, restricted to
halcanaryf77365f2015-01-27 08:38:35 -080047 the current clip, using SkXfermode::kSrc_Mode. */
halcanaryb0cce2c2015-01-26 12:49:00 -080048 void draw_checkerboard(SkCanvas* canvas,
49 SkColor color1,
50 SkColor color2,
51 int size);
52
53 /** A default checkerboard. */
54 inline void draw_checkerboard(SkCanvas* canvas) {
55 sk_tool_utils::draw_checkerboard(canvas, 0xFF999999, 0xFF666666, 8);
56 }
57
tfarina20108912014-06-21 10:54:17 -070058} // namespace sk_tool_utils
59
60#endif // sk_tool_utils_DEFINED