sdlxGetMasksForPixelFormat function pixels

SdlxMasks? sdlxGetMasksForPixelFormat(
  1. int format
)

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)

See also:

Implementation

SdlxMasks? sdlxGetMasksForPixelFormat(int format) => ffi.using((arena) {
  final bppPointer = arena<Int32>();
  final rmaskPointer = arena<Uint32>();
  final gmaskPointer = arena<Uint32>();
  final bmaskPointer = arena<Uint32>();
  final amaskPointer = arena<Uint32>();

  final result = sdlGetMasksForPixelFormat(
    format,
    bppPointer,
    rmaskPointer,
    gmaskPointer,
    bmaskPointer,
    amaskPointer,
  );

  if (!result) {
    return null;
  }

  return SdlxMasks(
    bpp: bppPointer.value,
    rmask: rmaskPointer.value,
    gmask: gmaskPointer.value,
    bmask: bmaskPointer.value,
    amask: amaskPointer.value,
  );
});