{ This is an autogenerated unit using gobject introspection (gir2pascal). Do not Edit. }
unit LazGdkPixbuf2;

{$MODE OBJFPC}{$H+}

{$PACKRECORDS C}
{$MODESWITCH DUPLICATELOCALS+}

{$ifdef Unix}
{$LINKLIB libgdk_pixbuf-2.0.so.0}
{$endif}
{$WARN 3031 off : Values in enumeration types have to be ascending}
interface
uses
  CTypes, LazGModule2, LazGio2, LazGLib2, LazGObject2;

const
  {$ifdef MsWindows}
  LazGdkPixbuf2_library = 'libgdk_pixbuf-2.0.so.dll';
  {$else}
  LazGdkPixbuf2_library = 'libgdk_pixbuf-2.0.so.0';
  {$endif}

  GDK_PIXBUF_MAJOR = 2;
  GDK_PIXBUF_MICRO = 10;
  GDK_PIXBUF_MINOR = 42;
  GDK_PIXBUF_VERSION = '2.42.10';
type
  TGdkColorspace = (
    TGdkColorspaceMinValue = -$7FFFFFFF,
    GDK_COLORSPACE_RGB = 0,
    TGdkColorspaceMaxValue = $7FFFFFFF
  );
  TGdkInterpType = (
    TGdkInterpTypeMinValue = -$7FFFFFFF,
    GDK_INTERP_NEAREST = 0,
    GDK_INTERP_TILES = 1,
    GDK_INTERP_BILINEAR = 2,
    GDK_INTERP_HYPER = 3,
    TGdkInterpTypeMaxValue = $7FFFFFFF
  );
  TGdkPixbufRotation = (
    TGdkPixbufRotationMinValue = -$7FFFFFFF,
    GDK_PIXBUF_ROTATE_NONE = 0,
    GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE = 90,
    GDK_PIXBUF_ROTATE_UPSIDEDOWN = 180,
    GDK_PIXBUF_ROTATE_CLOCKWISE = 270,
    TGdkPixbufRotationMaxValue = $7FFFFFFF
  );
  TGdkPixbufError = (
    TGdkPixbufErrorMinValue = -$7FFFFFFF,
    GDK_PIXBUF_ERROR_CORRUPT_IMAGE = 0,
    GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY = 1,
    GDK_PIXBUF_ERROR_BAD_OPTION = 2,
    GDK_PIXBUF_ERROR_UNKNOWN_TYPE = 3,
    GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION = 4,
    GDK_PIXBUF_ERROR_FAILED = 5,
    GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION = 6,
    TGdkPixbufErrorMaxValue = $7FFFFFFF
  );
  TGdkPixbufFormatFlagsIdx = (
    TGdkPixbufFormatFlagsIdxMinValue = 0,
    GDK_PIXBUF_FORMAT_WRITABLE = 0,
    GDK_PIXBUF_FORMAT_SCALABLE = 1,
    GDK_PIXBUF_FORMAT_THREADSAFE = 2,
    TGdkPixbufFormatFlagsIdxMaxValue = 31
  );
  TGdkPixbufFormatFlags = Set of TGdkPixbufFormatFlagsIdx;
