summaryrefslogtreecommitdiffstats
path: root/base/gfx/gtk_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/gfx/gtk_util.cc')
-rw-r--r--base/gfx/gtk_util.cc86
1 files changed, 0 insertions, 86 deletions
diff --git a/base/gfx/gtk_util.cc b/base/gfx/gtk_util.cc
deleted file mode 100644
index 1611c94..0000000
--- a/base/gfx/gtk_util.cc
+++ /dev/null
@@ -1,86 +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 "base/gfx/gtk_util.h"
-
-#include <gdk/gdk.h>
-#include <gtk/gtk.h>
-#include <stdlib.h>
-
-#include "base/basictypes.h"
-#include "base/gfx/rect.h"
-#include "base/linux_util.h"
-#include "third_party/skia/include/core/SkBitmap.h"
-#include "third_party/skia/include/core/SkUnPreMultiply.h"
-
-namespace {
-
-void FreePixels(guchar* pixels, gpointer data) {
- free(data);
-}
-
-} // namespace
-
-namespace gfx {
-
-const GdkColor kGdkWhite = GDK_COLOR_RGB(0xff, 0xff, 0xff);
-const GdkColor kGdkBlack = GDK_COLOR_RGB(0x00, 0x00, 0x00);
-const GdkColor kGdkGreen = GDK_COLOR_RGB(0x00, 0xff, 0x00);
-
-GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap* bitmap) {
- bitmap->lockPixels();
- int width = bitmap->width();
- int height = bitmap->height();
- int stride = bitmap->rowBytes();
-
- // SkBitmaps are premultiplied, we need to unpremultiply them.
- const int kBytesPerPixel = 4;
- uint8* divided = static_cast<uint8*>(malloc(height * stride));
-
- for (int y = 0, i = 0; y < height; y++) {
- for (int x = 0; x < width; x++) {
- uint32 pixel = bitmap->getAddr32(0, y)[x];
-
- int alpha = SkColorGetA(pixel);
- if (alpha != 0 && alpha != 255) {
- SkColor unmultiplied = SkUnPreMultiply::PMColorToColor(pixel);
- divided[i + 0] = SkColorGetR(unmultiplied);
- divided[i + 1] = SkColorGetG(unmultiplied);
- divided[i + 2] = SkColorGetB(unmultiplied);
- divided[i + 3] = alpha;
- } else {
- divided[i + 0] = SkColorGetR(pixel);
- divided[i + 1] = SkColorGetG(pixel);
- divided[i + 2] = SkColorGetB(pixel);
- divided[i + 3] = alpha;
- }
- i += kBytesPerPixel;
- }
- }
-
- // This pixbuf takes ownership of our malloc()ed data and will
- // free it for us when it is destroyed.
- GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data(
- divided,
- GDK_COLORSPACE_RGB, // The only colorspace gtk supports.
- true, // There is an alpha channel.
- 8,
- width, height, stride, &FreePixels, divided);
-
- bitmap->unlockPixels();
- return pixbuf;
-}
-
-void SubtractRectanglesFromRegion(GdkRegion* region,
- const std::vector<Rect>& cutouts) {
- for (size_t i = 0; i < cutouts.size(); ++i) {
- GdkRectangle rect = cutouts[i].ToGdkRectangle();
- GdkRegion* rect_region = gdk_region_rectangle(&rect);
- gdk_region_subtract(region, rect_region);
- // TODO(deanm): It would be nice to be able to reuse the GdkRegion here.
- gdk_region_destroy(rect_region);
- }
-}
-
-} // namespace gfx