sdlxRenderTextureAffine function render

bool sdlxRenderTextureAffine(
  1. Pointer<SdlRenderer> renderer,
  2. Pointer<SdlTexture> texture, {
  3. SdlxFRect? srcrect,
  4. SdlxFPoint? origin,
  5. SdlxFPoint? right,
  6. SdlxFPoint? down,
})

Copy a portion of the source texture to the current rendering target, with affine transform, at subpixel precision.

\param renderer the renderer which should copy parts of a texture. \param texture the source texture. \param srcrect a pointer to the source rectangle, or NULL for the entire texture. \param origin a pointer to a point indicating where the top-left corner of srcrect should be mapped to, or NULL for the rendering target's origin. \param right a pointer to a point indicating where the top-right corner of srcrect should be mapped to, or NULL for the rendering target's top-right corner. \param down a pointer to a point indicating where the bottom-left corner of srcrect should be mapped to, or NULL for the rendering target's bottom-left corner. \returns true on success or false on failure; call SDL_GetError() for more information.

\threadsafety You may only call this function from the main thread.

\since This function is available since SDL 3.2.0.

\sa SDL_RenderTexture

extern SDL_DECLSPEC bool SDLCALL SDL_RenderTextureAffine(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_FRect *srcrect, const SDL_FPoint *origin, const SDL_FPoint *right, const SDL_FPoint *down)

See also:

Implementation

bool sdlxRenderTextureAffine(
  Pointer<SdlRenderer> renderer,
  Pointer<SdlTexture> texture, {
  SdlxFRect? srcrect,
  SdlxFPoint? origin,
  SdlxFPoint? right,
  SdlxFPoint? down,
}) {
  Pointer<SdlFRect> srcrectPointer = nullptr;
  Pointer<SdlFPoint> originPointer = nullptr;
  Pointer<SdlFPoint> rightPointer = nullptr;
  Pointer<SdlFPoint> downPointer = nullptr;
  if (srcrect != null) {
    srcrectPointer = srcrect.calloc();
  }
  if (origin != null) {
    originPointer = origin.calloc();
  }
  if (right != null) {
    rightPointer = right.calloc();
  }
  if (down != null) {
    downPointer = down.calloc();
  }
  final result = sdlRenderTextureAffine(
    renderer,
    texture,
    srcrectPointer,
    originPointer,
    rightPointer,
    downPointer,
  );
  if (srcrectPointer != nullptr) {
    srcrectPointer.callocFree();
  }
  if (originPointer != nullptr) {
    originPointer.callocFree();
  }
  if (rightPointer != nullptr) {
    rightPointer.callocFree();
  }
  if (downPointer != nullptr) {
    downPointer.callocFree();
  }
  return result;
}