sdlxGetMasksForPixelFormat function pixels
Convert one of the enumerated pixel formats to a bpp value and RGBA masks.
\param format one of the SDL_PixelFormat values. \param bpp a bits per pixel value; usually 15, 16, or 32. \param Rmask a pointer filled in with the red mask for the format. \param Gmask a pointer filled in with the green mask for the format. \param Bmask a pointer filled in with the blue mask for the format. \param Amask a pointer filled in with the alpha mask for the format. \returns true on success or false on failure; call SDL_GetError() for more information.
\threadsafety It is safe to call this function from any thread.
\since This function is available since SDL 3.2.0.
\sa SDL_GetPixelFormatForMasks
extern SDL_DECLSPEC bool SDLCALL SDL_GetMasksForPixelFormat(SDL_PixelFormat format, int *bpp, Uint32 *Rmask, Uint32 *Gmask, Uint32 *Bmask, Uint32 *Amask)
Implementation
bool sdlxGetMasksForPixelFormat(int format, SdlxMasks masks) {
final bppPointer = ffi.calloc<Int32>();
final rmaskPointer = ffi.calloc<Uint32>();
final gmaskPointer = ffi.calloc<Uint32>();
final bmaskPointer = ffi.calloc<Uint32>();
final amaskPointer = ffi.calloc<Uint32>();
final result = sdlGetMasksForPixelFormat(
format,
bppPointer,
rmaskPointer,
gmaskPointer,
bmaskPointer,
amaskPointer,
);
if (result) {
masks
..bpp = bppPointer.value
..rmask = rmaskPointer.value
..gmask = gmaskPointer.value
..bmask = bmaskPointer.value
..amask = amaskPointer.value;
}
bppPointer.callocFree();
rmaskPointer.callocFree();
gmaskPointer.callocFree();
bmaskPointer.callocFree();
amaskPointer.callocFree();
return result;
}