-
-
Notifications
You must be signed in to change notification settings - Fork 105
SDL2
UMU edited this page Jan 6, 2021
·
1 revision
有小伙伴反馈:按照 README 测试 video_source -> cge -> cgc,结果发现 cgc 啥都没显示。
后来查明她直接用 SDL2 官方编译好的 DLL,其 render drivers 没有 direct3d11。video_source 跑起来后,用的是老式 D3D9 渲染驱动,而它的代码只考虑 D3D11。
目前,我们已经给 video_source 加上提示,如果没有 direct3d11 会警告。
以下是 SDL2 官方编译好的 DLL 的信息:
Number of render drivers: 4
[0] direct3d
flags: SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE
num_texture_formats: 1
(0) SDL_PIXELFORMAT_ARGB8888
max_texture_width: 0
max_texture_height: 0
[1] opengl
flags: SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE
num_texture_formats: 4
(0) SDL_PIXELFORMAT_ARGB8888
(1) SDL_PIXELFORMAT_ABGR8888
(2) SDL_PIXELFORMAT_RGB888
(3) SDL_PIXELFORMAT_BGR888
max_texture_width: 0
max_texture_height: 0
[2] opengles2
flags: SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE
num_texture_formats: 4
(0) SDL_PIXELFORMAT_ARGB8888
(1) SDL_PIXELFORMAT_ABGR8888
(2) SDL_PIXELFORMAT_RGB888
(3) SDL_PIXELFORMAT_BGR888
max_texture_width: 0
max_texture_height: 0
[3] software
flags: SDL_RENDERER_SOFTWARE | SDL_RENDERER_TARGETTEXTURE
num_texture_formats: 8
(0) SDL_PIXELFORMAT_ARGB8888
(1) SDL_PIXELFORMAT_ABGR8888
(2) SDL_PIXELFORMAT_RGBA8888
(3) SDL_PIXELFORMAT_BGRA8888
(4) SDL_PIXELFORMAT_RGB888
(5) SDL_PIXELFORMAT_BGR888
(6) SDL_PIXELFORMAT_RGB565
(7) SDL_PIXELFORMAT_RGB555
max_texture_width: 0
max_texture_height: 0
为了让 SDL2 使用 DXGI(D3D11)需要以下步骤:
Number of render drivers: 5
[0] direct3d
flags: SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE
num_texture_formats: 1
(0) SDL_PIXELFORMAT_ARGB8888
max_texture_width: 0
max_texture_height: 0
[1] direct3d11
flags: SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE
num_texture_formats: 6
(0) SDL_PIXELFORMAT_ARGB8888
(1) SDL_PIXELFORMAT_RGB888
(2) SDL_PIXELFORMAT_YV12
(3) SDL_PIXELFORMAT_IYUV
(4) SDL_PIXELFORMAT_NV12
(5) SDL_PIXELFORMAT_NV21
max_texture_width: 0
max_texture_height: 0
[2] opengl
flags: SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE
num_texture_formats: 4
(0) SDL_PIXELFORMAT_ARGB8888
(1) SDL_PIXELFORMAT_ABGR8888
(2) SDL_PIXELFORMAT_RGB888
(3) SDL_PIXELFORMAT_BGR888
max_texture_width: 0
max_texture_height: 0
[3] opengles2
flags: SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE
num_texture_formats: 4
(0) SDL_PIXELFORMAT_ARGB8888
(1) SDL_PIXELFORMAT_ABGR8888
(2) SDL_PIXELFORMAT_RGB888
(3) SDL_PIXELFORMAT_BGR888
max_texture_width: 0
max_texture_height: 0
[4] software
flags: SDL_RENDERER_SOFTWARE | SDL_RENDERER_TARGETTEXTURE
num_texture_formats: 8
(0) SDL_PIXELFORMAT_ARGB8888
(1) SDL_PIXELFORMAT_ABGR8888
(2) SDL_PIXELFORMAT_RGBA8888
(3) SDL_PIXELFORMAT_BGRA8888
(4) SDL_PIXELFORMAT_RGB888
(5) SDL_PIXELFORMAT_BGR888
(6) SDL_PIXELFORMAT_RGB565
(7) SDL_PIXELFORMAT_RGB555
max_texture_width: 0
max_texture_height: 0
主要是 SDL_CreateRenderer 的 index 参数传递正确的渲染驱动序号。
其它地方可能导致稍微不同,有问题具体分析。