upperBlitScaled method
Perform a scaled blit to a destination surface, which may be of a different format.
\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 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 destination surface. \param scaleMode the SDL_ScaleMode to be used. \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_BlitSurfaceScaled(SDL_Surface *src, const SDL_Rect *srcrect, SDL_Surface *dst, const SDL_Rect *dstrect, SDL_ScaleMode scaleMode)
{@category surface}
Implementation
bool upperBlitScaled(
Pointer<SdlSurface> dst, {
math.Rectangle<double>? srcrect,
math.Rectangle<double>? dstrect,
int scaleMode = 0,
}) {
Pointer<SdlRect> srcrectPointer = nullptr;
Pointer<SdlRect> dstrectPointer = nullptr;
if (srcrect != null) {
srcrectPointer = srcrect.callocInt();
}
if (dstrect != null) {
dstrectPointer = dstrect.callocInt();
}
final result = sdlBlitSurfaceScaled(
this,
srcrectPointer,
dst,
dstrectPointer,
scaleMode,
);
calloc
..free(srcrectPointer)
..free(dstrectPointer);
return result;
}