Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(325)

Side by Side Diff: base/gfx/gtk_util.h

Issue 259047: Move classes depending on Skia out of base/gfx and into app/gfx. Rename... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/gfx/gdi_util.cc ('k') | base/gfx/gtk_util.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef BASE_GFX_GTK_UTIL_H_
6 #define BASE_GFX_GTK_UTIL_H_
7
8 #include <stdint.h>
9 #include <vector>
10
11 #include <glib-object.h>
12
13 #include "base/scoped_ptr.h"
14
15 typedef struct _GdkColor GdkColor;
16 typedef struct _GdkPixbuf GdkPixbuf;
17 typedef struct _GdkRegion GdkRegion;
18
19 class SkBitmap;
20
21 const int kSkiaToGDKMultiplier = 257;
22
23 // Define a macro for creating GdkColors from RGB values. This is a macro to
24 // allow static construction of literals, etc. Use this like:
25 // GdkColor white = GDK_COLOR_RGB(0xff, 0xff, 0xff);
26 #define GDK_COLOR_RGB(r, g, b) {0, r * kSkiaToGDKMultiplier, \
27 g * kSkiaToGDKMultiplier, b * kSkiaToGDKMultiplier}
28
29 namespace gfx {
30
31 class Rect;
32
33 extern const GdkColor kGdkWhite;
34 extern const GdkColor kGdkBlack;
35 extern const GdkColor kGdkGreen;
36
37 // Convert and copy a SkBitmap to a GdkPixbuf. NOTE: this uses BGRAToRGBA, so
38 // it is an expensive operation.
39 GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap* bitmap);
40
41 // Modify the given region by subtracting the given rectangles.
42 void SubtractRectanglesFromRegion(GdkRegion* region,
43 const std::vector<Rect>& cutouts);
44
45 } // namespace gfx
46
47 namespace {
48 // A helper class that will g_object_unref |p| when it goes out of scope.
49 // This never adds a ref, it only unrefs.
50 template <typename Type>
51 struct GObjectUnrefer {
52 void operator()(Type* ptr) const {
53 if (ptr)
54 g_object_unref(ptr);
55 }
56 };
57 } // namespace
58
59 // It's not legal C++ to have a templatized typedefs, so we wrap it in a
60 // struct. When using this, you need to include ::Type. E.g.,
61 // ScopedGObject<GdkPixbufLoader>::Type loader(gdk_pixbuf_loader_new());
62 template<class T>
63 struct ScopedGObject {
64 typedef scoped_ptr_malloc<T, GObjectUnrefer<T> > Type;
65 };
66
67 #endif // BASE_GFX_GTK_UTIL_H_
OLDNEW
« no previous file with comments | « base/gfx/gdi_util.cc ('k') | base/gfx/gtk_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698