int SDL_RenderGeometry(SDL_Renderer* renderer, SDL_Texture* texture, const SDL_Vertex* vertices, int num_vertices, const int* indices, int num_indices)
renderer | レンダラ |
texture | (任意) 使用するSDL_Texture |
vertices | ベクトルの配列 |
num_vertices | ベクトルの個数 |
indices | インデックス番号の配列 |
num_indices | インデックス番号の個数 |
#include <SDL.h>
int main(int argc, char *argv[])
{
SDL_bool quit = SDL_FALSE;
SDL_Window *window = SDL_CreateWindow("三角形の例", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, 0);
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
SDL_Vertex vert[3];
// center
vert[0].position.x = 400;
vert[0].position.y = 150;
vert[0].color.r = 255;
vert[0].color.g = 0;
vert[0].color.b = 0;
vert[0].color.a = 255;
// left
vert[1].position.x = 200;
vert[1].position.y = 450;
vert[1].color.r = 0;
vert[1].color.g = 0;
vert[1].color.b = 255;
vert[1].color.a = 255;
// right
vert[2].position.x = 600;
vert[2].position.y = 450;
vert[2].color.r = 0;
vert[2].color.g = 255;
vert[2].color.b = 0;
vert[2].color.a = 255;
while (!quit) {
SDL_Event ev;
while (SDL_PollEvent(&ev) != 0) {
switch(ev.type) {
case SDL_QUIT:
quit = SDL_TRUE;
break;
}
}
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer);
SDL_RenderGeometry(renderer, NULL, vert, 3, NULL, 0);
SDL_RenderPresent(renderer);
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}