#ifndef LCDF_GIFX_H #define LCDF_GIFX_H #include #ifdef __cplusplus extern "C" { #endif /* gifx.h - Functions to turn GIFs in memory into X Pixmaps. Copyright (C) 1997-2024 Eddie Kohler, ekohler@gmail.com This file is part of the LCDF GIF library. The LCDF GIF library is free software*. It is distributed under the GNU General Public License, version 2; you can copy, distribute, or alter it at will, as long as this notice is kept intact and this source code is made available. There is no warranty, express or implied. */ #include #define GIFX_COLORMAP_EXTENSION -107 typedef struct Gif_XContext Gif_XContext; typedef struct Gif_XColormap Gif_XColormap; typedef struct Gif_XFrame Gif_XFrame; struct Gif_XContext { Display *display; int screen_number; Drawable drawable; Visual *visual; uint16_t depth; uint16_t ncolormap; Colormap colormap; uint16_t nclosest; Gif_Color *closest; int free_deleted_colormap_pixels; Gif_XColormap *xcolormap; GC image_gc; GC mask_gc; unsigned long transparent_pixel; unsigned long foreground_pixel; int refcount; }; struct Gif_XFrame { Pixmap pixmap; int postdisposal; int user_data; }; Gif_XContext * Gif_NewXContext(Display *display, Window window); Gif_XContext * Gif_NewXContextFromVisual(Display *display, int screen_number, Visual *visual, int depth, Colormap cmap); void Gif_DeleteXContext(Gif_XContext *gfx); Pixmap Gif_XImage(Gif_XContext *gfx, Gif_Stream *gfs, Gif_Image *gfi); Pixmap Gif_XImageColormap(Gif_XContext *gfx, Gif_Stream *gfs, Gif_Colormap *gfcm, Gif_Image *gfi); Pixmap Gif_XSubImage(Gif_XContext *gfx, Gif_Stream *gfs, Gif_Image *gfi, int l, int t, int w, int h); Pixmap Gif_XSubImageColormap(Gif_XContext *gfx, Gif_Stream* gfs, Gif_Image *gfi, Gif_Colormap* gfcm, int l, int t, int w, int h); Pixmap Gif_XMask(Gif_XContext *gfx, Gif_Stream *gfs, Gif_Image *gfi); Pixmap Gif_XSubMask(Gif_XContext* gfx, Gif_Stream* gfs, Gif_Image* gfi, int l, int t, int w, int h); Gif_XFrame * Gif_NewXFrames(Gif_Stream *gfs); void Gif_DeleteXFrames(Gif_XContext *gfx, Gif_Stream *gfs, Gif_XFrame *frames); Pixmap Gif_XNextImage(Gif_XContext *gfx, Gif_Stream *gfs, int i, Gif_XFrame *frames); int Gif_XAllocateColors(Gif_XContext *gfx, Gif_Colormap *gfcm); void Gif_XDeallocateColors(Gif_XContext *gfx, Gif_Colormap *gfcm); unsigned long * Gif_XClaimStreamColors(Gif_XContext *gfx, Gif_Stream *gfs, int *np_store); #ifdef __cplusplus } #endif #endif