Index: chrome/browser/gtk/cairo_cached_surface.cc |
=================================================================== |
--- chrome/browser/gtk/cairo_cached_surface.cc (revision 71352) |
+++ chrome/browser/gtk/cairo_cached_surface.cc (working copy) |
@@ -1,74 +0,0 @@ |
-// Copyright (c) 2009 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 "chrome/browser/gtk/cairo_cached_surface.h" |
- |
-#include <gtk/gtk.h> |
- |
-#include "base/basictypes.h" |
-#include "base/logging.h" |
- |
-CairoCachedSurface::CairoCachedSurface() : pixbuf_(NULL), surface_(NULL) { |
-} |
- |
-CairoCachedSurface::~CairoCachedSurface() { |
- if (surface_) |
- cairo_surface_destroy(surface_); |
- |
- if (pixbuf_) |
- g_object_unref(pixbuf_); |
-} |
- |
-int CairoCachedSurface::Width() const { |
- return pixbuf_ ? gdk_pixbuf_get_width(pixbuf_) : -1; |
-} |
- |
-int CairoCachedSurface::Height() const { |
- return pixbuf_ ? gdk_pixbuf_get_height(pixbuf_) : -1; |
-} |
- |
-void CairoCachedSurface::UsePixbuf(GdkPixbuf* pixbuf) { |
- if (surface_) { |
- cairo_surface_destroy(surface_); |
- surface_ = NULL; |
- } |
- |
- if (pixbuf) |
- g_object_ref(pixbuf); |
- |
- if (pixbuf_) |
- g_object_unref(pixbuf_); |
- |
- pixbuf_ = pixbuf; |
-} |
- |
-void CairoCachedSurface::SetSource(cairo_t* cr, int x, int y) { |
- DCHECK(pixbuf_); |
- DCHECK(cr); |
- |
- if (!surface_) { |
- // First time here since last UsePixbuf call. Generate the surface. |
- cairo_surface_t* target = cairo_get_target(cr); |
- surface_ = cairo_surface_create_similar( |
- target, |
- CAIRO_CONTENT_COLOR_ALPHA, |
- gdk_pixbuf_get_width(pixbuf_), |
- gdk_pixbuf_get_height(pixbuf_)); |
- |
- DCHECK(surface_); |
-#if !defined(NDEBUG) |
- int surface_type = cairo_surface_get_type(surface_); |
- DCHECK(surface_type == CAIRO_SURFACE_TYPE_XLIB || |
- surface_type == CAIRO_SURFACE_TYPE_XCB || |
- surface_type == CAIRO_SURFACE_TYPE_IMAGE); |
-#endif |
- |
- cairo_t* copy_cr = cairo_create(surface_); |
- gdk_cairo_set_source_pixbuf(copy_cr, pixbuf_, 0, 0); |
- cairo_paint(copy_cr); |
- cairo_destroy(copy_cr); |
- } |
- |
- cairo_set_source_surface(cr, surface_, x, y); |
-} |