com gtk/php-gtk: Add GdkPixbuf::get_pixels().: ext/gtk+/gdk-types.defs ext/gtk+/gdk.overrides
[email protected] (David Soria Parra) Sun, 19 Mar 2006 03:01:35 +0000
| Newsgroups | php.gtk.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit: 9708cf1a706a3386db63731f53012986f4c1ea3c Author: Andrei Zmievski <[email protected]> Sun, 19 Mar 2006 03:01:35 +0000 Parents: c85129e17a6606a88c25ce701d8024b83843455c Branches: master Link: http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=9708cf1a706a3386db63731f53012986f4c1ea3c Log: Add GdkPixbuf::get_pixels(). Changed paths: M ext/gtk+/gdk-types.defs M ext/gtk+/gdk.overrides Diff: 9708cf1a706a3386db63731f53012986f4c1ea3c diff --git a/ext/gtk+/gdk-types.defs b/ext/gtk+/gdk-types.defs index 7eb32fa..d89521b 100644 --- a/ext/gtk+/gdk-types.defs +++ b/ext/gtk+/gdk-types.defs @@ -107,10 +107,6 @@ (parent "GObject") (c-name "GdkPixbuf") (gtype-id "GDK_TYPE_PIXBUF") - (fields -; XXXX this next one isn't a real field. added for Python bindings - '("guchar*" "pixel_array") - ) ) (define-object PixbufAnimation diff --git a/ext/gtk+/gdk.overrides b/ext/gtk+/gdk.overrides index e9bf7bd..b9d9bed 100644 --- a/ext/gtk+/gdk.overrides +++ b/ext/gtk+/gdk.overrides @@ -1608,11 +1608,31 @@ PHP_METHOD php_gtk_build_value(&return_value, "(NN)", php_pixmap, php_mask); } -%%override-prop GdkPixbuf pixel_array -PHPG_PROP_READER +%% +override gdk_pixbuf_get_pixels +PHP_METHOD { - /* TODO */ - return SUCCESS; + GdkPixbuf *pixbuf; + guchar *pixels; + gint rowstride, height; + + NOT_STATIC_METHOD(); + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "")) { + return; + } + + pixbuf = GDK_PIXBUF(PHPG_GOBJECT(this_ptr)); + pixels = gdk_pixbuf_get_pixels(pixbuf); + rowstride = gdk_pixbuf_get_rowstride(pixbuf); + height = gdk_pixbuf_get_height(pixbuf); + + if (pixels == NULL) { + php_error(E_WARNING, "Could not get pixel data"); + return; + } + + RETURN_STRINGL(pixels, rowstride*height, 1); } %% }}}