sdlxBlitSurfaceTiledWithScale function surface
- Pointer<
SdlSurface> src, - SdlxRect? srcrect,
- Pointer<
SdlSurface> dst, - SdlxRect? dstrect, {
- double scale = 1.0,
- int scaleMode = SdlkScalemode.invalid,
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 Only one thread should be using the src and dst surfaces
at any given time.
\since This function is available since SDL 3.2.0.
\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)
See also:
Implementation
bool sdlxBlitSurfaceTiledWithScale(
Pointer<SdlSurface> src,
SdlxRect? srcrect,
Pointer<SdlSurface> dst,
SdlxRect? dstrect, {
double scale = 1.0,
int scaleMode = SdlkScalemode.invalid,
}) {
Pointer<SdlRect> srcrectPointer = nullptr;
Pointer<SdlRect> dstrectPointer = nullptr;
if (srcrect != null) {
srcrectPointer = srcrect.calloc();
}
if (dstrect != null) {
dstrectPointer = dstrect.calloc();
}
final result = sdlBlitSurfaceTiledWithScale(
src,
srcrectPointer,
scale,
scaleMode,
dst,
dstrectPointer,
);
if (srcrectPointer != nullptr) {
srcrectPointer.callocFree();
}
if (dstrectPointer != nullptr) {
dstrectPointer.callocFree();
}
return result;
}