Query available formats before advertising them.
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403434
This commit is contained in:
parent
01419057d7
commit
b4dd1e1c1a
1 changed files with 34 additions and 14 deletions
|
@ -88,20 +88,8 @@ SDL_RenderDriver D3D_RenderDriver = {
|
|||
SDL_BLENDMODE_BLEND | SDL_BLENDMODE_ADD | SDL_BLENDMODE_MOD),
|
||||
(SDL_TEXTURESCALEMODE_NONE | SDL_TEXTURESCALEMODE_FAST |
|
||||
SDL_TEXTURESCALEMODE_SLOW | SDL_TEXTURESCALEMODE_BEST),
|
||||
12,
|
||||
{
|
||||
SDL_PIXELFORMAT_INDEX8,
|
||||
SDL_PIXELFORMAT_RGB332,
|
||||
SDL_PIXELFORMAT_RGB444,
|
||||
SDL_PIXELFORMAT_RGB555,
|
||||
SDL_PIXELFORMAT_ARGB4444,
|
||||
SDL_PIXELFORMAT_ARGB1555,
|
||||
SDL_PIXELFORMAT_RGB565,
|
||||
SDL_PIXELFORMAT_RGB888,
|
||||
SDL_PIXELFORMAT_ARGB8888,
|
||||
SDL_PIXELFORMAT_ARGB2101010,
|
||||
SDL_PIXELFORMAT_YUY2,
|
||||
SDL_PIXELFORMAT_UYVY},
|
||||
0,
|
||||
{0},
|
||||
0,
|
||||
0}
|
||||
};
|
||||
|
@ -242,8 +230,40 @@ void
|
|||
D3D_AddRenderDriver(_THIS)
|
||||
{
|
||||
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
|
||||
SDL_RendererInfo *info = &D3D_RenderDriver.info;
|
||||
SDL_DisplayMode *mode = &SDL_CurrentDisplay.desktop_mode;
|
||||
|
||||
if (data->d3d) {
|
||||
int i;
|
||||
int formats[] = {
|
||||
SDL_PIXELFORMAT_INDEX8,
|
||||
SDL_PIXELFORMAT_RGB332,
|
||||
SDL_PIXELFORMAT_RGB444,
|
||||
SDL_PIXELFORMAT_RGB555,
|
||||
SDL_PIXELFORMAT_ARGB4444,
|
||||
SDL_PIXELFORMAT_ARGB1555,
|
||||
SDL_PIXELFORMAT_RGB565,
|
||||
SDL_PIXELFORMAT_RGB888,
|
||||
SDL_PIXELFORMAT_ARGB8888,
|
||||
SDL_PIXELFORMAT_ARGB2101010,
|
||||
SDL_PIXELFORMAT_YUY2,
|
||||
SDL_PIXELFORMAT_UYVY,
|
||||
};
|
||||
HRESULT result;
|
||||
|
||||
for (i = 0; i < SDL_arraysize(formats); ++i) {
|
||||
result = IDirect3D9_CheckDeviceFormat(data->d3d,
|
||||
D3DADAPTER_DEFAULT, /* FIXME */
|
||||
D3DDEVTYPE_HAL,
|
||||
PixelFormatToD3DFMT(mode->format),
|
||||
0,
|
||||
D3DRTYPE_TEXTURE,
|
||||
PixelFormatToD3DFMT(formats[i]));
|
||||
if (!FAILED(result)) {
|
||||
info->texture_formats[info->num_texture_formats++] = formats[i];
|
||||
}
|
||||
}
|
||||
|
||||
SDL_AddRenderDriver(0, &D3D_RenderDriver);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue