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

В библиотеке SDL2 для рисования примитивов доступна функция SDL_RenderDrawPoint для рисования точки, SDL_RenderDrawLine - для рисования линии, SDL_RenderDrawRect - для рисования прямоугольника, и SDL_RenderDrawCircle - для рисования круга.

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

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

1. Инициализировать систему рендеринга SDL2. Для этого нужно вызвать функцию SDL_Init с передачей ей флага SDL_INIT_VIDEO.

SDL_Init(SDL_INIT_VIDEO);

2. Создать окно и поверхность рендеринга. Для этого нужно вызвать функцию SDL_CreateWindow для создания окна и функцию SDL_CreateRenderer для создания поверхности рендеринга.

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);

3. Очистить поверхность рендеринга. Для этого нужно вызвать функцию SDL_RenderClear.

SDL_RenderClear(renderer);

4. Нарисовать примитивы. Для каждого примитива необходимо вызвать соответствующую функцию для его рисования.

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

// Рисование точки
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);
}

5. Обновить поверхность рендеринга. Для этого нужно вызвать функцию SDL_RenderPresent.

SDL_RenderPresent(renderer);

6. Завершить работу с SDL2. Для этого нужно освободить память, занятую окном и поверхностью рендеринга, а также вызвать функцию SDL_Quit.

SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();

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