gdk_pixbuf2 3.0.8-x64-mingw32 → 3.0.9-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/lib/gdk_pixbuf2.rb +11 -69
  4. data/lib/gdk_pixbuf2/deprecated.rb +160 -0
  5. data/lib/gdk_pixbuf2/loader.rb +51 -0
  6. data/lib/gdk_pixbuf2/pixbuf-loader.rb +24 -0
  7. data/lib/gdk_pixbuf2/pixbuf.rb +282 -0
  8. data/lib/gdk_pixbuf2/version.rb +33 -0
  9. data/sample/anim.rb +2 -2
  10. data/sample/composite.rb +41 -11
  11. data/sample/flip.rb +2 -2
  12. data/sample/format.rb +2 -4
  13. data/sample/loader.rb +3 -3
  14. data/sample/rotate.rb +4 -4
  15. data/sample/save.rb +3 -3
  16. data/sample/scale.rb +14 -6
  17. data/sample/simpleanim.rb +10 -4
  18. data/sample/utils.rb +7 -4
  19. data/sample/xpm.rb +9 -9
  20. data/test/fixture/floppybuddy.gif +0 -0
  21. data/test/fixture/gnome-logo-icon.png +0 -0
  22. data/test/fixture/image.gresource +0 -0
  23. data/test/fixture/image.gresource.xml +6 -0
  24. data/test/gdk_pixbuf2-test-utils.rb +11 -0
  25. data/test/run-test.rb +6 -3
  26. data/test/test-animation.rb +30 -0
  27. data/test/test-loader.rb +31 -0
  28. data/test/test-pixbuf.rb +334 -0
  29. data/vendor/local/bin/gdk-pixbuf-csource.exe +0 -0
  30. data/vendor/local/bin/gdk-pixbuf-pixdata.exe +0 -0
  31. data/vendor/local/bin/gdk-pixbuf-query-loaders.exe +0 -0
  32. data/vendor/local/bin/libgdk_pixbuf-2.0-0.dll +0 -0
  33. data/vendor/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.a +0 -0
  34. data/vendor/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.dll +0 -0
  35. data/vendor/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.dll.a +0 -0
  36. data/vendor/local/lib/libgdk_pixbuf-2.0.dll.a +0 -0
  37. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/GdkPixbufLoader.html +59 -59
  38. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-Animations.html +64 -64
  39. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-File-Loading.html +89 -89
  40. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-File-saving.html +85 -85
  41. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-Image-Data-in-Memory.html +23 -23
  42. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-Inline-data.html +36 -36
  43. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-Module-Interface.html +46 -46
  44. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-Reference-Counting-and-Memory-Mangement.html +10 -10
  45. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-Scaling.html +13 -13
  46. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html +52 -52
  47. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-Utilities.html +10 -10
  48. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-X-Drawables-to-Pixbufs.html +3 -3
  49. data/vendor/local/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-XlibRGB.html +4 -4
  50. metadata +17 -25
  51. data/README +0 -29
  52. data/ext/gdk_pixbuf2/depend +0 -11
  53. data/ext/gdk_pixbuf2/extconf.rb +0 -68
  54. data/ext/gdk_pixbuf2/gdk_pixbuf2.def +0 -2
  55. data/ext/gdk_pixbuf2/rbgdk-pixbuf-format.c +0 -179
  56. data/ext/gdk_pixbuf2/rbgdk-pixbuf-loader.c +0 -164
  57. data/ext/gdk_pixbuf2/rbgdk-pixbuf.c +0 -737
  58. data/ext/gdk_pixbuf2/rbgdk-pixbuf.h +0 -41
  59. data/ext/gdk_pixbuf2/rbgdk-pixbuf2conversions.h +0 -42
  60. data/ext/gdk_pixbuf2/rbgdk-pixbuf2private.h +0 -35
  61. data/ext/gdk_pixbuf2/rbgdk-pixbufanimation.c +0 -93
  62. data/ext/gdk_pixbuf2/rbgdk-pixbufanimationiter.c +0 -71
  63. data/ext/gdk_pixbuf2/rbgdk-pixbufsimpleanim.c +0 -53
  64. data/ext/gdk_pixbuf2/rbgdk-pixdata.c +0 -213
  65. data/extconf.rb +0 -49
  66. data/lib/2.2/gdk_pixbuf2.so +0 -0
  67. data/lib/2.3/gdk_pixbuf2.so +0 -0
  68. data/sample/inline.rb +0 -37
  69. data/sample/pixdata.rb +0 -39
  70. data/test/test-version.rb +0 -47
