/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/******************************************************************************
* In order to make life a little bit easier when using the GIF file format,
* this library was written, and which does all the dirty work...
*
* Written by Gershon Elber, Jun. 1989
* Hacks by Eric S. Raymond, Sep. 1992
******************************************************************************
* History:
* 14 Jun 89 - Version 1.0 by Gershon Elber.
* 3 Sep 90 - Version 1.1 by Gershon Elber (Support for Gif89, Unique names)
* 15 Sep 90 - Version 2.0 by Eric S. Raymond (Changes to suoport GIF slurp)
* 26 Jun 96 - Version 3.0 by Eric S. Raymond (Full GIF89 support)
* 17 Dec 98 - Version 4.0 by Toshio Kuratomi (Fix extension writing code)
*****************************************************************************/
/* all encoding functionality stripped */
#ifndef _GIF_LIB_H_
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define GIF_ERROR 0
#ifndef TRUE
#endif /* TRUE */
#ifndef FALSE
#define FALSE 0
#endif /* FALSE */
#ifndef NULL
#define NULL 0
#endif /* NULL */
typedef int GifBooleanType;
typedef unsigned char GifPixelType;
typedef unsigned char *GifRowType;
typedef unsigned char GifByteType;
#ifdef SYSV
#define VoidPtr char *
#else
#define VoidPtr void *
#endif /* SYSV */
typedef struct GifColorType {
} GifColorType;
typedef struct ColorMapObject {
int ColorCount;
int BitsPerPixel;
typedef struct GifImageDesc {
} GifImageDesc;
typedef struct GifFileType {
} GifFileType;
typedef enum {
* Note all values below 1000 are reserved for the IBMPC different display
* devices (it has many!) and are compatible with the numbering TC2.0
* (Turbo C 2.0 compiler for IBM PC) gives to these devices.
*/
typedef enum {
/* func type to read gif data from arbitrary sources (TVT) */
/* func type to write gif data ro arbitrary targets.
* Returns count of bytes written. (MRB)
*/
/******************************************************************************
* GIF89 extension function codes
******************************************************************************/
/******************************************************************************
* O.K., here are the routines one can access in order to decode GIF file:
* (GIF_LIB file DGIF_LIB.C).
*****************************************************************************/
* (TVT) */
GifByteType ** GifExtension);
GifByteType ** GifCodeBlock);
/******************************************************************************
* O.K., here are the routines from GIF_LIB file GIF_ERR.C.
******************************************************************************/
extern void PrintGifError(void);
extern int GifLastError(void);
/******************************************************************************
* O.K., here are the routines from GIF_LIB file DEV2GIF.C.
******************************************************************************/
extern int DumpScreen2Gif(const char *FileName,
int ReqGraphDriver,
long ReqGraphMode1,
long ReqGraphMode2,
long ReqGraphMode3);
/*****************************************************************************
*
* Everything below this point is new after version 1.2, supporting `slurp
* mode' for doing I/O in two big belts with all the image-bashing in core.
*
*****************************************************************************/
/******************************************************************************
* Color Map handling from ALLOCGIF.C
*****************************************************************************/
const GifColorType * ColorMap);
extern int BitSize(int n);
/******************************************************************************
* Support for the in-core structures allocation (slurp mode).
*****************************************************************************/
/* This is the in-core version of an extension record */
typedef struct {
int ByteCount;
/* This holds an image header, its unpacked raster bits, and extensions */
typedef struct SavedImage {
int ExtensionBlockCount;
} SavedImage;
unsigned char ExtData[]);
const SavedImage * CopyFrom);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _GIF_LIB_H */