type


  { TGdkColorspace }
  PPGdkColorspace = ^PGdkColorspace;
  PGdkColorspace = ^TGdkColorspace;


  { TGdkInterpType }
  PPGdkInterpType = ^PGdkInterpType;
  PGdkInterpType = ^TGdkInterpType;


  { TGdkPixbuf }
  PPGdkPixbuf = ^PGdkPixbuf;
  PGdkPixbuf = ^TGdkPixbuf;


  { TGdkPixbufDestroyNotify }
  PPGdkPixbufDestroyNotify = ^PGdkPixbufDestroyNotify;
  PGdkPixbufDestroyNotify = ^TGdkPixbufDestroyNotify;
  TGdkPixbufDestroyNotify = procedure(pixels: Pguint8; data: gpointer); cdecl;


  { TGdkPixbufFormat }
  PPGdkPixbufFormat = ^PGdkPixbufFormat;
  PGdkPixbufFormat = ^TGdkPixbufFormat;


  { TGdkPixbufRotation }
  PPGdkPixbufRotation = ^PGdkPixbufRotation;
  PGdkPixbufRotation = ^TGdkPixbufRotation;


  { TGdkPixbufSaveFunc }
  PPGdkPixbufSaveFunc = ^PGdkPixbufSaveFunc;
  PGdkPixbufSaveFunc = ^TGdkPixbufSaveFunc;
  TGdkPixbufSaveFunc = function(buf: Pgchar; count: gsize; error: PPGError; data: gpointer): gboolean; cdecl;
  TGdkPixbuf = object(TGObject)
    function new(colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint): PGdkPixbuf; cdecl; inline; static;
    function new_from_bytes(data: PGBytes; colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint; rowstride: gint): PGdkPixbuf; cdecl; inline; static;
    function new_from_data(data: Pguint8; colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint; rowstride: gint; destroy_fn: TGdkPixbufDestroyNotify; destroy_fn_data: gpointer): PGdkPixbuf; cdecl; inline; static;
    function new_from_file(filename: Pgchar; error: PPGError): PGdkPixbuf; cdecl; inline; static;
    function new_from_file_at_scale(filename: Pgchar; width: gint; height: gint; preserve_aspect_ratio: gboolean; error: PPGError): PGdkPixbuf; cdecl; inline; static;
    function new_from_file_at_size(filename: Pgchar; width: gint; height: gint; error: PPGError): PGdkPixbuf; cdecl; inline; static;
    function new_from_resource(resource_path: Pgchar; error: PPGError): PGdkPixbuf; cdecl; inline; static;
    function new_from_resource_at_scale(resource_path: Pgchar; width: gint; height: gint; preserve_aspect_ratio: gboolean; error: PPGError): PGdkPixbuf; cdecl; inline; static;
    function new_from_stream(stream: PGInputStream; cancellable: PGCancellable; error: PPGError): PGdkPixbuf; cdecl; inline; static;
    function new_from_stream_at_scale(stream: PGInputStream; width: gint; height: gint; preserve_aspect_ratio: gboolean; cancellable: PGCancellable; error: PPGError): PGdkPixbuf; cdecl; inline; static;
    function new_from_stream_finish(async_result: PGAsyncResult; error: PPGError): PGdkPixbuf; cdecl; inline; static;
    function new_from_xpm_data(data: PPgchar): PGdkPixbuf; cdecl; inline; static;
    function calculate_rowstride(colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint): gint; cdecl; inline; static;
    function get_file_info(filename: Pgchar; width: Pgint; height: Pgint): PGdkPixbufFormat; cdecl; inline; static;
    procedure get_file_info_async(filename: Pgchar; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl; inline; static;
    function get_file_info_finish(async_result: PGAsyncResult; width: Pgint; height: Pgint; error: PPGError): PGdkPixbufFormat; cdecl; inline; static;
    function get_formats: PGSList; cdecl; inline; static;
    function init_modules(path: Pgchar; error: PPGError): gboolean; cdecl; inline; static;
    procedure new_from_stream_async(stream: PGInputStream; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl; inline; static;
    procedure new_from_stream_at_scale_async(stream: PGInputStream; width: gint; height: gint; preserve_aspect_ratio: gboolean; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl; inline; static;
    function save_to_stream_finish(async_result: PGAsyncResult; error: PPGError): gboolean; cdecl; inline; static;
    function add_alpha(substitute_color: gboolean; r: guint8; g: guint8; b: guint8): PGdkPixbuf; cdecl; inline;
    function apply_embedded_orientation: PGdkPixbuf; cdecl; inline;
    procedure composite(dest: PGdkPixbuf; dest_x: gint; dest_y: gint; dest_width: gint; dest_height: gint; offset_x: gdouble; offset_y: gdouble; scale_x: gdouble; scale_y: gdouble; interp_type: TGdkInterpType; overall_alpha: gint); cdecl; inline;
    procedure composite_color(dest: PGdkPixbuf; dest_x: gint; dest_y: gint; dest_width: gint; dest_height: gint; offset_x: gdouble; offset_y: gdouble; scale_x: gdouble; scale_y: gdouble; interp_type: TGdkInterpType; overall_alpha: gint; check_x: gint; check_y: gint; check_size: gint; color1: guint32; color2: guint32); cdecl; inline;
    function composite_color_simple(dest_width: gint; dest_height: gint; interp_type: TGdkInterpType; overall_alpha: gint; check_size: gint; color1: guint32; color2: guint32): PGdkPixbuf; cdecl; inline;
    function copy: PGdkPixbuf; cdecl; inline;
    procedure copy_area(src_x: gint; src_y: gint; width: gint; height: gint; dest_pixbuf: PGdkPixbuf; dest_x: gint; dest_y: gint); cdecl; inline;
    function copy_options(dest_pixbuf: PGdkPixbuf): gboolean; cdecl; inline;
    procedure fill(pixel: guint32); cdecl; inline;
    function flip(horizontal: gboolean): PGdkPixbuf; cdecl; inline;
    function get_bits_per_sample: gint; cdecl; inline;
    function get_byte_length: gsize; cdecl; inline;
    function get_colorspace: TGdkColorspace; cdecl; inline;
    function get_has_alpha: gboolean; cdecl; inline;
    function get_height: gint; cdecl; inline;
    function get_n_channels: gint; cdecl; inline;
    function get_option(key: Pgchar): Pgchar; cdecl; inline;
    function get_options: PGHashTable; cdecl; inline;
    function get_pixels: Pguint8; cdecl; inline;
    function get_pixels_with_length(length: Pguint): Pguint8; cdecl; inline;
    function get_rowstride: gint; cdecl; inline;
    function get_width: gint; cdecl; inline;
    function new_subpixbuf(src_x: gint; src_y: gint; width: gint; height: gint): PGdkPixbuf; cdecl; inline;
    function read_pixel_bytes: PGBytes; cdecl; inline;
    function read_pixels: Pguint8; cdecl; inline;
    function remove_option(key: Pgchar): gboolean; cdecl; inline;
    function rotate_simple(angle: TGdkPixbufRotation): PGdkPixbuf; cdecl; inline;
    procedure saturate_and_pixelate(dest: PGdkPixbuf; saturation: gfloat; pixelate: gboolean); cdecl; inline;
    //function save(filename: Pgchar; type_: Pgchar; error: PPGError; args: array of const): gboolean; cdecl; inline;
    //function save_to_buffer(buffer: PPgchar; buffer_size: Pgsize; type_: Pgchar; error: PPGError; args: array of const): gboolean; cdecl; inline;
    function save_to_bufferv(buffer: PPgchar; buffer_size: Pgsize; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; error: PPGError): gboolean; cdecl; inline;
    //function save_to_callback(save_func: TGdkPixbufSaveFunc; user_data: gpointer; type_: Pgchar; error: PPGError; args: array of const): gboolean; cdecl; inline;
    function save_to_callbackv(save_func: TGdkPixbufSaveFunc; user_data: gpointer; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; error: PPGError): gboolean; cdecl; inline;
    //function save_to_stream(stream: PGOutputStream; type_: Pgchar; cancellable: PGCancellable; error: PPGError; args: array of const): gboolean; cdecl; inline;
    //procedure save_to_stream_async(stream: PGOutputStream; type_: Pgchar; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer; args: array of const); cdecl; inline;
    function save_to_streamv(stream: PGOutputStream; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; cancellable: PGCancellable; error: PPGError): gboolean; cdecl; inline;
    procedure save_to_streamv_async(stream: PGOutputStream; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl; inline;
    function savev(filename: Pgchar; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; error: PPGError): gboolean; cdecl; inline;
    procedure scale(dest: PGdkPixbuf; dest_x: gint; dest_y: gint; dest_width: gint; dest_height: gint; offset_x: gdouble; offset_y: gdouble; scale_x: gdouble; scale_y: gdouble; interp_type: TGdkInterpType); cdecl; inline;
    function scale_simple(dest_width: gint; dest_height: gint; interp_type: TGdkInterpType): PGdkPixbuf; cdecl; inline;
    function set_option(key: Pgchar; value: Pgchar): gboolean; cdecl; inline;
    property bits_per_sample: gint read get_bits_per_sample  { property is writeable but setter not declared } ;
    property colorspace: TGdkColorspace read get_colorspace  { property is writeable but setter not declared } ;
    property has_alpha: gboolean read get_has_alpha  { property is writeable but setter not declared } ;
    property height: gint read get_height  { property is writeable but setter not declared } ;
    property n_channels: gint read get_n_channels  { property is writeable but setter not declared } ;
    //property pixel_bytes: UNABLE_TO_FIND_TYPE_FOR_PROPERTY read get_pixel_bytes  { property is writeable but setter not declared } ;
    property pixels: Pguint8 read get_pixels  { property is writeable but setter not declared } ;
    property rowstride: gint read get_rowstride  { property is writeable but setter not declared } ;
    property width: gint read get_width  { property is writeable but setter not declared } ;
  end;


  { TGdkPixbufModulePattern }
  PPGdkPixbufModulePattern = ^PGdkPixbufModulePattern;
  PGdkPixbufModulePattern = ^TGdkPixbufModulePattern;
  TGdkPixbufFormat = object
    name: Pgchar;
    signature: PGdkPixbufModulePattern;
    domain: Pgchar;
    description: Pgchar;
    mime_types: PPgchar;
    extensions: PPgchar;
    flags: guint32;
    disabled: gboolean;
    license: Pgchar;
    function copy: PGdkPixbufFormat; cdecl; inline;
    procedure free; cdecl; inline;
    function get_description: Pgchar; cdecl; inline;
    function get_extensions: PPgchar; cdecl; inline;
    function get_license: Pgchar; cdecl; inline;
    function get_mime_types: PPgchar; cdecl; inline;
    function get_name: Pgchar; cdecl; inline;
    function is_disabled: gboolean; cdecl; inline;
    function is_save_option_supported(option_key: Pgchar): gboolean; cdecl; inline;
    function is_scalable: gboolean; cdecl; inline;
    function is_writable: gboolean; cdecl; inline;
    procedure set_disabled(disabled: gboolean); cdecl; inline;
  end;


  { TGdkPixbufAnimation }
  PPGdkPixbufAnimation = ^PGdkPixbufAnimation;
  PGdkPixbufAnimation = ^TGdkPixbufAnimation;


  { TGdkPixbufAnimationIter }
  PPGdkPixbufAnimationIter = ^PGdkPixbufAnimationIter;
  PGdkPixbufAnimationIter = ^TGdkPixbufAnimationIter;
  TGdkPixbufAnimation = object(TGObject)
    function new_from_file(filename: Pgchar; error: PPGError): PGdkPixbufAnimation; cdecl; inline; static;
    function new_from_resource(resource_path: Pgchar; error: PPGError): PGdkPixbufAnimation; cdecl; inline; static;
    function new_from_stream(stream: PGInputStream; cancellable: PGCancellable; error: PPGError): PGdkPixbufAnimation; cdecl; inline; static;
    function new_from_stream_finish(async_result: PGAsyncResult; error: PPGError): PGdkPixbufAnimation; cdecl; inline; static;
    procedure new_from_stream_async(stream: PGInputStream; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl; inline; static;
    function get_height: gint; cdecl; inline;
    function get_iter(start_time: PGTimeVal): PGdkPixbufAnimationIter; cdecl; inline;
    function get_static_image: PGdkPixbuf; cdecl; inline;
    function get_width: gint; cdecl; inline;
    function is_static_image: gboolean; cdecl; inline;
  end;
  TGdkPixbufAnimationIter = object(TGObject)
    function advance(current_time: PGTimeVal): gboolean; cdecl; inline;
    function get_delay_time: gint; cdecl; inline;
    function get_pixbuf: PGdkPixbuf; cdecl; inline;
    function on_currently_loading_frame: gboolean; cdecl; inline;
  end;


  { TGdkPixbufAnimationClass }
  PPGdkPixbufAnimationClass = ^PGdkPixbufAnimationClass;
  PGdkPixbufAnimationClass = ^TGdkPixbufAnimationClass;
  TGdkPixbufAnimationClass = object
    parent_class: TGObjectClass;
    is_static_image: function(animation: PGdkPixbufAnimation): gboolean; cdecl;
    get_static_image: function(animation: PGdkPixbufAnimation): PGdkPixbuf; cdecl;
    get_size: procedure(animation: PGdkPixbufAnimation; width: Pgint; height: Pgint); cdecl;
    get_iter: function(animation: PGdkPixbufAnimation; start_time: PGTimeVal): PGdkPixbufAnimationIter; cdecl;
  end;


  { TGdkPixbufAnimationIterClass }
  PPGdkPixbufAnimationIterClass = ^PGdkPixbufAnimationIterClass;
  PGdkPixbufAnimationIterClass = ^TGdkPixbufAnimationIterClass;
  TGdkPixbufAnimationIterClass = object
    parent_class: TGObjectClass;
    get_delay_time: function(iter: PGdkPixbufAnimationIter): gint; cdecl;
    get_pixbuf: function(iter: PGdkPixbufAnimationIter): PGdkPixbuf; cdecl;
    on_currently_loading_frame: function(iter: PGdkPixbufAnimationIter): gboolean; cdecl;
    advance: function(iter: PGdkPixbufAnimationIter; current_time: PGTimeVal): gboolean; cdecl;
  end;


  { TGdkPixbufError }
  PPGdkPixbufError = ^PGdkPixbufError;
  PGdkPixbufError = ^TGdkPixbufError;

  TGdkPixbufModulePattern = record
    prefix: Pgchar;
    mask: Pgchar;
    relevance: gint;
  end;




  { TGdkPixbufFormatFlags }
  PPGdkPixbufFormatFlags = ^PGdkPixbufFormatFlags;
  PGdkPixbufFormatFlags = ^TGdkPixbufFormatFlags;


  { TGdkPixbufLoader }
  PPGdkPixbufLoader = ^PGdkPixbufLoader;
  PGdkPixbufLoader = ^TGdkPixbufLoader;
  TGdkPixbufLoader = object(TGObject)
    priv: gpointer;
    function new: PGdkPixbufLoader; cdecl; inline; static;
    function new_with_mime_type(mime_type: Pgchar; error: PPGError): PGdkPixbufLoader; cdecl; inline; static;
    function new_with_type(image_type: Pgchar; error: PPGError): PGdkPixbufLoader; cdecl; inline; static;
    function close(error: PPGError): gboolean; cdecl; inline;
    function get_animation: PGdkPixbufAnimation; cdecl; inline;
    function get_format: PGdkPixbufFormat; cdecl; inline;
    function get_pixbuf: PGdkPixbuf; cdecl; inline;
    procedure set_size(width: gint; height: gint); cdecl; inline;
    function write(buf: Pguint8; count: gsize; error: PPGError): gboolean; cdecl; inline;
    function write_bytes(buffer: PGBytes; error: PPGError): gboolean; cdecl; inline;
  end;


  { TGdkPixbufLoaderClass }
  PPGdkPixbufLoaderClass = ^PGdkPixbufLoaderClass;
  PGdkPixbufLoaderClass = ^TGdkPixbufLoaderClass;
  TGdkPixbufLoaderClass = object
    parent_class: TGObjectClass;
    size_prepared: procedure(loader: PGdkPixbufLoader; width: gint; height: gint); cdecl;
    area_prepared: procedure(loader: PGdkPixbufLoader); cdecl;
    area_updated: procedure(loader: PGdkPixbufLoader; x: gint; y: gint; width: gint; height: gint); cdecl;
    closed: procedure(loader: PGdkPixbufLoader); cdecl;
  end;
  TGdkPixbufModuleLoadFunc = function(f: Pgpointer; error: PPGError): PGdkPixbuf; cdecl;
  TGdkPixbufModuleLoadXpmDataFunc = function(data: PPgchar): PGdkPixbuf; cdecl;


  { TGdkPixbufModuleSizeFunc }
  PPGdkPixbufModuleSizeFunc = ^PGdkPixbufModuleSizeFunc;
  PGdkPixbufModuleSizeFunc = ^TGdkPixbufModuleSizeFunc;
  TGdkPixbufModuleSizeFunc = procedure(width: Pgint; height: Pgint; user_data: gpointer); cdecl;


  { TGdkPixbufModulePreparedFunc }
  PPGdkPixbufModulePreparedFunc = ^PGdkPixbufModulePreparedFunc;
  PGdkPixbufModulePreparedFunc = ^TGdkPixbufModulePreparedFunc;
  TGdkPixbufModulePreparedFunc = procedure(pixbuf: PGdkPixbuf; anim: PGdkPixbufAnimation; user_data: gpointer); cdecl;


  { TGdkPixbufModuleUpdatedFunc }
  PPGdkPixbufModuleUpdatedFunc = ^PGdkPixbufModuleUpdatedFunc;
  PGdkPixbufModuleUpdatedFunc = ^TGdkPixbufModuleUpdatedFunc;
  TGdkPixbufModuleUpdatedFunc = procedure(pixbuf: PGdkPixbuf; x: gint; y: gint; width: gint; height: gint; user_data: gpointer); cdecl;
  TGdkPixbufModuleBeginLoadFunc = function(size_func: TGdkPixbufModuleSizeFunc; prepared_func: TGdkPixbufModulePreparedFunc; updated_func: TGdkPixbufModuleUpdatedFunc; user_data: gpointer; error: PPGError): gpointer; cdecl;
  TGdkPixbufModuleStopLoadFunc = function(context: gpointer; error: PPGError): gboolean; cdecl;
  TGdkPixbufModuleIncrementLoadFunc = function(context: gpointer; buf: Pguint8; size: guint; error: PPGError): gboolean; cdecl;
  TGdkPixbufModuleLoadAnimationFunc = function(f: Pgpointer; error: PPGError): PGdkPixbufAnimation; cdecl;
  TGdkPixbufModuleSaveFunc = function(f: Pgpointer; pixbuf: PGdkPixbuf; param_keys: PPgchar; param_values: PPgchar; error: PPGError): gboolean; cdecl;
  TGdkPixbufModuleSaveCallbackFunc = function(save_func: TGdkPixbufSaveFunc; user_data: gpointer; pixbuf: PGdkPixbuf; option_keys: PPgchar; option_values: PPgchar; error: PPGError): gboolean; cdecl;
  TGdkPixbufModuleSaveOptionSupportedFunc = function(option_key: Pgchar): gboolean; cdecl;


  { TGdkPixbufModule }
  PPGdkPixbufModule = ^PGdkPixbufModule;
  PGdkPixbufModule = ^TGdkPixbufModule;


  { TGdkPixbufModuleLoadFunc }
  PPGdkPixbufModuleLoadFunc = ^PGdkPixbufModuleLoadFunc;
  PGdkPixbufModuleLoadFunc = ^TGdkPixbufModuleLoadFunc;


  { TGdkPixbufModuleLoadXpmDataFunc }
  PPGdkPixbufModuleLoadXpmDataFunc = ^PGdkPixbufModuleLoadXpmDataFunc;
  PGdkPixbufModuleLoadXpmDataFunc = ^TGdkPixbufModuleLoadXpmDataFunc;


  { TGdkPixbufModuleBeginLoadFunc }
  PPGdkPixbufModuleBeginLoadFunc = ^PGdkPixbufModuleBeginLoadFunc;
  PGdkPixbufModuleBeginLoadFunc = ^TGdkPixbufModuleBeginLoadFunc;


  { TGdkPixbufModuleStopLoadFunc }
  PPGdkPixbufModuleStopLoadFunc = ^PGdkPixbufModuleStopLoadFunc;
  PGdkPixbufModuleStopLoadFunc = ^TGdkPixbufModuleStopLoadFunc;


  { TGdkPixbufModuleIncrementLoadFunc }
  PPGdkPixbufModuleIncrementLoadFunc = ^PGdkPixbufModuleIncrementLoadFunc;
  PGdkPixbufModuleIncrementLoadFunc = ^TGdkPixbufModuleIncrementLoadFunc;


  { TGdkPixbufModuleLoadAnimationFunc }
  PPGdkPixbufModuleLoadAnimationFunc = ^PGdkPixbufModuleLoadAnimationFunc;
  PGdkPixbufModuleLoadAnimationFunc = ^TGdkPixbufModuleLoadAnimationFunc;


  { TGdkPixbufModuleSaveFunc }
  PPGdkPixbufModuleSaveFunc = ^PGdkPixbufModuleSaveFunc;
  PGdkPixbufModuleSaveFunc = ^TGdkPixbufModuleSaveFunc;


  { TGdkPixbufModuleSaveCallbackFunc }
  PPGdkPixbufModuleSaveCallbackFunc = ^PGdkPixbufModuleSaveCallbackFunc;
  PGdkPixbufModuleSaveCallbackFunc = ^TGdkPixbufModuleSaveCallbackFunc;


  { TGdkPixbufModuleSaveOptionSupportedFunc }
  PPGdkPixbufModuleSaveOptionSupportedFunc = ^PGdkPixbufModuleSaveOptionSupportedFunc;
  PGdkPixbufModuleSaveOptionSupportedFunc = ^TGdkPixbufModuleSaveOptionSupportedFunc;

  TGdkPixbufModule = record
    module_name: Pgchar;
    module_path: Pgchar;
    module: PGModule;
    info: PGdkPixbufFormat;
    load: TGdkPixbufModuleLoadFunc;
    load_xpm_data: TGdkPixbufModuleLoadXpmDataFunc;
    begin_load: TGdkPixbufModuleBeginLoadFunc;
    stop_load: TGdkPixbufModuleStopLoadFunc;
    load_increment: TGdkPixbufModuleIncrementLoadFunc;
    load_animation: TGdkPixbufModuleLoadAnimationFunc;
    save: TGdkPixbufModuleSaveFunc;
    save_to_callback: TGdkPixbufModuleSaveCallbackFunc;
    is_save_option_supported: TGdkPixbufModuleSaveOptionSupportedFunc;
    _reserved1: procedure; cdecl;
    _reserved2: procedure; cdecl;
    _reserved3: procedure; cdecl;
    _reserved4: procedure; cdecl;
  end;


  TGdkPixbufModuleFillInfoFunc = procedure(info: PGdkPixbufFormat); cdecl;
  TGdkPixbufModuleFillVtableFunc = procedure(module: PGdkPixbufModule); cdecl;


  { TGdkPixbufNonAnim }
  PPGdkPixbufNonAnim = ^PGdkPixbufNonAnim;
  PGdkPixbufNonAnim = ^TGdkPixbufNonAnim;
  TGdkPixbufNonAnim = object(TGdkPixbufAnimation)
    function new(pixbuf: PGdkPixbuf): PGdkPixbufNonAnim; cdecl; inline; static;
  end;


  { TGdkPixbufSimpleAnim }
  PPGdkPixbufSimpleAnim = ^PGdkPixbufSimpleAnim;
  PGdkPixbufSimpleAnim = ^TGdkPixbufSimpleAnim;
  TGdkPixbufSimpleAnim = object(TGdkPixbufAnimation)
    function new(width: gint; height: gint; rate: gfloat): PGdkPixbufSimpleAnim; cdecl; inline; static;
    procedure add_frame(pixbuf: PGdkPixbuf); cdecl; inline;
    function get_loop: gboolean; cdecl; inline;
    procedure set_loop(loop: gboolean); cdecl; inline;
    property loop: gboolean read get_loop write set_loop;
  end;


  { TGdkPixbufSimpleAnimClass }
  PPGdkPixbufSimpleAnimClass = ^PGdkPixbufSimpleAnimClass;
  PGdkPixbufSimpleAnimClass = ^TGdkPixbufSimpleAnimClass;
  TGdkPixbufSimpleAnimClass = object
  end;


  { TGdkPixbufSimpleAnimIter }
  PPGdkPixbufSimpleAnimIter = ^PGdkPixbufSimpleAnimIter;
  PGdkPixbufSimpleAnimIter = ^TGdkPixbufSimpleAnimIter;
  TGdkPixbufSimpleAnimIter = object(TGdkPixbufAnimationIter)
  end;

function gdk_pixbuf_add_alpha(pixbuf: PGdkPixbuf; substitute_color: gboolean; r: guint8; g: guint8; b: guint8): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_add_alpha';
function gdk_pixbuf_animation_get_height(animation: PGdkPixbufAnimation): gint; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_get_height';
function gdk_pixbuf_animation_get_iter(animation: PGdkPixbufAnimation; start_time: PGTimeVal): PGdkPixbufAnimationIter; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_get_iter';
function gdk_pixbuf_animation_get_static_image(animation: PGdkPixbufAnimation): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_get_static_image';
function gdk_pixbuf_animation_get_type: TGType; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_get_type';
function gdk_pixbuf_animation_get_width(animation: PGdkPixbufAnimation): gint; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_get_width';
function gdk_pixbuf_animation_is_static_image(animation: PGdkPixbufAnimation): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_is_static_image';
function gdk_pixbuf_animation_iter_advance(iter: PGdkPixbufAnimationIter; current_time: PGTimeVal): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_iter_advance';
function gdk_pixbuf_animation_iter_get_delay_time(iter: PGdkPixbufAnimationIter): gint; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_iter_get_delay_time';
function gdk_pixbuf_animation_iter_get_pixbuf(iter: PGdkPixbufAnimationIter): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_iter_get_pixbuf';
function gdk_pixbuf_animation_iter_get_type: TGType; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_iter_get_type';
function gdk_pixbuf_animation_iter_on_currently_loading_frame(iter: PGdkPixbufAnimationIter): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_iter_on_currently_loading_frame';
function gdk_pixbuf_animation_new_from_file(filename: Pgchar; error: PPGError): PGdkPixbufAnimation; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_new_from_file';
function gdk_pixbuf_animation_new_from_resource(resource_path: Pgchar; error: PPGError): PGdkPixbufAnimation; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_new_from_resource';
function gdk_pixbuf_animation_new_from_stream(stream: PGInputStream; cancellable: PGCancellable; error: PPGError): PGdkPixbufAnimation; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_new_from_stream';
function gdk_pixbuf_animation_new_from_stream_finish(async_result: PGAsyncResult; error: PPGError): PGdkPixbufAnimation; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_new_from_stream_finish';
function gdk_pixbuf_apply_embedded_orientation(src: PGdkPixbuf): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_apply_embedded_orientation';
function gdk_pixbuf_calculate_rowstride(colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint): gint; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_calculate_rowstride';
function gdk_pixbuf_composite_color_simple(src: PGdkPixbuf; dest_width: gint; dest_height: gint; interp_type: TGdkInterpType; overall_alpha: gint; check_size: gint; color1: guint32; color2: guint32): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_composite_color_simple';
function gdk_pixbuf_copy(pixbuf: PGdkPixbuf): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_copy';
function gdk_pixbuf_copy_options(src_pixbuf: PGdkPixbuf; dest_pixbuf: PGdkPixbuf): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_copy_options';
function gdk_pixbuf_error_quark: TGQuark; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_error_quark';
function gdk_pixbuf_flip(src: PGdkPixbuf; horizontal: gboolean): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_flip';
function gdk_pixbuf_format_copy(format: PGdkPixbufFormat): PGdkPixbufFormat; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_copy';
function gdk_pixbuf_format_get_description(format: PGdkPixbufFormat): Pgchar; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_get_description';
function gdk_pixbuf_format_get_extensions(format: PGdkPixbufFormat): PPgchar; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_get_extensions';
function gdk_pixbuf_format_get_license(format: PGdkPixbufFormat): Pgchar; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_get_license';
function gdk_pixbuf_format_get_mime_types(format: PGdkPixbufFormat): PPgchar; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_get_mime_types';
function gdk_pixbuf_format_get_name(format: PGdkPixbufFormat): Pgchar; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_get_name';
function gdk_pixbuf_format_get_type: TGType; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_get_type';
function gdk_pixbuf_format_is_disabled(format: PGdkPixbufFormat): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_is_disabled';
function gdk_pixbuf_format_is_save_option_supported(format: PGdkPixbufFormat; option_key: Pgchar): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_is_save_option_supported';
function gdk_pixbuf_format_is_scalable(format: PGdkPixbufFormat): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_is_scalable';
function gdk_pixbuf_format_is_writable(format: PGdkPixbufFormat): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_is_writable';
function gdk_pixbuf_get_bits_per_sample(pixbuf: PGdkPixbuf): gint; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_bits_per_sample';
function gdk_pixbuf_get_byte_length(pixbuf: PGdkPixbuf): gsize; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_byte_length';
function gdk_pixbuf_get_colorspace(pixbuf: PGdkPixbuf): TGdkColorspace; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_colorspace';
function gdk_pixbuf_get_file_info(filename: Pgchar; width: Pgint; height: Pgint): PGdkPixbufFormat; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_file_info';
function gdk_pixbuf_get_file_info_finish(async_result: PGAsyncResult; width: Pgint; height: Pgint; error: PPGError): PGdkPixbufFormat; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_file_info_finish';
function gdk_pixbuf_get_formats: PGSList; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_formats';
function gdk_pixbuf_get_has_alpha(pixbuf: PGdkPixbuf): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_has_alpha';
function gdk_pixbuf_get_height(pixbuf: PGdkPixbuf): gint; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_height';
function gdk_pixbuf_get_n_channels(pixbuf: PGdkPixbuf): gint; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_n_channels';
function gdk_pixbuf_get_option(pixbuf: PGdkPixbuf; key: Pgchar): Pgchar; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_option';
function gdk_pixbuf_get_options(pixbuf: PGdkPixbuf): PGHashTable; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_options';
function gdk_pixbuf_get_pixels(pixbuf: PGdkPixbuf): Pguint8; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_pixels';
function gdk_pixbuf_get_pixels_with_length(pixbuf: PGdkPixbuf; length: Pguint): Pguint8; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_pixels_with_length';
function gdk_pixbuf_get_rowstride(pixbuf: PGdkPixbuf): gint; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_rowstride';
function gdk_pixbuf_get_type: TGType; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_type';
function gdk_pixbuf_get_width(pixbuf: PGdkPixbuf): gint; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_width';
function gdk_pixbuf_init_modules(path: Pgchar; error: PPGError): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_init_modules';
function gdk_pixbuf_loader_close(loader: PGdkPixbufLoader; error: PPGError): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_close';
function gdk_pixbuf_loader_get_animation(loader: PGdkPixbufLoader): PGdkPixbufAnimation; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_get_animation';
function gdk_pixbuf_loader_get_format(loader: PGdkPixbufLoader): PGdkPixbufFormat; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_get_format';
function gdk_pixbuf_loader_get_pixbuf(loader: PGdkPixbufLoader): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_get_pixbuf';
function gdk_pixbuf_loader_get_type: TGType; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_get_type';
function gdk_pixbuf_loader_new: PGdkPixbufLoader; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_new';
function gdk_pixbuf_loader_new_with_mime_type(mime_type: Pgchar; error: PPGError): PGdkPixbufLoader; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_new_with_mime_type';
function gdk_pixbuf_loader_new_with_type(image_type: Pgchar; error: PPGError): PGdkPixbufLoader; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_new_with_type';
function gdk_pixbuf_loader_write(loader: PGdkPixbufLoader; buf: Pguint8; count: gsize; error: PPGError): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_write';
function gdk_pixbuf_loader_write_bytes(loader: PGdkPixbufLoader; buffer: PGBytes; error: PPGError): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_write_bytes';
function gdk_pixbuf_new(colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new';
function gdk_pixbuf_new_from_bytes(data: PGBytes; colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint; rowstride: gint): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_bytes';
function gdk_pixbuf_new_from_data(data: Pguint8; colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint; rowstride: gint; destroy_fn: TGdkPixbufDestroyNotify; destroy_fn_data: gpointer): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_data';
function gdk_pixbuf_new_from_file(filename: Pgchar; error: PPGError): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_file';
function gdk_pixbuf_new_from_file_at_scale(filename: Pgchar; width: gint; height: gint; preserve_aspect_ratio: gboolean; error: PPGError): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_file_at_scale';
function gdk_pixbuf_new_from_file_at_size(filename: Pgchar; width: gint; height: gint; error: PPGError): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_file_at_size';
function gdk_pixbuf_new_from_resource(resource_path: Pgchar; error: PPGError): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_resource';
function gdk_pixbuf_new_from_resource_at_scale(resource_path: Pgchar; width: gint; height: gint; preserve_aspect_ratio: gboolean; error: PPGError): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_resource_at_scale';
function gdk_pixbuf_new_from_stream(stream: PGInputStream; cancellable: PGCancellable; error: PPGError): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_stream';
function gdk_pixbuf_new_from_stream_at_scale(stream: PGInputStream; width: gint; height: gint; preserve_aspect_ratio: gboolean; cancellable: PGCancellable; error: PPGError): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_stream_at_scale';
function gdk_pixbuf_new_from_stream_finish(async_result: PGAsyncResult; error: PPGError): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_stream_finish';
function gdk_pixbuf_new_from_xpm_data(data: PPgchar): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_xpm_data';
function gdk_pixbuf_new_subpixbuf(src_pixbuf: PGdkPixbuf; src_x: gint; src_y: gint; width: gint; height: gint): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_subpixbuf';
function gdk_pixbuf_non_anim_get_type: TGType; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_non_anim_get_type';
function gdk_pixbuf_non_anim_new(pixbuf: PGdkPixbuf): PGdkPixbufNonAnim; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_non_anim_new';
function gdk_pixbuf_read_pixel_bytes(pixbuf: PGdkPixbuf): PGBytes; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_read_pixel_bytes';
function gdk_pixbuf_read_pixels(pixbuf: PGdkPixbuf): Pguint8; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_read_pixels';
function gdk_pixbuf_remove_option(pixbuf: PGdkPixbuf; key: Pgchar): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_remove_option';
function gdk_pixbuf_rotate_simple(src: PGdkPixbuf; angle: TGdkPixbufRotation): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_rotate_simple';
function gdk_pixbuf_save(pixbuf: PGdkPixbuf; filename: Pgchar; type_: Pgchar; error: PPGError; args: array of const): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_save';
function gdk_pixbuf_save_to_buffer(pixbuf: PGdkPixbuf; buffer: PPgchar; buffer_size: Pgsize; type_: Pgchar; error: PPGError; args: array of const): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_save_to_buffer';
function gdk_pixbuf_save_to_bufferv(pixbuf: PGdkPixbuf; buffer: PPgchar; buffer_size: Pgsize; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; error: PPGError): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_save_to_bufferv';
function gdk_pixbuf_save_to_callback(pixbuf: PGdkPixbuf; save_func: TGdkPixbufSaveFunc; user_data: gpointer; type_: Pgchar; error: PPGError; args: array of const): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_save_to_callback';
function gdk_pixbuf_save_to_callbackv(pixbuf: PGdkPixbuf; save_func: TGdkPixbufSaveFunc; user_data: gpointer; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; error: PPGError): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_save_to_callbackv';
function gdk_pixbuf_save_to_stream(pixbuf: PGdkPixbuf; stream: PGOutputStream; type_: Pgchar; cancellable: PGCancellable; error: PPGError; args: array of const): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_save_to_stream';
function gdk_pixbuf_save_to_stream_finish(async_result: PGAsyncResult; error: PPGError): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_save_to_stream_finish';
function gdk_pixbuf_save_to_streamv(pixbuf: PGdkPixbuf; stream: PGOutputStream; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; cancellable: PGCancellable; error: PPGError): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_save_to_streamv';
function gdk_pixbuf_savev(pixbuf: PGdkPixbuf; filename: Pgchar; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; error: PPGError): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_savev';
function gdk_pixbuf_scale_simple(src: PGdkPixbuf; dest_width: gint; dest_height: gint; interp_type: TGdkInterpType): PGdkPixbuf; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_scale_simple';
function gdk_pixbuf_set_option(pixbuf: PGdkPixbuf; key: Pgchar; value: Pgchar): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_set_option';
function gdk_pixbuf_simple_anim_get_loop(animation: PGdkPixbufSimpleAnim): gboolean; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_simple_anim_get_loop';
function gdk_pixbuf_simple_anim_get_type: TGType; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_simple_anim_get_type';
function gdk_pixbuf_simple_anim_iter_get_type: TGType; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_simple_anim_iter_get_type';
function gdk_pixbuf_simple_anim_new(width: gint; height: gint; rate: gfloat): PGdkPixbufSimpleAnim; cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_simple_anim_new';
procedure gdk_pixbuf_animation_new_from_stream_async(stream: PGInputStream; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_animation_new_from_stream_async';
procedure gdk_pixbuf_composite(src: PGdkPixbuf; dest: PGdkPixbuf; dest_x: gint; dest_y: gint; dest_width: gint; dest_height: gint; offset_x: gdouble; offset_y: gdouble; scale_x: gdouble; scale_y: gdouble; interp_type: TGdkInterpType; overall_alpha: gint); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_composite';
procedure gdk_pixbuf_composite_color(src: PGdkPixbuf; dest: PGdkPixbuf; dest_x: gint; dest_y: gint; dest_width: gint; dest_height: gint; offset_x: gdouble; offset_y: gdouble; scale_x: gdouble; scale_y: gdouble; interp_type: TGdkInterpType; overall_alpha: gint; check_x: gint; check_y: gint; check_size: gint; color1: guint32; color2: guint32); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_composite_color';
procedure gdk_pixbuf_copy_area(src_pixbuf: PGdkPixbuf; src_x: gint; src_y: gint; width: gint; height: gint; dest_pixbuf: PGdkPixbuf; dest_x: gint; dest_y: gint); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_copy_area';
procedure gdk_pixbuf_fill(pixbuf: PGdkPixbuf; pixel: guint32); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_fill';
procedure gdk_pixbuf_format_free(format: PGdkPixbufFormat); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_free';
procedure gdk_pixbuf_format_set_disabled(format: PGdkPixbufFormat; disabled: gboolean); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_format_set_disabled';
procedure gdk_pixbuf_get_file_info_async(filename: Pgchar; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_get_file_info_async';
procedure gdk_pixbuf_loader_set_size(loader: PGdkPixbufLoader; width: gint; height: gint); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_loader_set_size';
procedure gdk_pixbuf_new_from_stream_async(stream: PGInputStream; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_stream_async';
procedure gdk_pixbuf_new_from_stream_at_scale_async(stream: PGInputStream; width: gint; height: gint; preserve_aspect_ratio: gboolean; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_new_from_stream_at_scale_async';
procedure gdk_pixbuf_saturate_and_pixelate(src: PGdkPixbuf; dest: PGdkPixbuf; saturation: gfloat; pixelate: gboolean); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_saturate_and_pixelate';
procedure gdk_pixbuf_save_to_stream_async(pixbuf: PGdkPixbuf; stream: PGOutputStream; type_: Pgchar; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer; args: array of const); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_save_to_stream_async';
procedure gdk_pixbuf_save_to_streamv_async(pixbuf: PGdkPixbuf; stream: PGOutputStream; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_save_to_streamv_async';
procedure gdk_pixbuf_scale(src: PGdkPixbuf; dest: PGdkPixbuf; dest_x: gint; dest_y: gint; dest_width: gint; dest_height: gint; offset_x: gdouble; offset_y: gdouble; scale_x: gdouble; scale_y: gdouble; interp_type: TGdkInterpType); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_scale';
procedure gdk_pixbuf_simple_anim_add_frame(animation: PGdkPixbufSimpleAnim; pixbuf: PGdkPixbuf); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_simple_anim_add_frame';
procedure gdk_pixbuf_simple_anim_set_loop(animation: PGdkPixbufSimpleAnim; loop: gboolean); cdecl; external LazGdkPixbuf2_library name 'gdk_pixbuf_simple_anim_set_loop';
implementation
function TGdkPixbuf.new(colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new(colorspace, has_alpha, bits_per_sample, width, height);
end;

function TGdkPixbuf.new_from_bytes(data: PGBytes; colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint; rowstride: gint): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_bytes(data, colorspace, has_alpha, bits_per_sample, width, height, rowstride);
end;

function TGdkPixbuf.new_from_data(data: Pguint8; colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint; rowstride: gint; destroy_fn: TGdkPixbufDestroyNotify; destroy_fn_data: gpointer): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_data(data, colorspace, has_alpha, bits_per_sample, width, height, rowstride, destroy_fn, destroy_fn_data);
end;

function TGdkPixbuf.new_from_file(filename: Pgchar; error: PPGError): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_file(filename, error);
end;

function TGdkPixbuf.new_from_file_at_scale(filename: Pgchar; width: gint; height: gint; preserve_aspect_ratio: gboolean; error: PPGError): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_file_at_scale(filename, width, height, preserve_aspect_ratio, error);
end;

function TGdkPixbuf.new_from_file_at_size(filename: Pgchar; width: gint; height: gint; error: PPGError): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_file_at_size(filename, width, height, error);
end;

function TGdkPixbuf.new_from_resource(resource_path: Pgchar; error: PPGError): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_resource(resource_path, error);
end;

function TGdkPixbuf.new_from_resource_at_scale(resource_path: Pgchar; width: gint; height: gint; preserve_aspect_ratio: gboolean; error: PPGError): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_resource_at_scale(resource_path, width, height, preserve_aspect_ratio, error);
end;

function TGdkPixbuf.new_from_stream(stream: PGInputStream; cancellable: PGCancellable; error: PPGError): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_stream(stream, cancellable, error);
end;

function TGdkPixbuf.new_from_stream_at_scale(stream: PGInputStream; width: gint; height: gint; preserve_aspect_ratio: gboolean; cancellable: PGCancellable; error: PPGError): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_stream_at_scale(stream, width, height, preserve_aspect_ratio, cancellable, error);
end;

function TGdkPixbuf.new_from_stream_finish(async_result: PGAsyncResult; error: PPGError): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_stream_finish(async_result, error);
end;

function TGdkPixbuf.new_from_xpm_data(data: PPgchar): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_from_xpm_data(data);
end;

function TGdkPixbuf.calculate_rowstride(colorspace: TGdkColorspace; has_alpha: gboolean; bits_per_sample: gint; width: gint; height: gint): gint; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_calculate_rowstride(colorspace, has_alpha, bits_per_sample, width, height);
end;

function TGdkPixbuf.get_file_info(filename: Pgchar; width: Pgint; height: Pgint): PGdkPixbufFormat; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_file_info(filename, width, height);
end;

procedure TGdkPixbuf.get_file_info_async(filename: Pgchar; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_get_file_info_async(filename, cancellable, callback, user_data);
end;

function TGdkPixbuf.get_file_info_finish(async_result: PGAsyncResult; width: Pgint; height: Pgint; error: PPGError): PGdkPixbufFormat; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_file_info_finish(async_result, width, height, error);
end;

function TGdkPixbuf.get_formats: PGSList; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_formats();
end;

function TGdkPixbuf.init_modules(path: Pgchar; error: PPGError): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_init_modules(path, error);
end;

procedure TGdkPixbuf.new_from_stream_async(stream: PGInputStream; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_new_from_stream_async(stream, cancellable, callback, user_data);
end;

procedure TGdkPixbuf.new_from_stream_at_scale_async(stream: PGInputStream; width: gint; height: gint; preserve_aspect_ratio: gboolean; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_new_from_stream_at_scale_async(stream, width, height, preserve_aspect_ratio, cancellable, callback, user_data);
end;

function TGdkPixbuf.save_to_stream_finish(async_result: PGAsyncResult; error: PPGError): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_save_to_stream_finish(async_result, error);
end;

function TGdkPixbuf.add_alpha(substitute_color: gboolean; r: guint8; g: guint8; b: guint8): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_add_alpha(@self, substitute_color, r, g, b);
end;

function TGdkPixbuf.apply_embedded_orientation: PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_apply_embedded_orientation(@self);
end;

procedure TGdkPixbuf.composite(dest: PGdkPixbuf; dest_x: gint; dest_y: gint; dest_width: gint; dest_height: gint; offset_x: gdouble; offset_y: gdouble; scale_x: gdouble; scale_y: gdouble; interp_type: TGdkInterpType; overall_alpha: gint); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_composite(@self, dest, dest_x, dest_y, dest_width, dest_height, offset_x, offset_y, scale_x, scale_y, interp_type, overall_alpha);
end;

procedure TGdkPixbuf.composite_color(dest: PGdkPixbuf; dest_x: gint; dest_y: gint; dest_width: gint; dest_height: gint; offset_x: gdouble; offset_y: gdouble; scale_x: gdouble; scale_y: gdouble; interp_type: TGdkInterpType; overall_alpha: gint; check_x: gint; check_y: gint; check_size: gint; color1: guint32; color2: guint32); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_composite_color(@self, dest, dest_x, dest_y, dest_width, dest_height, offset_x, offset_y, scale_x, scale_y, interp_type, overall_alpha, check_x, check_y, check_size, color1, color2);
end;

function TGdkPixbuf.composite_color_simple(dest_width: gint; dest_height: gint; interp_type: TGdkInterpType; overall_alpha: gint; check_size: gint; color1: guint32; color2: guint32): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_composite_color_simple(@self, dest_width, dest_height, interp_type, overall_alpha, check_size, color1, color2);
end;

function TGdkPixbuf.copy: PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_copy(@self);
end;

procedure TGdkPixbuf.copy_area(src_x: gint; src_y: gint; width: gint; height: gint; dest_pixbuf: PGdkPixbuf; dest_x: gint; dest_y: gint); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_copy_area(@self, src_x, src_y, width, height, dest_pixbuf, dest_x, dest_y);
end;

function TGdkPixbuf.copy_options(dest_pixbuf: PGdkPixbuf): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_copy_options(@self, dest_pixbuf);
end;

procedure TGdkPixbuf.fill(pixel: guint32); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_fill(@self, pixel);
end;

function TGdkPixbuf.flip(horizontal: gboolean): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_flip(@self, horizontal);
end;

function TGdkPixbuf.get_bits_per_sample: gint; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_bits_per_sample(@self);
end;

function TGdkPixbuf.get_byte_length: gsize; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_byte_length(@self);
end;

function TGdkPixbuf.get_colorspace: TGdkColorspace; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_colorspace(@self);
end;

function TGdkPixbuf.get_has_alpha: gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_has_alpha(@self);
end;

function TGdkPixbuf.get_height: gint; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_height(@self);
end;

function TGdkPixbuf.get_n_channels: gint; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_n_channels(@self);
end;

function TGdkPixbuf.get_option(key: Pgchar): Pgchar; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_option(@self, key);
end;

function TGdkPixbuf.get_options: PGHashTable; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_options(@self);
end;

function TGdkPixbuf.get_pixels: Pguint8; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_pixels(@self);
end;

function TGdkPixbuf.get_pixels_with_length(length: Pguint): Pguint8; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_pixels_with_length(@self, length);
end;

function TGdkPixbuf.get_rowstride: gint; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_rowstride(@self);
end;

function TGdkPixbuf.get_width: gint; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_get_width(@self);
end;

function TGdkPixbuf.new_subpixbuf(src_x: gint; src_y: gint; width: gint; height: gint): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_new_subpixbuf(@self, src_x, src_y, width, height);
end;

function TGdkPixbuf.read_pixel_bytes: PGBytes; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_read_pixel_bytes(@self);
end;

function TGdkPixbuf.read_pixels: Pguint8; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_read_pixels(@self);
end;

function TGdkPixbuf.remove_option(key: Pgchar): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_remove_option(@self, key);
end;

function TGdkPixbuf.rotate_simple(angle: TGdkPixbufRotation): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_rotate_simple(@self, angle);
end;

procedure TGdkPixbuf.saturate_and_pixelate(dest: PGdkPixbuf; saturation: gfloat; pixelate: gboolean); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_saturate_and_pixelate(@self, dest, saturation, pixelate);
end;

function TGdkPixbuf.save_to_bufferv(buffer: PPgchar; buffer_size: Pgsize; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; error: PPGError): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_save_to_bufferv(@self, buffer, buffer_size, type_, option_keys, option_values, error);
end;

function TGdkPixbuf.save_to_callbackv(save_func: TGdkPixbufSaveFunc; user_data: gpointer; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; error: PPGError): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_save_to_callbackv(@self, save_func, user_data, type_, option_keys, option_values, error);
end;

function TGdkPixbuf.save_to_streamv(stream: PGOutputStream; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; cancellable: PGCancellable; error: PPGError): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_save_to_streamv(@self, stream, type_, option_keys, option_values, cancellable, error);
end;

procedure TGdkPixbuf.save_to_streamv_async(stream: PGOutputStream; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_save_to_streamv_async(@self, stream, type_, option_keys, option_values, cancellable, callback, user_data);
end;

function TGdkPixbuf.savev(filename: Pgchar; type_: Pgchar; option_keys: PPgchar; option_values: PPgchar; error: PPGError): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_savev(@self, filename, type_, option_keys, option_values, error);
end;

procedure TGdkPixbuf.scale(dest: PGdkPixbuf; dest_x: gint; dest_y: gint; dest_width: gint; dest_height: gint; offset_x: gdouble; offset_y: gdouble; scale_x: gdouble; scale_y: gdouble; interp_type: TGdkInterpType); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_scale(@self, dest, dest_x, dest_y, dest_width, dest_height, offset_x, offset_y, scale_x, scale_y, interp_type);
end;

function TGdkPixbuf.scale_simple(dest_width: gint; dest_height: gint; interp_type: TGdkInterpType): PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_scale_simple(@self, dest_width, dest_height, interp_type);
end;

function TGdkPixbuf.set_option(key: Pgchar; value: Pgchar): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_set_option(@self, key, value);
end;

function TGdkPixbufFormat.copy: PGdkPixbufFormat; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_format_copy(@self);
end;

procedure TGdkPixbufFormat.free; cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_format_free(@self);
end;

function TGdkPixbufFormat.get_description: Pgchar; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_format_get_description(@self);
end;

function TGdkPixbufFormat.get_extensions: PPgchar; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_format_get_extensions(@self);
end;

function TGdkPixbufFormat.get_license: Pgchar; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_format_get_license(@self);
end;

function TGdkPixbufFormat.get_mime_types: PPgchar; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_format_get_mime_types(@self);
end;

function TGdkPixbufFormat.get_name: Pgchar; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_format_get_name(@self);
end;

function TGdkPixbufFormat.is_disabled: gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_format_is_disabled(@self);
end;

function TGdkPixbufFormat.is_save_option_supported(option_key: Pgchar): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_format_is_save_option_supported(@self, option_key);
end;

function TGdkPixbufFormat.is_scalable: gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_format_is_scalable(@self);
end;

function TGdkPixbufFormat.is_writable: gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_format_is_writable(@self);
end;

procedure TGdkPixbufFormat.set_disabled(disabled: gboolean); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_format_set_disabled(@self, disabled);
end;

function TGdkPixbufAnimation.new_from_file(filename: Pgchar; error: PPGError): PGdkPixbufAnimation; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_new_from_file(filename, error);
end;

function TGdkPixbufAnimation.new_from_resource(resource_path: Pgchar; error: PPGError): PGdkPixbufAnimation; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_new_from_resource(resource_path, error);
end;

function TGdkPixbufAnimation.new_from_stream(stream: PGInputStream; cancellable: PGCancellable; error: PPGError): PGdkPixbufAnimation; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_new_from_stream(stream, cancellable, error);
end;

function TGdkPixbufAnimation.new_from_stream_finish(async_result: PGAsyncResult; error: PPGError): PGdkPixbufAnimation; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_new_from_stream_finish(async_result, error);
end;

procedure TGdkPixbufAnimation.new_from_stream_async(stream: PGInputStream; cancellable: PGCancellable; callback: TGAsyncReadyCallback; user_data: gpointer); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_animation_new_from_stream_async(stream, cancellable, callback, user_data);
end;

function TGdkPixbufAnimation.get_height: gint; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_get_height(@self);
end;

function TGdkPixbufAnimation.get_iter(start_time: PGTimeVal): PGdkPixbufAnimationIter; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_get_iter(@self, start_time);
end;

function TGdkPixbufAnimation.get_static_image: PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_get_static_image(@self);
end;

function TGdkPixbufAnimation.get_width: gint; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_get_width(@self);
end;

function TGdkPixbufAnimation.is_static_image: gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_is_static_image(@self);
end;

function TGdkPixbufAnimationIter.advance(current_time: PGTimeVal): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_iter_advance(@self, current_time);
end;

function TGdkPixbufAnimationIter.get_delay_time: gint; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_iter_get_delay_time(@self);
end;

function TGdkPixbufAnimationIter.get_pixbuf: PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_iter_get_pixbuf(@self);
end;

function TGdkPixbufAnimationIter.on_currently_loading_frame: gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_animation_iter_on_currently_loading_frame(@self);
end;

function TGdkPixbufLoader.new: PGdkPixbufLoader; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_loader_new();
end;

function TGdkPixbufLoader.new_with_mime_type(mime_type: Pgchar; error: PPGError): PGdkPixbufLoader; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_loader_new_with_mime_type(mime_type, error);
end;

function TGdkPixbufLoader.new_with_type(image_type: Pgchar; error: PPGError): PGdkPixbufLoader; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_loader_new_with_type(image_type, error);
end;

function TGdkPixbufLoader.close(error: PPGError): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_loader_close(@self, error);
end;

function TGdkPixbufLoader.get_animation: PGdkPixbufAnimation; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_loader_get_animation(@self);
end;

function TGdkPixbufLoader.get_format: PGdkPixbufFormat; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_loader_get_format(@self);
end;

function TGdkPixbufLoader.get_pixbuf: PGdkPixbuf; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_loader_get_pixbuf(@self);
end;

procedure TGdkPixbufLoader.set_size(width: gint; height: gint); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_loader_set_size(@self, width, height);
end;

function TGdkPixbufLoader.write(buf: Pguint8; count: gsize; error: PPGError): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_loader_write(@self, buf, count, error);
end;

function TGdkPixbufLoader.write_bytes(buffer: PGBytes; error: PPGError): gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_loader_write_bytes(@self, buffer, error);
end;

function TGdkPixbufNonAnim.new(pixbuf: PGdkPixbuf): PGdkPixbufNonAnim; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_non_anim_new(pixbuf);
end;

function TGdkPixbufSimpleAnim.new(width: gint; height: gint; rate: gfloat): PGdkPixbufSimpleAnim; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_simple_anim_new(width, height, rate);
end;

procedure TGdkPixbufSimpleAnim.add_frame(pixbuf: PGdkPixbuf); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_simple_anim_add_frame(@self, pixbuf);
end;

function TGdkPixbufSimpleAnim.get_loop: gboolean; cdecl;
begin
  Result := LazGdkPixbuf2.gdk_pixbuf_simple_anim_get_loop(@self);
end;

procedure TGdkPixbufSimpleAnim.set_loop(loop: gboolean); cdecl;
begin
  LazGdkPixbuf2.gdk_pixbuf_simple_anim_set_loop(@self, loop);
end;

end.
