Как лучше рисовать примитивы в SDL2?

В библиотеке SDL2 для рисования примитивов доступна функция SDLRenderDrawPoint для рисования точки, SDLRenderDrawLine - для рисования линии, SDLRenderDrawRect - для рисования прямоугольника, и SDLRenderDrawCircle - для рисования круга.

Кроме того, для удобства работы с примитивами, можно использовать структуру SDLRect для определения прямоугольных областей, и структуру SDLPoint для определения точек.

Для начала работы с примитивами в SDL2 нужно выполнить несколько шагов:

  1. Инициализировать систему рендеринга SDL2. Для этого нужно вызвать функцию SDLInit с передачей ей флага SDLINIT_VIDEO.
SDL_Init(SDL_INIT_VIDEO);
  1. Создать окно и поверхность рендеринга. Для этого нужно вызвать функцию SDLCreateWindow для создания окна и функцию SDLCreateRenderer для создания поверхности рендеринга.
SDL_Window* window = SDL_CreateWindow("SDL2", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 600, SDL_WINDOW_SHOWN);
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
  1. Очистить поверхность рендеринга. Для этого нужно вызвать функцию SDL_RenderClear.
SDL_RenderClear(renderer);
  1. Нарисовать примитивы. Для каждого примитива необходимо вызвать соответствующую функцию для его рисования.

Примеры рисования различных примитивов:

// Рисование точки
SDL_RenderDrawPoint(renderer, 100, 100);

// Рисование линии
SDL_RenderDrawLine(renderer, 0, 0, 800, 600);

// Рисование прямоугольника
SDL_Rect rect = {100, 100, 200, 100};
SDL_RenderDrawRect(renderer, &rect);

// Рисование круга
int centerX = 400;
int centerY = 300;
int radius = 50;
for (int i = 0; i <= 360; i += 10) {
    int x = centerX + radius * cos(i * M_PI / 180);
    int y = centerY + radius * sin(i * M_PI / 180);
    SDL_RenderDrawPoint(renderer, x, y);
}
  1. Обновить поверхность рендеринга. Для этого нужно вызвать функцию SDL_RenderPresent.
SDL_RenderPresent(renderer);
  1. Завершить работу с SDL2. Для этого нужно освободить память, занятую окном и поверхностью рендеринга, а также вызвать функцию SDL_Quit.
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();

Таким образом, используя функции рисования примитивов и следуя указанным выше шагам, вы сможете создавать и отображать различные простые фигуры с помощью библиотеки SDL2.