sdlxFillSurfaceRects function surface

bool sdlxFillSurfaceRects(
  1. Pointer<SdlSurface> dst,
  2. List<SdlxRect> rects,
  3. int color
)

Perform a fast fill of a set of rectangles with a specific color.

color should be a pixel of the format used by the surface, and can be generated by SDL_MapRGB() or SDL_MapRGBA(). If the color value contains an alpha component then the destination is simply filled with that alpha information, no blending takes place.

If there is a clip rectangle set on the destination (set via SDL_SetSurfaceClipRect()), then this function will fill based on the intersection of the clip rectangle and rect.

\param dst the SDL_Surface structure that is the drawing target. \param rects an array of SDL_Rects representing the rectangles to fill. \param count the number of rectangles in the array. \param color the color to fill with. \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_FillSurfaceRect

extern SDL_DECLSPEC bool SDLCALL SDL_FillSurfaceRects(SDL_Surface *dst, const SDL_Rect *rects, int count, Uint32 color)

See also:

Implementation

bool sdlxFillSurfaceRects(
  Pointer<SdlSurface> dst,
  List<SdlxRect> rects,
  int color,
) {
  final count = rects.length;
  final rectsPointer = ffi.calloc<SdlRect>(count);
  for (var i = 0; i < count; i++) {
    final _ = rectsPointer[i]
      ..x = rects[i].x
      ..y = rects[i].y
      ..w = rects[i].w
      ..h = rects[i].h;
  }
  final result = sdlFillSurfaceRects(dst, rectsPointer, count, color);
  rectsPointer.callocFree();
  return result;
}