目次 - API(機能別) - 2Dレンダリング - SDL_RenderGeometry

# SDL_RenderGeometry

三角形の一覧をレンダリングする. テクスチャとベクトル配列の番号も使用できる. 色とα変調はベクトルごとに行われる(SDL_SetTextureColorModとSDL_SetTextureAlphaModは無視される)

## 構文

`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 | インデックス番号の個数

## 戻り値

成功のとき0, 対応していないとき-1を戻す.

## サンプルコード

``

    #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;
    }

## バージョン

SDL 2.0.18以降

## SDL Wikiへのリンク

SDL_RenderGeometry - SDL Wiki