FastLED 3.9.15
Loading...
Searching...
No Matches

◆ nsgif__deinterlace()

static bool fl::third_party::nsgif__deinterlace ( fl::u32 height,
fl::u32 * y,
fl::u8 * step )
inlinestatic

Get the next line for GIF decode.

Note that the step size must be initialised to 24 at the start of the frame (when y == 0). This is because of the first two passes of the frame have the same step size of 8, and the step size is used to determine the current pass.

Parameters
[in]heightFrame height in pixels.
[in,out]yCurrent row, starting from 0, updated on exit.
[in,out]stepCurrent step starting with 24, updated on exit.
Returns
true if there is a row to process, false at the end of the frame.

Definition at line 365 of file gif.cpp.hpp.

366{
367 *y += *step & 0xf;
368
369 if (*y < height) return true;
370
371 switch (*step) {
372 case 24: *y = 4; *step = 8; if (*y < height) return true;
373 /* Fall through. */
374 case 8: *y = 2; *step = 4; if (*y < height) return true;
375 /* Fall through. */
376 case 4: *y = 1; *step = 2; if (*y < height) return true;
377 /* Fall through. */
378 default:
379 break;
380 }
381
382 return false;
383}
u8 u8 height
Definition blur.h:186
constexpr enable_if< is_fixed_point< T >::value, T >::type step(T edge, T x) FL_NOEXCEPT

References FL_NOEXCEPT, fl::height, fl::step(), and fl::y.

Referenced by nsgif__next_row().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: