diff --git a/GdkPixbuf-2.0.gir b/GdkPixbuf-2.0.gir index 105112c..1205f61 100644 --- a/GdkPixbuf-2.0.gir +++ b/GdkPixbuf-2.0.gir @@ -359,13 +359,13 @@ interpolation is just as fast and results in higher quality. - + Micro version of gdk-pixbuf library, that is the "2" in "0.8.2" for example. - + Minor version of gdk-pixbuf library, that is the "8" in "0.8.2" for example. @@ -392,7 +392,7 @@ interpolation is just as fast and results in higher quality. - + Contains the full version of the gdk-pixbuf header as a string. This is the version being compiled against; contrast with #gdk_pixbuf_version. @@ -2534,7 +2534,7 @@ be at least as large as the width of the pixbuf. - + These values can be passed to gdk_pixbuf_xlib_render_to_drawable_alpha() to control how the alpha channel of an image should be handled. This function can create a @@ -2543,6 +2543,7 @@ the image. In the future, when the X Window System gets an alpha channel extension, it will be possible to do full alpha compositing onto arbitrary drawables. For now both cases fall back to a bilevel clipping mask. + it is unused since 2.42. A bilevel clipping mask (black and white) will be created and used to draw the image. Pixels below 0.5 opacity @@ -2554,8 +2555,9 @@ back to a bilevel clipping mask. In the future it will do full alpha compositing. - + An opaque struct representing an animation. + Creates a new animation by loading it from a file. The file format is detected automatically. If the file's format does not support multi-frame @@ -2674,6 +2676,109 @@ result of the operation. + + Get an iterator for displaying an animation. The iterator provides +the frames that should be displayed at a given time. It should be +freed after use with g_object_unref(). + +@start_time would normally come from g_get_current_time(), and marks +the beginning of animation playback. After creating an iterator, you +should immediately display the pixbuf returned by +gdk_pixbuf_animation_iter_get_pixbuf(). Then, you should install +a timeout (with g_timeout_add()) or by some other mechanism ensure +that you'll update the image after +gdk_pixbuf_animation_iter_get_delay_time() milliseconds. Each time +the image is updated, you should reinstall the timeout with the new, +possibly-changed delay time. + +As a shortcut, if @start_time is %NULL, the result of +g_get_current_time() will be used automatically. + +To update the image (i.e. possibly change the result of +gdk_pixbuf_animation_iter_get_pixbuf() to a new frame of the animation), +call gdk_pixbuf_animation_iter_advance(). + +If you're using #GdkPixbufLoader, in addition to updating the image +after the delay time, you should also update it whenever you +receive the area_updated signal and +gdk_pixbuf_animation_iter_on_currently_loading_frame() returns +%TRUE. In this case, the frame currently being fed into the loader +has received new data, so needs to be refreshed. The delay time for +a frame may also be modified after an area_updated signal, for +example if the delay time for a frame is encoded in the data after +the frame itself. So your timeout should be reinstalled after any +area_updated signal. + +A delay time of -1 is possible, indicating "infinite." + + + an iterator to move over the animation + + + + + a #GdkPixbufAnimation + + + + time when the animation starts playing + + + + + + + + + + + + + + + + + + + + + + + If an animation is really just a plain image (has only one frame), +this function returns that image. If the animation is an animation, +this function returns a reasonable thing to display as a static +unanimated image, which might be the first frame, or something more +sophisticated. If an animation hasn't loaded any frames yet, this +function will return %NULL. + + + unanimated image representing the animation + + + + + a #GdkPixbufAnimation + + + + + + If you load a file with gdk_pixbuf_animation_new_from_file() and it +turns out to be a plain, unanimated image, then this function will +return %TRUE. Use gdk_pixbuf_animation_get_static_image() to retrieve +the image. + + + %TRUE if the "animation" was really just an image + + + + + a #GdkPixbufAnimation + + + + Queries the height of the bounding box of a pixbuf animation. @@ -2817,10 +2922,191 @@ the image. + + + - + + Modules supporting animations must derive a type from +#GdkPixbufAnimation, providing suitable implementations of the +virtual functions. + + + the parent class + + + + + + + %TRUE if the "animation" was really just an image + + + + + a #GdkPixbufAnimation + + + + + + + + + + unanimated image representing the animation + + + + + a #GdkPixbufAnimation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + an iterator to move over the animation + + + + + a #GdkPixbufAnimation + + + + time when the animation starts playing + + + + + + + An opaque struct representing an iterator which points to a certain position in an animation. + + + Possibly advances an animation to a new frame. Chooses the frame based +on the start time passed to gdk_pixbuf_animation_get_iter(). + +@current_time would normally come from g_get_current_time(), and +must be greater than or equal to the time passed to +gdk_pixbuf_animation_get_iter(), and must increase or remain +unchanged each time gdk_pixbuf_animation_iter_get_pixbuf() is +called. That is, you can't go backward in time; animations only +play forward. + +As a shortcut, pass %NULL for the current time and g_get_current_time() +will be invoked on your behalf. So you only need to explicitly pass +@current_time if you're doing something odd like playing the animation +at double speed. + +If this function returns %FALSE, there's no need to update the animation +display, assuming the display had been rendered prior to advancing; +if %TRUE, you need to call gdk_pixbuf_animation_iter_get_pixbuf() +and update the display with the new pixbuf. + + + %TRUE if the image may need updating + + + + + a #GdkPixbufAnimationIter + + + + current time + + + + + + Gets the number of milliseconds the current pixbuf should be displayed, +or -1 if the current pixbuf should be displayed forever. g_timeout_add() +conveniently takes a timeout in milliseconds, so you can use a timeout +to schedule the next update. + +Note that some formats, like GIF, might clamp the timeout values in the +image file to avoid updates that are just too quick. The minimum timeout +for GIF images is currently 20 milliseconds. + + + delay time in milliseconds (thousandths of a second) + + + + + an animation iterator + + + + + + Gets the current pixbuf which should be displayed; the pixbuf might not +be the same size as the animation itself +(gdk_pixbuf_animation_get_width(), gdk_pixbuf_animation_get_height()). +This pixbuf should be displayed for +gdk_pixbuf_animation_iter_get_delay_time() milliseconds. The caller +of this function does not own a reference to the returned pixbuf; +the returned pixbuf will become invalid when the iterator advances +to the next frame, which may happen anytime you call +gdk_pixbuf_animation_iter_advance(). Copy the pixbuf to keep it +(don't just add a reference), as it may get recycled as you advance +the iterator. + + + the pixbuf to be displayed + + + + + an animation iterator + + + + + + Used to determine how to respond to the area_updated signal on +#GdkPixbufLoader when loading an animation. area_updated is emitted +for an area of the frame currently streaming in to the loader. So if +you're on the currently loading frame, you need to redraw the screen for +the updated area. + + + %TRUE if the frame we're on is partially loaded, or the last frame + + + + + a #GdkPixbufAnimationIter + + + + Possibly advances an animation to a new frame. Chooses the frame based on the start time passed to gdk_pixbuf_animation_get_iter(). @@ -2920,7 +3206,84 @@ the updated area. + + + + + Modules supporting animations must derive a type from +#GdkPixbufAnimationIter, providing suitable implementations of the +virtual functions. + + + the parent class + + + + + + + delay time in milliseconds (thousandths of a second) + + + + + an animation iterator + + + + + + + + + + the pixbuf to be displayed + + + + + an animation iterator + + + + + + + + + + %TRUE if the frame we're on is partially loaded, or the last frame + + + + + a #GdkPixbufAnimationIter + + + + + + + + + + %TRUE if the image may need updating + + + + + a #GdkPixbufAnimationIter + + + + current time + + + + + + A function of this type is responsible for freeing the pixel array of a pixbuf. The gdk_pixbuf_new_from_data() function lets you @@ -2978,8 +3341,49 @@ domain. - + + A #GdkPixbufFormat contains information about the image format accepted by a +module. Only modules should access the fields directly, applications should +use the <function>gdk_pixbuf_format_*</function> functions. + + the name of the image format. + + + + the signature of the module. + + + + the message domain for the @description. + + + + a description of the image format. + + + + a %NULL-terminated array of MIME types for the image format. + + + + a %NULL-terminated array of typical filename extensions for the + image format. + + + + a combination of #GdkPixbufFormatFlags. + + + + a boolean determining whether the loader is disabled. + + + + a string containing license information, typically set to + shorthands like "GPL", "LGPL", etc. + + Creates a copy of @format @@ -3176,6 +3580,21 @@ with an inappropriate license, see gdk_pixbuf_format_get_license(). + + Flags which allow a module to specify further details about the supported +operations. + + + the module can write out images in the format. + + + the image format is scalable + + + the module is threadsafe. gdk-pixbuf + ignores modules that are not marked as threadsafe. (Since 2.28). + + The GdkPixbufLoader struct contains only private fields. @@ -3620,6 +4039,399 @@ the desired size to which the image should be scaled. + + A #GdkPixbufModule contains the necessary functions to load and save +images in a certain file format. + +A #GdkPixbufModule can be loaded dynamically from a #GModule. +Each loadable module must contain a #GdkPixbufModuleFillVtableFunc function +named <function>fill_vtable</function>, which will get called when the module +is loaded and must set the function pointers of the #GdkPixbufModule. + + + the name of the module, usually the same as the + usual file extension for images of this type, eg. "xpm", "jpeg" or "png". + + + + the path from which the module is loaded. + + + + the loaded #GModule. + + + + a #GdkPixbufFormat holding information about the module. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines the type of the function used to fill a +#GdkPixbufFormat structure with information about a module. + + + + + + + a #GdkPixbufFormat. + + + + + + Defines the type of the function used to set the vtable of a +#GdkPixbufModule when it is loaded. + + + + + + + a #GdkPixbufModule. + + + + + + The signature of a module is a set of prefixes. Prefixes are encoded as +pairs of ordinary strings, where the second string, called the mask, if +not %NULL, must be of the same length as the first one and may contain +' ', '!', 'x', 'z', and 'n' to indicate bytes that must be matched, +not matched, "don't-care"-bytes, zeros and non-zeros. +Each prefix has an associated integer that describes the relevance of +the prefix, with 0 meaning a mismatch and 100 a "perfect match". + +Starting with gdk-pixbuf 2.8, the first byte of the mask may be '*', +indicating an unanchored pattern that matches not only at the beginning, +but also in the middle. Versions prior to 2.8 will interpret the '*' +like an 'x'. + +The signature of a module is stored as an array of +#GdkPixbufModulePatterns. The array is terminated by a pattern +where the @prefix is %NULL. + + +<informalexample><programlisting> +GdkPixbufModulePattern *signature[] = { + { "abcdx", " !x z", 100 }, + { "bla", NULL, 90 }, + { NULL, NULL, 0 } +}; +</programlisting> +The example matches e.g. "auud\0" with relevance 100, and "blau" with +relevance 90.</informalexample> + + + the prefix for this pattern + + + + mask containing bytes which modify how the prefix is matched against + test data + + + + relevance of this pattern + + + + + Defines the type of the function that gets called once the initial +setup of @pixbuf is done. + +#GdkPixbufLoader uses a function of this type to emit the +"<link linkend="GdkPixbufLoader-area-prepared">area_prepared</link>" +signal. + + + + + + + the #GdkPixbuf that is currently being loaded. + + + + if an animation is being loaded, the #GdkPixbufAnimation, else %NULL. + + + + the loader. + + + + + + Defines the type of the function that gets called once the size +of the loaded image is known. + +The function is expected to set @width and @height to the desired +size to which the image should be scaled. If a module has no efficient +way to achieve the desired scaling during the loading of the image, it may +either ignore the size request, or only approximate it - gdk-pixbuf will +then perform the required scaling on the completely loaded image. + +If the function sets @width or @height to zero, the module should interpret +this as a hint that it will be closed soon and shouldn't allocate further +resources. This convention is used to implement gdk_pixbuf_get_file_info() +efficiently. + + + + + + + pointer to a location containing the current image width + + + + pointer to a location containing the current image height + + + + the loader. + + + + + + Defines the type of the function that gets called every time a region +of @pixbuf is updated. + +#GdkPixbufLoader uses a function of this type to emit the +"<link linkend="GdkPixbufLoader-area-updated">area_updated</link>" +signal. + + + + + + + the #GdkPixbuf that is currently being loaded. + + + + the X origin of the updated area. + + + + the Y origin of the updated area. + + + + the width of the updated area. + + + + the height of the updated area. + + + + the loader. + + + + + + + + + + + + + + + + + The possible rotations which can be passed to gdk_pixbuf_rotate_simple(). To make them easier to use, their numerical values are the actual degrees.