Skip to content

Interface

Kevin Basta edited this page Aug 13, 2024 · 4 revisions

Interface

// Encode the canvas record
STATUS_CODE gif_createGIF(GIFCanvas *canvas, bool freeCanvasRecord, bool createGIFOnError);

//
// Create a canvas record
//
GIFCanvas *gif_canvasCreate(u16 canvasWidth, u16 canvasHeight);

STATUS_CODE gif_canvasAddGlobalColorTable(GIFCanvas *canvas, gif_colorTable *clrTable);
STATUS_CODE gif_canvasCreateGlobalColorTable(GIFCanvas *canvas);
STATUS_CODE gif_canvasAddColorToColorTable(GIFCanvas *canvas, u8 red, u8 green, u8 blue);

STATUS_CODE gif_canvasSetBackgroundColorIndex(GIFCanvas *canvas, u8 globalColorTableIndex);
STATUS_CODE gif_canvasAddFrame(GIFCanvas *canvas, GIFFrame *frame);

STATUS_CODE gif_canvasSetFileName(GIFCanvas *canvas, char *newName);

void gif_freeCanvas(GIFCanvas *canvas);

// Extra canvas functions
STATUS_CODE gif_canvasUpdateWidthAndHeight(GIFCanvas *canvas, u16 canvasWidth, u16 canvasHeight);
STATUS_CODE gif_canvasUpdateWidth(GIFCanvas *canvas, u16 canvasWidth);
STATUS_CODE gif_canvasUpdateHeight(GIFCanvas *canvas, u16 canvasHeight);
STATUS_CODE gif_canvasPrependFrame(GIFCanvas *canvas, GIFFrame *frame);


//
// Create a frame record
//
GIFFrame *gif_frameCreate(u16 frameWidth, u16 frameHeight, u16 imageLeftPosition, u16 imageTopPosition);

STATUS_CODE gif_frameAddLocalColorTable(GIFFrame *frame, gif_colorTable *clrTable);
STATUS_CODE gif_frameCreateLocalColorTable(GIFFrame *frame);
STATUS_CODE gif_frameAddColorToColorTable(GIFFrame *frame, u8 red, u8 green, u8 blue);

STATUS_CODE gif_frameAddIndexStream(GIFFrame *frame, gif_array *indexStream);
STATUS_CODE gif_frameAddIndexStreamFromArray(GIFFrame *frame, u8 stackArr[], size_t size);
STATUS_CODE gif_frameCreateIndexStream(GIFFrame *frame, size_t indexStreamSize);
STATUS_CODE gif_frameAppendToIndexStream(GIFFrame *frame, u32 item);

STATUS_CODE gif_frameAddGraphicsControlInfo(GIFFrame *frame, u8 disposalMethod, u16 delayTime);
STATUS_CODE gif_frameSetTransparanetColorIndexInColorTable(GIFFrame *frame, u8 transparentColorIndex);

void gif_freeFrame(GIFFrame *frame);

// Extra frame functions
STATUS_CODE gif_frameUpdateWidthAndHeight(GIFFrame *frame, u16 frameWidth, u16 frameHeight);
STATUS_CODE gif_frameUpdateWidth(GIFFrame *frame, u16 frameWidth);
STATUS_CODE gif_frameUpdateHeight(GIFFrame *frame, u16 frameHeight);
STATUS_CODE gif_frameUpdateImageLeftPosition(GIFFrame *frame, u16 imageLeftPosition);
STATUS_CODE gif_frameUpdateImageTopPosition(GIFFrame *frame, u16 imageTopPosition);
STATUS_CODE gif_frameUpdateDisposalMethod(GIFFrame *frame, u8 disposalMethod);
STATUS_CODE gif_frameUpdateDelayTime(GIFFrame *frame, u16 delayTime);
STATUS_CODE gif_frameRemoveTransparentColorIndex(GIFFrame *frame);

Clone this wiki locally