[gtk+] API: Add gdk_window_create_similar_surface()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] API: Add gdk_window_create_similar_surface()
- Date: Thu, 12 Aug 2010 22:18:51 +0000 (UTC)
commit c989d3000a8f26a09d01282c8dfc7e2d5fde47d8
Author: Benjamin Otte <otte redhat com>
Date: Thu Aug 12 23:43:11 2010 +0200
API: Add gdk_window_create_similar_surface()
docs/reference/gdk/gdk3-sections.txt | 1 +
gdk/gdk.symbols | 1 +
gdk/gdkwindow.c | 49 ++++++++++++++++++++++++++++++++++
gdk/gdkwindow.h | 6 ++++
4 files changed, 57 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/gdk/gdk3-sections.txt b/docs/reference/gdk/gdk3-sections.txt
index d14ca1b..eb3bf36 100644
--- a/docs/reference/gdk/gdk3-sections.txt
+++ b/docs/reference/gdk/gdk3-sections.txt
@@ -648,6 +648,7 @@ gdk_pango_layout_line_get_clip_region
<SECTION>
<TITLE>Cairo Interaction</TITLE>
<FILE>cairo_interaction</FILE>
+gdk_window_create_similar_surface
gdk_cairo_create
gdk_cairo_set_source_color
gdk_cairo_set_source_pixbuf
diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols
index d4253ee..598d434 100644
--- a/gdk/gdk.symbols
+++ b/gdk/gdk.symbols
@@ -617,6 +617,7 @@ gdk_window_clear_area_e
gdk_window_constrain_size
gdk_window_coords_from_parent
gdk_window_coords_to_parent
+gdk_window_create_similar_surface
gdk_window_destroy
gdk_window_end_paint
gdk_window_flush
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 89f8bd7..3201184 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -10646,3 +10646,52 @@ _gdk_window_get_input_window_for_event (GdkWindow *native_window,
return event_win;
}
+
+/**
+ * gdk_window_create_similar_surface:
+ * @window: window to make new surface similar to
+ * @content: the content for the new surface
+ * @width: width of the new surface
+ * @height: height of the new surface
+ *
+ * Create a new surface that is as compatible as possible with the
+ * given @window. For example the new surface will have the same
+ * fallback resolution and font options as @window. Generally, the new
+ * surface will also use the same backend as @window, unless that is
+ * not possible for some reason. The type of the returned surface may
+ * be examined with cairo_surface_get_type().
+ *
+ * Initially the surface contents are all 0 (transparent if contents
+ * have transparency, black otherwise.)
+ *
+ * Returns: a pointer to the newly allocated surface. The caller
+ * owns the surface and should call cairo_surface_destroy() when done
+ * with it.
+ *
+ * This function always returns a valid pointer, but it will return a
+ * pointer to a "nil" surface if @other is already in an error state
+ * or any other error occurs.
+ *
+ * Since: 2.22
+ **/
+cairo_surface_t *
+gdk_window_create_similar_surface (GdkWindow * window,
+ cairo_content_t content,
+ int width,
+ int height)
+{
+ cairo_surface_t *window_surface, *surface;
+
+ g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
+
+ window_surface = _gdk_drawable_ref_cairo_surface (window);
+
+ surface = cairo_surface_create_similar (window_surface,
+ content,
+ width, height);
+
+ cairo_surface_destroy (window_surface);
+
+ return surface;
+}
+
diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h
index bdba84e..516df97 100644
--- a/gdk/gdkwindow.h
+++ b/gdk/gdkwindow.h
@@ -795,6 +795,12 @@ gboolean gdk_window_get_decorations (GdkWindow *window,
void gdk_window_set_functions (GdkWindow *window,
GdkWMFunction functions);
+cairo_surface_t *
+ gdk_window_create_similar_surface (GdkWindow *window,
+ cairo_content_t content,
+ int width,
+ int height);
+
void gdk_window_beep (GdkWindow *window);
void gdk_window_iconify (GdkWindow *window);
void gdk_window_deiconify (GdkWindow *window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]