699{
701 fl::u32 *bitmap;
702
704
706 if (bitmap == nullptr) {
708 }
709
710
711
714
715 } else {
717
720
725 }
726 }
727 }
728
730
732 }
733
735
737
741 }
743
744 return ret;
745}
static void nsgif__restore_bg(struct nsgif *gif, struct nsgif_frame *frame, fl::u32 *bitmap) FL_NOEXCEPT
Restore a GIF to the background colour.
static fl::u32 * nsgif__bitmap_get(struct nsgif *gif) FL_NOEXCEPT
Helper to get the rendering bitmap for a gif.
struct fl::third_party::nsgif_frame nsgif_frame
GIF frame data.
static void nsgif__record_frame(struct nsgif *gif, const fl::u32 *bitmap) FL_NOEXCEPT
nsgif_error
LibNSGIF return codes.
@ NSGIF_ERR_OOM
Out of memory error.
static bool nsgif__bitmap_get_opaque(const struct nsgif *gif) FL_NOEXCEPT
Helper to get the client to determine if the bitmap is opaque.
@ NSGIF_DISPOSAL_RESTORE_BG
Clear frame to background colour.
@ NSGIF_DISPOSAL_RESTORE_PREV
Restore previous frame.
static nsgif_error nsgif__recover_frame(const struct nsgif *gif, fl::u32 *bitmap) FL_NOEXCEPT
static nsgif_error nsgif__decode(struct nsgif *gif, struct nsgif_frame *frame, const fl::u8 *data, fl::u32 *frame_data) FL_NOEXCEPT
static void nsgif__bitmap_modified(const struct nsgif *gif) FL_NOEXCEPT
Helper to tell the client that their bitmap was modified.
static void nsgif__bitmap_set_opaque(const struct nsgif *gif, const struct nsgif_frame *frame) FL_NOEXCEPT
Helper to tell the client that whether the bitmap is opaque.
bool opaque
whether the frame is totally opaque
nsgif_frame * frames
decoded frames
fl::u32 decoded_frame
current frame decoded to bitmap
bool decoded
whether the frame has previously been decoded.
struct nsgif_frame_info info
fl::u8 disposal
Disposal method for previous frame; affects plotting.
#define NSGIF_FRAME_INVALID
Internal flag that a frame is invalid/unprocessed.