这里用 SDL 渲染一个矩形。

#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_rect.h>

#undef main

int main(int argc, char* argv[]) {

    SDL_Window* window = NULL; // 窗口
    SDL_Renderer* render = NULL; // 渲染器
    SDL_Texture* texture = NULL; // 纹理
    SDL_Rect rect; // default pos (x, y) is (0, 0)
    rect.w = 50;
    rect.h = 50;

    SDL_Init(SDL_INIT_VIDEO);

    window = SDL_CreateWindow("SDL Rectangle",
                              SDL_WINDOWPOS_UNDEFINED, // 默认屏幕中心
                              SDL_WINDOWPOS_UNDEFINED,
                              600,
                              400,
                              SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);

    if (!window) {
        printf("create window failed\n");
        return -1;
    }

    render = SDL_CreateRenderer(window, -1 , SDL_RENDERER_ACCELERATED); // 创建渲染器

    if (!render) {
        printf("create renderer failed\n");
        return -1;
    }

    // 创建纹理 8通道ARGB 可以被作为渲染目标
    texture = SDL_CreateTexture(render, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_TARGET, 600, 400);

    if (!texture) {
        printf("create texture failed\n");
        return -1;
    }

    int run = 1;
    int run_count = 0;
    while(run) {
        rect.x = rand() % 550;
        rect.y = rand() % 350;


        SDL_SetRenderTarget(render, texture); // 设置渲染器目标为纹理
        SDL_SetRenderDrawColor(render, 0, 0, 0, 0); // 设置渲染器颜色
        SDL_RenderClear(render); // 清屏 清除上一次的rect

        SDL_RenderDrawRect(render, &rect); // 渲染矩形
        SDL_SetRenderDrawColor(render, 255, 0, 0, 0); // 设置颜色
        SDL_RenderFillRect(render, &rect); // 渲染(填充)矩形

        SDL_SetRenderTarget(render, NULL); // 将渲染器目标设置为默认:窗口
        SDL_RenderCopy(render, texture, NULL, NULL); // 将纹理拷贝到CPU

        SDL_RenderPresent(render); // 执行渲染
        SDL_Delay(2000);

        run_count++;

        if (run_count == 5) {
            run = 0;
        }
    }

    SDL_DestroyWindow(window);
    SDL_DestroyRenderer(render);
    SDL_DestroyTexture(texture);
    SDL_Quit();

    return 0;
}

注释已经写在代码里了。