sdlBlitSurfaceTiledWithScale function

bool sdlBlitSurfaceTiledWithScale(
  1. Pointer<SdlSurface> src,
  2. Pointer<SdlRect> srcrect,
  3. double scale,
  4. int scaleMode,
  5. Pointer<SdlSurface> dst,
  6. Pointer<SdlRect> dstrect,
)

Perform a scaled and tiled blit to a destination surface, which may be of a different format.

The pixels in srcrect will be scaled and repeated as many times as needed to completely fill dstrect.

\param src the SDL_Surface structure to be copied from. \param srcrect the SDL_Rect structure representing the rectangle to be copied, or NULL to copy the entire surface. \param scale the scale used to transform srcrect into the destination rectangle, e.g. a 32x32 texture with a scale of 2 would fill 64x64 tiles. \param scaleMode scale algorithm to be used. \param dst the SDL_Surface structure that is the blit target. \param dstrect the SDL_Rect structure representing the target rectangle in the destination surface, or NULL to fill the entire surface. \returns true on success or false on failure; call SDL_GetError() for more information.

\threadsafety The same destination surface should not be used from two threads at once. It is safe to use the same source surface from multiple threads.

\since This function is available since SDL 3.1.3.

\sa SDL_BlitSurface

extern SDL_DECLSPEC bool SDLCALL SDL_BlitSurfaceTiledWithScale(SDL_Surface *src, const SDL_Rect *srcrect, float scale, SDL_ScaleMode scaleMode, SDL_Surface *dst, const SDL_Rect *dstrect)

Implementation

bool sdlBlitSurfaceTiledWithScale(
    Pointer<SdlSurface> src,
    Pointer<SdlRect> srcrect,
    double scale,
    int scaleMode,
    Pointer<SdlSurface> dst,
    Pointer<SdlRect> dstrect) {
  final sdlBlitSurfaceTiledWithScaleLookupFunction = libSdl3.lookupFunction<
      Uint8 Function(
          Pointer<SdlSurface> src,
          Pointer<SdlRect> srcrect,
          Float scale,
          Int32 scaleMode,
          Pointer<SdlSurface> dst,
          Pointer<SdlRect> dstrect),
      int Function(
          Pointer<SdlSurface> src,
          Pointer<SdlRect> srcrect,
          double scale,
          int scaleMode,
          Pointer<SdlSurface> dst,
          Pointer<SdlRect> dstrect)>('SDL_BlitSurfaceTiledWithScale');
  return sdlBlitSurfaceTiledWithScaleLookupFunction(
          src, srcrect, scale, scaleMode, dst, dstrect) ==
      1;
}