Add API: SDL_Vertex type and SDL_RenderGeometry
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
diff --git a/include/SDL_render.h b/include/SDL_render.h
index 8a8bf8e..9d4be91 100644
--- a/include/SDL_render.h
+++ b/include/SDL_render.h
@@ -137,6 +137,17 @@ typedef struct SDL_Renderer SDL_Renderer;
struct SDL_Texture;
typedef struct SDL_Texture SDL_Texture;
+/**
+ * \brief Vertex structure
+ */
+typedef struct SDL_Vertex
+{
+ SDL_FPoint position; /**< Vertex position, in SDL_Renderer coordinates */
+ SDL_Color color; /**< Vertex color */
+ SDL_FPoint tex_coord; /**< Texture coordinates (0..texture width, 0..texture height),
+ if needed */
+} SDL_Vertex;
+
/* Function prototypes */
@@ -1443,6 +1454,26 @@ extern DECLSPEC int SDLCALL SDL_RenderCopyExF(SDL_Renderer * renderer,
const SDL_RendererFlip flip);
/**
+ * \brief Render a list of triangles, optionally using a texture and indices into the vertex array
+ * Color and alpha modulation is done per vertex (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored).
+ *
+ * \param texture (optional) The SDL texture to use.
+ * \param vertices Vertices.
+ * \param num_vertices Number of vertices.
+ * \param indices (optional) An array of integer indices into the 'vertices' array, if NULL all vertices will be rendered in sequential order.
+ * \param num_indices Number of indices.
+ *
+ * \sa SDL_Vertex
+ *
+ * \return 0 on success, or -1 if the operation is not supported
+ */
+extern DECLSPEC int SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer,
+ SDL_Texture *texture,
+ SDL_Vertex *vertices, int num_vertices,
+ int *indices, int num_indices);
+
+
+/**
* Read pixels from the current rendering target to an array of pixels.
*
* **WARNING**: This is a very slow operation, and should not be used