sdlxGetSurfaceColorMod function surface

SdlxColor? sdlxGetSurfaceColorMod(
  1. Pointer<SdlSurface> surface
)

Get the additional color value multiplied into blit operations.

\param surface the SDL_Surface structure to query. \param r a pointer filled in with the current red color value. \param g a pointer filled in with the current green color value. \param b a pointer filled in with the current blue color value. \returns true on success or false on failure; call SDL_GetError() for more information.

\threadsafety This function can be called on different threads with different surfaces.

\since This function is available since SDL 3.2.0.

\sa SDL_GetSurfaceAlphaMod \sa SDL_SetSurfaceColorMod

extern SDL_DECLSPEC bool SDLCALL SDL_GetSurfaceColorMod(SDL_Surface *surface, Uint8 *r, Uint8 *g, Uint8 *b)

See also:

Implementation

SdlxColor? sdlxGetSurfaceColorMod(Pointer<SdlSurface> surface) =>
    ffi.using((arena) {
      final rPointer = arena<Uint8>();
      final gPointer = arena<Uint8>();
      final bPointer = arena<Uint8>();
      final aPointer = arena<Uint8>();

      if (!sdlGetSurfaceColorMod(surface, rPointer, gPointer, bPointer)) {
        return null;
      }

      if (!sdlGetSurfaceAlphaMod(surface, aPointer)) {
        return null;
      }

      return SdlxColor(
        rPointer.value,
        gPointer.value,
        bPointer.value,
        aPointer.value,
      );
    });