Definition at line 277 of file software_decoder.cpp.hpp.
277 {
278 if (!bitmap) {
279 setError(
"convertBitmapToFrame called with null bitmap");
280 return nullptr;
281 }
282
283 GifBitmap* gifBitmap = static_cast<GifBitmap*>(bitmap);
284
285
286 if (!gifBitmap->pixels || gifBitmap->width == 0 || gifBitmap->height == 0) {
287 setError(
"GIF bitmap has invalid data or dimensions");
288 return nullptr;
289 }
290
291 fl::u8* rawData = gifBitmap->pixels.get();
292
293
294
295
296
297
298
300 rawData,
301 gifBitmap->width,
302 gifBitmap->height,
305 );
306
307 if (!frame || !frame->isValid()) {
308 setError(
"Failed to create valid Frame from GIF bitmap");
309 return nullptr;
310 }
311
312 return frame;
313}
fl::u32 currentFrameIndex_
void setError(const fl::string &message) FL_NOEXCEPT
shared_ptr< T > make_shared(Args &&... args) FL_NOEXCEPT
References currentFrameIndex_, FL_NOEXCEPT, fl::unique_ptr< T, Deleter >::get(), fl::third_party::GifBitmap::height, fl::make_shared(), fl::third_party::GifBitmap::pixels, fl::RGBA8888, setError(), and fl::third_party::GifBitmap::width.
Referenced by decode().