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).
Defined in SDL_render.h
int SDL_RenderGeometry(SDL_Renderer *renderer,
SDL_Texture *texture,
const SDL_Vertex *vertices, int num_vertices,
const int *indices, int num_indices);
renderer | The rendering context. |
texture | (optional) The SDL texture to use. |
vertices | Vertices. |
num_vertices | Number of vertices. |
indices | (optional) An array of integer indices into the 'vertices' array, if NULL all vertices will be rendered in sequential order. |
num_indices | Number of indices. |
Return 0 on success, or -1 if the operation is not supported
This function is available since SDL 2.0.18.
SDL_Renderer *renderer;
SDL_Texture *texture;
// Create three vertices to render
SDL_Vertex vertex_1 = {{10.5, 10.5}, {255, 0, 0, 255}, {1, 1}};
SDL_Vertex vertex_2 = {{20.5, 10.5}, {255, 0, 0, 255}, {1, 1}};
SDL_Vertex vertex_3 = {{10.5, 20.5}, {255, 0, 0, 255}, {1, 1}};
// Put them into array
SDL_Vertex vertices[] = {
vertex_1,
vertex_2,
vertex_3
};
// Set renderer color
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderClear(renderer);
// Render red triangle
SDL_RenderGeometry(renderer, texture, vertices, 3, NULL, 0);
SDL_RenderPresent(renderer);