@@ -1,41 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002-2004 Masao Mutoh
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- #ifndef __RBGDK_PIXBUF_H__
23
- #define __RBGDK_PIXBUF_H__
24
-
25
- #define GDK_PIXBUF_ENABLE_BACKEND
26
- #include <gdk-pixbuf/gdk-pixbuf.h>
27
- #include <gdk-pixbuf/gdk-pixdata.h>
28
- #include "rbgobject.h"
29
- #include "rbgdk-pixbuf2conversions.h"
30
-
31
- extern GType gdk_pixbuf_format_get_type(void);
32
-
33
- #define RBGDK_PIXBUF_CHECK_VERSION(major,minor,micro) \
34
- (GDK_PIXBUF_MAJOR > (major) || \
35
- (GDK_PIXBUF_MAJOR == (major) && GDK_PIXBUF_MINOR > (minor)) || \
36
- (GDK_PIXBUF_MAJOR == (major) && GDK_PIXBUF_MINOR == (minor) && \
37
- GDK_PIXBUF_MICRO >= (micro)))
38
-
39
- #define GDK_TYPE_PIXBUF_FORMAT (gdk_pixbuf_format_get_type())
40
-
41
- #endif /* __RBGDK_PIXBUF_H__ */
@@ -1,42 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- *
5
- * This library is free software; you can redistribute it and/or
6
- * modify it under the terms of the GNU Lesser General Public
7
- * License as published by the Free Software Foundation; either
8
- * version 2.1 of the License, or (at your option) any later version.
9
- *
10
- * This library is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- * Lesser General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU Lesser General Public
16
- * License along with this library; if not, write to the Free Software
17
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
- * MA 02110-1301 USA
19
- */
20
-
21
- #ifndef __RBGDK_PIXBUF2CONVERSIONS_H__
22
- #define __RBGDK_PIXBUF2CONVERSIONS_H__
23
-
24
- #define RVAL2GDKPIXBUF(o) (GDK_PIXBUF(RVAL2GOBJ(o)))
25
- #define RVAL2GDKPIXBUFANIMATION(o) (GDK_PIXBUF_ANIMATION(RVAL2GOBJ(o)))
26
- #define RVAL2GDKPIXBUFANIMATIONITER(o) (GDK_PIXBUF_ANIMATION_ITER(RVAL2GOBJ(o)))
27
- #define RVAL2GDKPIXBUFLOADER(o) (GDK_PIXBUF_LOADER(RVAL2GOBJ(o)))
28
- #define RVAL2GDKPIXBUFSIMPLEANIM(o) (GDK_PIXBUF_SIMPLE_ANIM(RVAL2GOBJ(o)))
29
-
30
- #define RVAL2GDKPIXBUFFORMAT(o) ((GdkPixbufFormat*)RVAL2BOXED(o, GDK_TYPE_PIXBUF_FORMAT))
31
- #define GDKPIXBUFFORMAT2RVAL(o) (BOXED2RVAL(o, GDK_TYPE_PIXBUF_FORMAT))
32
- #define RVAL2GDKPIXDATA(o) ((GdkPixdata*)RVAL2BOXED(o, GDK_TYPE_PIXDATA))
33
- #define GDKPIXDATA2RVAL(o) (BOXED2RVAL(o, GDK_TYPE_PIXDATA))
34
-
35
- #define RVAL2GDKCOLORSPACE(o) (RVAL2GENUM(o, GDK_TYPE_COLORSPACE))
36
- #define GDKCOLORSPACE2RVAL(o) (GENUM2RVAL(o, GDK_TYPE_COLORSPACE))
37
- #define RVAL2GDKINTERPTYPE(o) (RVAL2GENUM(o, GDK_TYPE_INTERP_TYPE))
38
- #define GDKINTERPTYPE2RVAL(o) (GENUM2RVAL(o, GDK_TYPE_INTERP_TYPE))
39
- #define RVAL2GDKPIXBUFROTATION(o) (RVAL2GENUM(o, GDK_TYPE_PIXBUF_ROTATION))
40
- #define GDKPIXBUFROTATION2RVAL(o) (GENUM2RVAL(o, GDK_TYPE_PIXBUF_ROTATION))
41
-
42
- #endif /* __RBGDK_PIXBUF2CONVERSIONS_H__ */
@@ -1,35 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- *
5
- * This library is free software; you can redistribute it and/or
6
- * modify it under the terms of the GNU Lesser General Public
7
- * License as published by the Free Software Foundation; either
8
- * version 2.1 of the License, or (at your option) any later version.
9
- *
10
- * This library is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- * Lesser General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU Lesser General Public
16
- * License along with this library; if not, write to the Free Software
17
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
- * MA 02110-1301 USA
19
- */
20
-
21
- #ifndef __RBGDK_PIXBUF2PRIVATE_H__
22
- #define __RBGDK_PIXBUF2PRIVATE_H__
23
-
24
- #include "rbgdk-pixbuf.h"
25
-
26
- G_GNUC_INTERNAL void Init_gdk_pixbuf_animation(VALUE mGLib);
27
- G_GNUC_INTERNAL void Init_gdk_pixbuf_animation_iter(VALUE mGLib);
28
- G_GNUC_INTERNAL void Init_gdk_pixbuf_format(VALUE mGLib);
29
- G_GNUC_INTERNAL void Init_gdk_pixbuf_loader(VALUE mGLib);
30
- #if RBGDK_PIXBUF_CHECK_VERSION(2,8,0)
31
- G_GNUC_INTERNAL void Init_gdk_pixbuf_simpleanim(VALUE mGLib);
32
- #endif
33
- G_GNUC_INTERNAL void Init_gdk_pixdata(VALUE mGLib);
34
-
35
- #endif /* __RBGDK_PIXBUF2PRIVATE_H__ */
@@ -1,93 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002,2003 Masao Mutoh
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- #include "rbgdk-pixbuf2private.h"
23
-
24
- #define RG_TARGET_NAMESPACE cPixbufAnimation
25
- #define _SELF(s) (RVAL2GDKPIXBUFANIMATION(s))
26
-
27
- static VALUE
28
- rg_initialize(VALUE self, VALUE filename)
29
- {
30
- GdkPixbufAnimation* ret;
31
- GError* error = NULL;
32
-
33
- ret = gdk_pixbuf_animation_new_from_file(RVAL2CSTR(filename), &error);
34
- if (ret == NULL)
35
- RAISE_GERROR(error);
36
-
37
- G_INITIALIZE(self, ret);
38
- return Qnil;
39
- }
40
-
41
- static VALUE
42
- rg_width(VALUE self)
43
- {
44
- return INT2NUM(gdk_pixbuf_animation_get_width(_SELF(self)));
45
- }
46
-
47
- static VALUE
48
- rg_height(VALUE self)
49
- {
50
- return INT2NUM(gdk_pixbuf_animation_get_height(_SELF(self)));
51
- }
52
-
53
- static VALUE
54
- rg_get_iter(int argc, VALUE *argv, VALUE self)
55
- {
56
- VALUE start_time_sec, start_time_usec;
57
- GTimeVal start_time;
58
-
59
- rb_scan_args(argc, argv, "02", &start_time_sec, &start_time_usec);
60
-
61
- if (NIL_P(start_time_sec))
62
- return GOBJ2RVAL(gdk_pixbuf_animation_get_iter(_SELF(self), NULL));
63
-
64
- start_time.tv_sec = NUM2LONG(start_time_sec);
65
- start_time.tv_usec = NIL_P(start_time_usec) ? 0 : NUM2LONG(start_time_usec);
66
-
67
- return GOBJ2RVAL(gdk_pixbuf_animation_get_iter(_SELF(self), &start_time));
68
- }
69
-
70
- static VALUE
71
- rg_static_image_p(VALUE self)
72
- {
73
- return CBOOL2RVAL(gdk_pixbuf_animation_is_static_image(_SELF(self)));
74
- }
75
-
76
- static VALUE
77
- rg_static_image(VALUE self)
78
- {
79
- return GOBJ2RVAL(gdk_pixbuf_animation_get_static_image(_SELF(self)));
80
- }
81
-
82
- void
83
- Init_gdk_pixbuf_animation(VALUE mGdk)
84
- {
85
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_PIXBUF_ANIMATION, "PixbufAnimation", mGdk);
86
-
87
- RG_DEF_METHOD(initialize, 1);
88
- RG_DEF_METHOD(width, 0);
89
- RG_DEF_METHOD(height, 0);
90
- RG_DEF_METHOD(get_iter, -1);
91
- RG_DEF_METHOD_P(static_image, 0);
92
- RG_DEF_METHOD(static_image, 0);
93
- }
@@ -1,71 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002,2003 Masao Mutoh
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- #include "rbgdk-pixbuf2private.h"
23
-
24
- #define RG_TARGET_NAMESPACE cPixbufAnimationIter
25
- #define _SELF(i) (RVAL2GDKPIXBUFANIMATIONITER(i))
26
-
27
- static VALUE
28
- rg_advance(int argc, VALUE *argv, VALUE self)
29
- {
30
- VALUE current_time_sec, current_time_usec;
31
- GTimeVal current_time;
32
-
33
- rb_scan_args(argc, argv, "02", &current_time_sec, &current_time_usec);
34
-
35
- if (NIL_P(current_time_sec))
36
- return CBOOL2RVAL(gdk_pixbuf_animation_iter_advance(_SELF(self), NULL));
37
-
38
- current_time.tv_sec = NUM2LONG(current_time_sec);
39
- current_time.tv_usec = NIL_P(current_time_usec) ? 0 : NUM2LONG(current_time_usec);
40
-
41
- return CBOOL2RVAL(gdk_pixbuf_animation_iter_advance(_SELF(self), &current_time));
42
- }
43
-
44
- static VALUE
45
- rg_delay_time(VALUE self)
46
- {
47
- return INT2NUM(gdk_pixbuf_animation_iter_get_delay_time(_SELF(self)));
48
- }
49
-
50
- static VALUE
51
- rg_on_currently_loading_frame_p(VALUE self)
52
- {
53
- return CBOOL2RVAL(gdk_pixbuf_animation_iter_on_currently_loading_frame(_SELF(self)));
54
- }
55
-
56
- static VALUE
57
- rg_pixbuf(VALUE self)
58
- {
59
- return GOBJ2RVAL(gdk_pixbuf_animation_iter_get_pixbuf(_SELF(self)));
60
- }
61
-
62
- void
63
- Init_gdk_pixbuf_animation_iter(VALUE mGdk)
64
- {
65
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_PIXBUF_ANIMATION_ITER, "PixbufAnimationIter", mGdk);
66
-
67
- RG_DEF_METHOD(advance, -1);
68
- RG_DEF_METHOD(delay_time, 0);
69
- RG_DEF_METHOD_P(on_currently_loading_frame, 0);
70
- RG_DEF_METHOD(pixbuf, 0);
71
- }
@@ -1,53 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002,2003 the ruby-gnome2 project
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- #include "rbgdk-pixbuf2private.h"
23
-
24
- #if RBGDK_PIXBUF_CHECK_VERSION(2,8,0)
25
- #define RG_TARGET_NAMESPACE cPixbufSimpleAnim
26
- #define _SELF(s) (RVAL2GDKPIXBUFSIMPLEANIM(s))
27
-
28
- static VALUE
29
- rg_initialize(VALUE self, VALUE width, VALUE height, VALUE rate)
30
- {
31
- GdkPixbufSimpleAnim* ret = gdk_pixbuf_simple_anim_new(NUM2INT(width), NUM2INT(height), NUM2DBL(rate));
32
- G_INITIALIZE(self, ret);
33
- return Qnil;
34
- }
35
-
36
- static VALUE
37
- rg_add_frame(VALUE self, VALUE pixbuf)
38
- {
39
- gdk_pixbuf_simple_anim_add_frame(_SELF(self), RVAL2GDKPIXBUF(pixbuf));
40
- return self;
41
- }
42
- #endif
43
-
44
- void
45
- Init_gdk_pixbuf_simpleanim(VALUE mGdk)
46
- {
47
- #if RBGDK_PIXBUF_CHECK_VERSION(2,8,0)
48
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_PIXBUF_SIMPLE_ANIM, "PixbufSimpleAnim", mGdk);
49
-
50
- RG_DEF_METHOD(initialize, 3);
51
- RG_DEF_METHOD(add_frame, 1);
52
- #endif
53
- }
@@ -1,213 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002,2003 Masao Mutoh
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- #include "rbgdk-pixbuf2private.h"
23
-
24
- #define GDK_TYPE_PIXDATA (gdk_pixdata_get_type())
25
- #define RG_TARGET_NAMESPACE cPixdata
26
- #define _SELF(s) (RVAL2GDKPIXDATA(s))
27
-
28
- static ID id_pixdata;
29
-
30
- /*****************************************/
31
- static GdkPixdata *
32
- gdk_pixdata_copy(const GdkPixdata* src)
33
- {
34
- GdkPixdata* data;
35
- g_return_val_if_fail (src != NULL, NULL);
36
- data = g_new(GdkPixdata, 1);
37
- *data = *src;
38
- return data;
39
- }
40
-
41
- static GType
42
- gdk_pixdata_get_type(void)
43
- {
44
- static GType our_type = 0;
45
- if (our_type == 0)
46
- our_type = g_boxed_type_register_static ("GdkPixdata",
47
- (GBoxedCopyFunc)gdk_pixdata_copy,
48
- (GBoxedFreeFunc)g_free);
49
- return our_type;
50
- }
51
- /*****************************************/
52
- static VALUE
53
- rg_s_from_pixbuf(G_GNUC_UNUSED VALUE self, VALUE pixbuf, VALUE use_rle)
54
- {
55
- GdkPixdata pixdata;
56
- gpointer rle_data = gdk_pixdata_from_pixbuf(&pixdata, RVAL2GDKPIXBUF(pixbuf), RVAL2CBOOL(use_rle));
57
- VALUE ret = GDKPIXDATA2RVAL(&pixdata);
58
- if (use_rle){
59
- /* need to manage the returned value */
60
- rb_ivar_set(ret, id_pixdata, Data_Wrap_Struct(rb_cData, NULL, g_free, rle_data));
61
- }
62
- return ret;
63
- }
64
-
65
- static VALUE
66
- rg_to_pixbuf(VALUE self, VALUE copy_pixels)
67
- {
68
- GError* error = NULL;
69
- GdkPixbuf* ret = gdk_pixbuf_from_pixdata(_SELF(self), RVAL2CBOOL(copy_pixels), &error);
70
- if (error)
71
- RAISE_GERROR(error);
72
- return GOBJ2RVAL(ret);
73
- }
74
-
75
- static VALUE
76
- rg_serialize(VALUE self)
77
- {
78
- guint stream_length;
79
- guint i;
80
- guint8* ret = gdk_pixdata_serialize(_SELF(self), &stream_length);
81
- VALUE ary = rb_ary_new2(stream_length);
82
- for (i = 0; i < stream_length; i++) {
83
- rb_ary_push(ary, UINT2NUM(ret[i]));
84
- }
85
- return ary;
86
- }
87
-
88
- static VALUE
89
- rg_s_deserialize(VALUE self, VALUE rbstream)
90
- {
91
- GdkPixdata pixdata;
92
- long n;
93
- guint8 *stream = RVAL2GUINT8S(rbstream, n);
94
- GError *error = NULL;
95
-
96
- /* TODO: Should we really be creating a new array here? As far as I can
97
- tell, the data is copied. */
98
- if (!gdk_pixdata_deserialize(&pixdata, n, stream, &error))
99
- RAISE_GERROR(error);
100
-
101
- /* need to manage the returned value */
102
- rb_ivar_set(self, id_pixdata, Data_Wrap_Struct(rb_cData, NULL, g_free, stream));
103
-
104
- return GDKPIXDATA2RVAL(&pixdata);
105
- }
106
-
107
- static VALUE
108
- rg_to_csource(VALUE self, VALUE name, VALUE dump_type)
109
- {
110
- GString* str = gdk_pixdata_to_csource(_SELF(self), RVAL2CSTR(name), FIX2INT(dump_type));
111
- VALUE ret = CSTR2RVAL(str->str);
112
- g_string_free(str, TRUE);
113
- return ret;
114
- }
115
-
116
- /* GdkPixdata */
117
- static VALUE
118
- rg_magic(VALUE self)
119
- {
120
- return UINT2NUM(_SELF(self)->magic);
121
- }
122
-
123
- static VALUE
124
- rg_length(VALUE self)
125
- {
126
- gint32 length = _SELF(self)->length;
127
-
128
- if(length > 0)
129
- length -= GDK_PIXDATA_HEADER_LENGTH;
130
- return INT2NUM(length);
131
- }
132
-
133
- static VALUE
134
- rg_pixdata_type(VALUE self)
135
- {
136
- return UINT2NUM(_SELF(self)->pixdata_type);
137
- }
138
-
139
- static VALUE
140
- rg_rowstride(VALUE self)
141
- {
142
- return INT2NUM(_SELF(self)->rowstride);
143
- }
144
-
145
- static VALUE
146
- rg_width(VALUE self)
147
- {
148
- return INT2NUM(_SELF(self)->width);
149
- }
150
-
151
- static VALUE
152
- rg_height(VALUE self)
153
- {
154
- return INT2NUM(_SELF(self)->height);
155
- }
156
-
157
- static VALUE
158
- rg_pixel_data(VALUE self)
159
- {
160
- gint i;
161
- guint8* ret = _SELF(self)->pixel_data;
162
- gint32 length = _SELF(self)->length - GDK_PIXDATA_HEADER_LENGTH;
163
-
164
- VALUE ary = rb_ary_new2(length);
165
- for (i = 0; i < length; i++) {
166
- rb_ary_push(ary, UINT2NUM(ret[i]));
167
- }
168
- return ary;
169
- }
170
-
171
- void
172
- Init_gdk_pixdata(VALUE mGdk)
173
- {
174
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_PIXDATA, "Pixdata", mGdk);
175
-
176
- id_pixdata = rb_intern("pixdata");
177
-
178
- RG_DEF_SMETHOD(from_pixbuf, 2);
179
- RG_DEF_SMETHOD(deserialize, 1);
180
- RG_DEF_METHOD(to_pixbuf, 1);
181
- RG_DEF_METHOD(serialize, 0);
182
- RG_DEF_METHOD(to_csource, 2);
183
- RG_DEF_METHOD(magic, 0);
184
- RG_DEF_METHOD(length, 0);
185
- RG_DEF_METHOD(pixdata_type, 0);
186
- RG_DEF_METHOD(rowstride, 0);
187
- RG_DEF_METHOD(width, 0);
188
- RG_DEF_METHOD(height, 0);
189
- RG_DEF_METHOD(pixel_data, 0);
190
-
191
- rb_define_const(RG_TARGET_NAMESPACE, "PIXBUF_MAGIC_NUMBER", INT2NUM(GDK_PIXBUF_MAGIC_NUMBER));
192
- rb_define_const(RG_TARGET_NAMESPACE, "HEADER_LENGTH", INT2NUM(GDK_PIXDATA_HEADER_LENGTH));
193
-
194
- /* GdkPixdataType */
195
- rb_define_const(RG_TARGET_NAMESPACE, "COLOR_TYPE_RGB", INT2FIX(GDK_PIXDATA_COLOR_TYPE_RGB));
196
- rb_define_const(RG_TARGET_NAMESPACE, "COLOR_TYPE_RGBA", INT2FIX(GDK_PIXDATA_COLOR_TYPE_RGBA));
197
- rb_define_const(RG_TARGET_NAMESPACE, "COLOR_TYPE_MASK", INT2FIX(GDK_PIXDATA_COLOR_TYPE_MASK));
198
- rb_define_const(RG_TARGET_NAMESPACE, "SAMPLE_WIDTH_8", INT2FIX(GDK_PIXDATA_SAMPLE_WIDTH_8));
199
- rb_define_const(RG_TARGET_NAMESPACE, "SAMPLE_WIDTH_MASK", INT2FIX(GDK_PIXDATA_SAMPLE_WIDTH_MASK));
200
- rb_define_const(RG_TARGET_NAMESPACE, "ENCODING_RAW", INT2FIX(GDK_PIXDATA_ENCODING_RAW));
201
- rb_define_const(RG_TARGET_NAMESPACE, "ENCODING_RLE", INT2FIX(GDK_PIXDATA_ENCODING_RLE));
202
- rb_define_const(RG_TARGET_NAMESPACE, "ENCODING_MASK", INT2FIX(GDK_PIXDATA_ENCODING_MASK));
203
-
204
- /* GdkPixdataDumpType */
205
- rb_define_const(RG_TARGET_NAMESPACE, "DUMP_PIXDATA_STREAM", INT2FIX(GDK_PIXDATA_DUMP_PIXDATA_STREAM));
206
- rb_define_const(RG_TARGET_NAMESPACE, "DUMP_PIXDATA_STRUCT", INT2FIX(GDK_PIXDATA_DUMP_PIXDATA_STRUCT));
207
- rb_define_const(RG_TARGET_NAMESPACE, "DUMP_MACROS", INT2FIX(GDK_PIXDATA_DUMP_MACROS));
208
- rb_define_const(RG_TARGET_NAMESPACE, "DUMP_GTYPES", INT2FIX(GDK_PIXDATA_DUMP_GTYPES));
209
- rb_define_const(RG_TARGET_NAMESPACE, "DUMP_CTYPES", INT2FIX(GDK_PIXDATA_DUMP_CTYPES));
210
- rb_define_const(RG_TARGET_NAMESPACE, "DUMP_STATIC", INT2FIX(GDK_PIXDATA_DUMP_STATIC));
211
- rb_define_const(RG_TARGET_NAMESPACE, "DUMP_CONST", INT2FIX(GDK_PIXDATA_DUMP_CONST));
212
- rb_define_const(RG_TARGET_NAMESPACE, "DUMP_RLE_DECODER", INT2FIX(GDK_PIXDATA_DUMP_RLE_DECODER));
213
- }