diff options
Diffstat (limited to 'app/gfx')
-rw-r--r-- | app/gfx/canvas.cc | 8 | ||||
-rw-r--r-- | app/gfx/canvas.h | 2 | ||||
-rw-r--r-- | app/gfx/skia_util.cc | 42 | ||||
-rw-r--r-- | app/gfx/skia_util.h | 34 |
4 files changed, 86 insertions, 0 deletions
diff --git a/app/gfx/canvas.cc b/app/gfx/canvas.cc index 306531c4..420c984 100644 --- a/app/gfx/canvas.cc +++ b/app/gfx/canvas.cc @@ -221,6 +221,14 @@ void Canvas::DrawStringInt(const std::wstring& text, l10n_util::DefaultCanvasTextAlignment()); } +void Canvas::DrawStringInt(const std::wstring& text, + const gfx::Font& font, + const SkColor& color, + const gfx::Rect& display_rect) { + DrawStringInt(text, font, color, display_rect.x(), display_rect.y(), + display_rect.width(), display_rect.height()); +} + void Canvas::TileImageInt(const SkBitmap& bitmap, int x, int y, int w, int h) { TileImageInt(bitmap, 0, 0, x, y, w, h); } diff --git a/app/gfx/canvas.h b/app/gfx/canvas.h index e59db16..79eed9c 100644 --- a/app/gfx/canvas.h +++ b/app/gfx/canvas.h @@ -163,6 +163,8 @@ class Canvas : public skia::PlatformCanvas { // text is too big, it is truncated and '...' is added to the end. void DrawStringInt(const std::wstring& text, const gfx::Font& font, const SkColor& color, int x, int y, int w, int h); + void DrawStringInt(const std::wstring& text, const gfx::Font& font, + const SkColor& color, const gfx::Rect& display_rect); // Draws text with the specified color, font and location. The last argument // specifies flags for how the text should be rendered. It can be one of diff --git a/app/gfx/skia_util.cc b/app/gfx/skia_util.cc new file mode 100644 index 0000000..fa6ec24 --- /dev/null +++ b/app/gfx/skia_util.cc @@ -0,0 +1,42 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "app/gfx/skia_util.h" + +#include "base/gfx/rect.h" +#include "third_party/skia/include/core/SkColorPriv.h" +#include "third_party/skia/include/core/SkShader.h" +#include "third_party/skia/include/effects/SkGradientShader.h" + +namespace gfx { + +SkRect RectToSkRect(const gfx::Rect& rect) { + SkRect r; + r.set(SkIntToScalar(rect.x()), SkIntToScalar(rect.y()), + SkIntToScalar(rect.right()), SkIntToScalar(rect.bottom())); + return r; +} + +gfx::Rect SkRectToRect(const SkRect& rect) { + return gfx::Rect(SkScalarToFixed(rect.fLeft), + SkScalarToFixed(rect.fTop), + SkScalarToFixed(rect.width()), + SkScalarToFixed(rect.height())); +} + +SkShader* CreateGradientShader(int start_point, + int end_point, + SkColor start_color, + SkColor end_color) { + SkColor grad_colors[2] = { start_color, end_color}; + SkPoint grad_points[2]; + grad_points[0].set(SkIntToScalar(0), SkIntToScalar(start_point)); + grad_points[1].set(SkIntToScalar(0), SkIntToScalar(end_point)); + + return SkGradientShader::CreateLinear( + grad_points, grad_colors, NULL, 2, SkShader::kRepeat_TileMode); +} + +} // namespace gfx + diff --git a/app/gfx/skia_util.h b/app/gfx/skia_util.h new file mode 100644 index 0000000..66a8aeb --- /dev/null +++ b/app/gfx/skia_util.h @@ -0,0 +1,34 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef APP_GFX_SKIA_UTIL_H_ +#define APP_GFX_SKIA_UTIL_H_ + +#include "third_party/skia/include/core/SkColor.h" +#include "third_party/skia/include/core/SkRect.h" + +class SkShader; + +namespace gfx { + +class Rect; + +// Convert between Skia and gfx rect types. +SkRect RectToSkRect(const gfx::Rect& rect); +gfx::Rect SkRectToRect(const SkRect& rect); + +// Creates a vertical gradient shader. The caller owns the shader. +// Example usage to avoid leaks: +// paint.setShader(gfx::CreateGradientShader(0, 10, red, blue))->safeUnref(); +// +// (The old shader in the paint, if any, needs to be freed, and safeUnref will +// handle the NULL case.) +SkShader* CreateGradientShader(int start_point, + int end_point, + SkColor start_color, + SkColor end_color); + +} // namespace gfx; + +#endif // APP_GFX_SKIA_UTIL_H_ |