summaryrefslogtreecommitdiffstats
path: root/base/gfx/bitmap_platform_device_linux.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/gfx/bitmap_platform_device_linux.cc')
-rw-r--r--base/gfx/bitmap_platform_device_linux.cc94
1 files changed, 0 insertions, 94 deletions
diff --git a/base/gfx/bitmap_platform_device_linux.cc b/base/gfx/bitmap_platform_device_linux.cc
deleted file mode 100644
index 18f8ab1..0000000
--- a/base/gfx/bitmap_platform_device_linux.cc
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright (c) 2006-2008 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 "base/gfx/bitmap_platform_device_linux.h"
-
-#include <cairo/cairo.h>
-
-#include "base/logging.h"
-
-namespace gfx {
-
-// -----------------------------------------------------------------------------
-// These objects are reference counted and own a Cairo surface. The surface is
-// the backing store for a Skia bitmap and we reference count it so that we can
-// copy BitmapPlatformDeviceLinux objects without having to copy all the image
-// data.
-// -----------------------------------------------------------------------------
-class BitmapPlatformDeviceLinux::BitmapPlatformDeviceLinuxData
- : public base::RefCounted<BitmapPlatformDeviceLinuxData> {
- public:
- explicit BitmapPlatformDeviceLinuxData(cairo_surface_t* surface)
- : surface_(surface) { }
-
- cairo_surface_t* surface() const { return surface_; }
-
- protected:
- cairo_surface_t *const surface_;
-
- friend class base::RefCounted<BitmapPlatformDeviceLinuxData>;
- ~BitmapPlatformDeviceLinuxData() {
- cairo_surface_destroy(surface_);
- }
-
- DISALLOW_EVIL_CONSTRUCTORS(BitmapPlatformDeviceLinuxData);
-};
-
-// We use this static factory function instead of the regular constructor so
-// that we can create the pixel data before calling the constructor. This is
-// required so that we can call the base class' constructor with the pixel
-// data.
-BitmapPlatformDeviceLinux* BitmapPlatformDeviceLinux::Create(
- int width, int height, bool is_opaque) {
- cairo_surface_t* surface =
- cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
- width, height);
-
- SkBitmap bitmap;
- bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height,
- cairo_image_surface_get_stride(surface));
- bitmap.setPixels(cairo_image_surface_get_data(surface));
- bitmap.setIsOpaque(is_opaque);
-
-#ifndef NDEBUG
- if (is_opaque) {
- bitmap.eraseARGB(255, 0, 255, 128); // bright bluish green
- }
-#endif
-
- // The device object will take ownership of the graphics context.
- return new BitmapPlatformDeviceLinux
- (bitmap, new BitmapPlatformDeviceLinuxData(surface));
-}
-
-// The device will own the bitmap, which corresponds to also owning the pixel
-// data. Therefore, we do not transfer ownership to the SkDevice's bitmap.
-BitmapPlatformDeviceLinux::BitmapPlatformDeviceLinux(
- const SkBitmap& bitmap,
- BitmapPlatformDeviceLinuxData* data)
- : PlatformDeviceLinux(bitmap),
- data_(data) {
-}
-
-BitmapPlatformDeviceLinux::BitmapPlatformDeviceLinux(
- const BitmapPlatformDeviceLinux& other)
- : PlatformDeviceLinux(const_cast<BitmapPlatformDeviceLinux&>(
- other).accessBitmap(true)),
- data_(other.data_) {
-}
-
-BitmapPlatformDeviceLinux::~BitmapPlatformDeviceLinux() {
-}
-
-cairo_surface_t* BitmapPlatformDeviceLinux::surface() const {
- return data_->surface();
-}
-
-BitmapPlatformDeviceLinux& BitmapPlatformDeviceLinux::operator=(
- const BitmapPlatformDeviceLinux& other) {
- data_ = other.data_;
- return *this;
-}
-
-} // namespace gfx