sdlxGetRenderDrawColor function render

bool sdlxGetRenderDrawColor(
  1. Pointer<SdlRenderer> renderer,
  2. SdlxColor color
)

Get the color used for drawing operations (Rect, Line and Clear).

\param renderer the rendering context. \param r a pointer filled in with the red value used to draw on the rendering target. \param g a pointer filled in with the green value used to draw on the rendering target. \param b a pointer filled in with the blue value used to draw on the rendering target. \param a a pointer filled in with the alpha value used to draw on the rendering target; usually SDL_ALPHA_OPAQUE (255). \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_GetRenderDrawColorFloat \sa SDL_SetRenderDrawColor

extern SDL_DECLSPEC bool SDLCALL SDL_GetRenderDrawColor(SDL_Renderer *renderer, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)

Implementation

bool sdlxGetRenderDrawColor(Pointer<SdlRenderer> renderer, SdlxColor color) {
  final rPointer = calloc<Uint8>();
  final gPointer = calloc<Uint8>();
  final bPointer = calloc<Uint8>();
  final aPointer = calloc<Uint8>();
  final result = sdlGetRenderDrawColor(
    renderer,
    rPointer,
    gPointer,
    bPointer,
    aPointer,
  );
  if (result) {
    color
      ..r = rPointer.value
      ..g = gPointer.value
      ..b = bPointer.value
      ..a = aPointer.value;
  }
  rPointer.callocFree();
  gPointer.callocFree();
  bPointer.callocFree();
  aPointer.callocFree();
  return result;
}