diff options
author | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-21 20:02:04 +0000 |
---|---|---|
committer | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-21 20:02:04 +0000 |
commit | f04c1b203cf4c40071a17ef667bfff287f31bdb9 (patch) | |
tree | 21247eae6451810526d6a8d77076318d7eb18b58 /skia | |
parent | 4aa0418cbad4b1bdf45d461309d729ab458246c6 (diff) | |
download | chromium_src-f04c1b203cf4c40071a17ef667bfff287f31bdb9.zip chromium_src-f04c1b203cf4c40071a17ef667bfff287f31bdb9.tar.gz chromium_src-f04c1b203cf4c40071a17ef667bfff287f31bdb9.tar.bz2 |
aura: Use platform independent canvas by default.
BUG=111587
TEST=none
Review URL: http://codereview.chromium.org/9722032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128039 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia')
-rw-r--r-- | skia/ext/platform_canvas_skia.cc | 41 | ||||
-rw-r--r-- | skia/skia.gyp | 10 |
2 files changed, 51 insertions, 0 deletions
diff --git a/skia/ext/platform_canvas_skia.cc b/skia/ext/platform_canvas_skia.cc new file mode 100644 index 0000000..8551792 --- /dev/null +++ b/skia/ext/platform_canvas_skia.cc @@ -0,0 +1,41 @@ +// Copyright (c) 2012 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 "skia/ext/platform_canvas.h" + +#include "base/debug/trace_event.h" +#include "skia/ext/bitmap_platform_device.h" + +namespace skia { + +PlatformCanvas::PlatformCanvas(int width, int height, bool is_opaque) { + TRACE_EVENT2("skia", "PlatformCanvas::PlatformCanvas", + "width", width, "height", height); + if (!initialize(width, height, is_opaque)) + SK_CRASH(); +} + +PlatformCanvas::PlatformCanvas(int width, int height, bool is_opaque, + uint8_t* data) { + TRACE_EVENT2("skia", "PlatformCanvas::PlatformCanvas", + "width", width, "height", height); + if (!initialize(width, height, is_opaque, data)) + SK_CRASH(); +} + +PlatformCanvas::~PlatformCanvas() { +} + +bool PlatformCanvas::initialize(int width, int height, bool is_opaque, + uint8_t* data) { + // Use platform specific device for data. + if (data) + return initializeWithDevice(BitmapPlatformDevice::Create( + width, height, is_opaque, data)); + + return initializeWithDevice(new SkDevice( + SkBitmap::kARGB_8888_Config, width, height, is_opaque)); +} + +} // namespace skia diff --git a/skia/skia.gyp b/skia/skia.gyp index 85b34b87..f20a2c1 100644 --- a/skia/skia.gyp +++ b/skia/skia.gyp @@ -712,6 +712,7 @@ 'ext/platform_canvas.h', 'ext/platform_canvas_linux.cc', 'ext/platform_canvas_mac.cc', + 'ext/platform_canvas_skia.cc', 'ext/platform_canvas_win.cc', 'ext/platform_device.cc', 'ext/platform_device.h', @@ -855,6 +856,15 @@ ['include', 'ext/platform_canvas_linux\\.cc$'], ], }], + [ 'use_aura == 1', { + 'sources/': [ + ['exclude', 'ext/platform_canvas_mac\\.cc$'], + ['exclude', 'ext/platform_canvas_linux\\.cc$'], + ['exclude', 'ext/platform_canvas_win\\.cc$'], + ], + }, { # use_aura == 0 + 'sources/': [ ['exclude', 'ext/platform_canvas_skia\\.cc$'] ], + }], [ 'toolkit_uses_gtk == 1', { 'dependencies': [ '../build/linux/system.gyp:gdk', |