sdlxGetTextureColorMod function render

bool sdlxGetTextureColorMod(
  1. Pointer<SdlTexture> texture,
  2. SdlxColor color
)

Get the additional color value multiplied into render copy operations.

\param texture the texture 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 should only be called on the main thread.

\since This function is available since SDL 3.2.0.

\sa SDL_GetTextureAlphaMod \sa SDL_GetTextureColorModFloat \sa SDL_SetTextureColorMod

extern SDL_DECLSPEC bool SDLCALL SDL_GetTextureColorMod(SDL_Texture *texture, Uint8 *r, Uint8 *g, Uint8 *b)

Implementation

bool sdlxGetTextureColorMod(Pointer<SdlTexture> texture, SdlxColor color) {
  final rPointer = ffi.calloc<Uint8>();
  final gPointer = ffi.calloc<Uint8>();
  final bPointer = ffi.calloc<Uint8>();
  final aPointer = ffi.calloc<Uint8>();
  var result = sdlGetTextureColorMod(texture, rPointer, gPointer, bPointer);
  if (result) {
    color
      ..r = rPointer.value
      ..g = gPointer.value
      ..b = bPointer.value;
    result = sdlGetTextureAlphaMod(texture, aPointer);
    if (result) {
      color.a = aPointer.value;
    }
  }
  rPointer.callocFree();
  gPointer.callocFree();
  bPointer.callocFree();
  aPointer.callocFree();
  return result;
}