···441441#define GPU_BATCH_XY_ST_RGBA (GPU_BATCH_XY | GPU_BATCH_ST | GPU_BATCH_RGBA)
442442#define GPU_BATCH_XYZ_ST_RGBA (GPU_BATCH_XYZ | GPU_BATCH_ST | GPU_BATCH_RGBA)
443443444444+445445+/*! Bit flags for blitting into a rectangular region.
446446+ * \see GPU_BlitRect
447447+ * \see GPU_BlitRectX
448448+ */
449449+typedef Uint32 GPU_FlipEnum;
450450+static const GPU_FlipEnum GPU_FLIP_NONE = 0x0;
451451+static const GPU_FlipEnum GPU_FLIP_HORIZONTAL = 0x1;
452452+static const GPU_FlipEnum GPU_FLIP_VERTICAL = 0x2;
453453+454454+444455/*! \ingroup ShaderInterface
445456 * Type enumeration for GPU_AttributeFormat specifications.
446457 */
···12511262DECLSPEC void SDLCALL GPU_ClearRGBA(GPU_Target* target, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
1252126312531264/*! Draws the given image to the given render target.
12541254- * \param src_rect The region of the source image to use.
12651265+ * \param src_rect The region of the source image to use. Pass NULL for the entire image.
12551266 * \param x Destination x-position
12561267 * \param y Destination y-position */
12571268DECLSPEC void SDLCALL GPU_Blit(GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, float x, float y);
1258126912591270/*! Rotates and draws the given image to the given render target.
12601260- * \param src_rect The region of the source image to use.
12711271+ * \param src_rect The region of the source image to use. Pass NULL for the entire image.
12611272 * \param x Destination x-position
12621273 * \param y Destination y-position
12631274 * \param degrees Rotation angle (in degrees) */
12641275DECLSPEC void SDLCALL GPU_BlitRotate(GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, float x, float y, float degrees);
1265127612661277/*! Scales and draws the given image to the given render target.
12671267- * \param src_rect The region of the source image to use.
12781278+ * \param src_rect The region of the source image to use. Pass NULL for the entire image.
12681279 * \param x Destination x-position
12691280 * \param y Destination y-position
12701281 * \param scaleX Horizontal stretch factor
···12721283DECLSPEC void SDLCALL GPU_BlitScale(GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, float x, float y, float scaleX, float scaleY);
1273128412741285/*! Scales, rotates, and draws the given image to the given render target.
12751275- * \param src_rect The region of the source image to use.
12861286+ * \param src_rect The region of the source image to use. Pass NULL for the entire image.
12761287 * \param x Destination x-position
12771288 * \param y Destination y-position
12781289 * \param degrees Rotation angle (in degrees)
···12811292DECLSPEC void SDLCALL GPU_BlitTransform(GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, float x, float y, float degrees, float scaleX, float scaleY);
1282129312831294/*! Scales, rotates around a pivot point, and draws the given image to the given render target. The drawing point (x, y) coincides with the pivot point on the src image (pivot_x, pivot_y).
12841284- * \param src_rect The region of the source image to use.
12951295+ * \param src_rect The region of the source image to use. Pass NULL for the entire image.
12851296 * \param x Destination x-position
12861297 * \param y Destination y-position
12871298 * \param pivot_x Pivot x-position (in image coordinates)
···12901301 * \param scaleX Horizontal stretch factor
12911302 * \param scaleY Vertical stretch factor */
12921303DECLSPEC void SDLCALL GPU_BlitTransformX(GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, float x, float y, float pivot_x, float pivot_y, float degrees, float scaleX, float scaleY);
13041304+13051305+/*! Draws the given image to the given render target, scaling it to fit the destination region.
13061306+ * \param src_rect The region of the source image to use. Pass NULL for the entire image.
13071307+ * \param dest_rect The region of the destination target image to draw upon. Pass NULL for the entire target.
13081308+ */
13091309+DECLSPEC void SDLCALL GPU_BlitRect(GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, GPU_Rect* dest_rect);
13101310+13111311+/*! Draws the given image to the given render target, scaling it to fit the destination region.
13121312+ * \param src_rect The region of the source image to use. Pass NULL for the entire image.
13131313+ * \param dest_rect The region of the destination target image to draw upon. Pass NULL for the entire target.
13141314+ * \param degrees Rotation angle (in degrees)
13151315+ * \param pivot_x Pivot x-position (in image coordinates)
13161316+ * \param pivot_y Pivot y-position (in image coordinates)
13171317+ * \param flip_direction A GPU_FlipEnum value (or bitwise OR'd combination) that specifies which direction the image should be flipped.
13181318+ */
13191319+DECLSPEC void SDLCALL GPU_BlitRectX(GPU_Image* image, GPU_Rect* src_rect, GPU_Target* target, GPU_Rect* dest_rect, float degrees, float pivot_x, float pivot_y, GPU_FlipEnum flip_direction);
13201320+1293132112941322/*! Renders triangles from the given set of vertices. This lets you render arbitrary 2D geometry. It is a direct path to the GPU, so the format is different than typical SDL_gpu calls.
12951323 * \param values A tightly-packed array of vertex position (e.g. x,y), texture coordinates (e.g. s,t), and color (e.g. r,g,b,a) values. Texture coordinates and color values are expected to be already normalized to 0.0 - 1.0. Pass NULL to render with only custom shader attributes.