SDL2 创建渲染器时只能指定使用软件渲染还是硬件加速,无法选择使用哪种图形引擎实现硬件加速。SDL3 对此做了优化,可以在创建渲染器时指定 rendering driver 也就是图形引擎,比如在 Windows 平台下可以指定使用 D3D11 也可以指定使用 OpenGL 或者 Vulkan。
指定图形引擎
SDL_CreateRenderer 函数的第二个参数 name 表示指定使用的 rendering driver name,传 NULL 表示使用第一个支持的 rendering driver,在 Windows 系统下通常是 D3D11。
SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window *window, const char *name)
SDL3 接口文件中没有预定义 rendering driver name,可以通过 SDL_GetNumRenderDrivers 和 SDL_GetRenderDriver 两个函数枚举当前所支持的图形引擎:
int count = SDL_GetNumRenderDrivers();
for (int i = 0; i < count; ++i) {
const char* name = SDL_GetRenderDriver(i);
SDL_Log("Render driver[%d]: %s", i, name);
}
在 Windows 系统下执行结果如下:

2424

被折叠的 条评论
为什么被折叠?



