WinRT: allowed for querying of max texture size (via Direct3D 11.1)

This commit is contained in:
David Ludwig 2013-02-24 10:30:12 -05:00
parent 0a9710e1e5
commit 8d55f67a2f

View file

@ -89,7 +89,6 @@ HRESULT D3D11_CreateWindowSizeDependentResources(SDL_Renderer * renderer);
HRESULT D3D11_UpdateForWindowSizeChange(SDL_Renderer * renderer); HRESULT D3D11_UpdateForWindowSizeChange(SDL_Renderer * renderer);
HRESULT D3D11_HandleDeviceLost(SDL_Renderer * renderer); HRESULT D3D11_HandleDeviceLost(SDL_Renderer * renderer);
// WinRT, TODO: fill in the Direct3D 11.1 renderer's max texture width and height
extern "C" SDL_RenderDriver D3D11_RenderDriver = { extern "C" SDL_RenderDriver D3D11_RenderDriver = {
D3D11_CreateRenderer, D3D11_CreateRenderer,
{ {
@ -100,8 +99,8 @@ extern "C" SDL_RenderDriver D3D11_RenderDriver = {
SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_RGB888,
SDL_PIXELFORMAT_ARGB8888 SDL_PIXELFORMAT_ARGB8888
}, },
0, // max_texture_width 0, // max_texture_width: will be filled in later
0 // max_texture_height 0 // max_texture_height: will be filled in later
} }
}; };
@ -341,6 +340,32 @@ D3D11_CreateDeviceResources(SDL_Renderer * renderer)
return result; return result;
} }
//
// Make note of the maximum texture size
// Max texture sizes are documented on MSDN, at:
// http://msdn.microsoft.com/en-us/library/windows/apps/ff476876.aspx
//
switch (data->d3dDevice->GetFeatureLevel()) {
case D3D_FEATURE_LEVEL_11_1:
case D3D_FEATURE_LEVEL_11_0:
renderer->info.max_texture_width = renderer->info.max_texture_height = 16384;
break;
case D3D_FEATURE_LEVEL_10_1:
case D3D_FEATURE_LEVEL_10_0:
renderer->info.max_texture_width = renderer->info.max_texture_height = 8192;
break;
case D3D_FEATURE_LEVEL_9_3:
renderer->info.max_texture_width = renderer->info.max_texture_height = 4096;
break;
case D3D_FEATURE_LEVEL_9_2:
case D3D_FEATURE_LEVEL_9_1:
renderer->info.max_texture_width = renderer->info.max_texture_height = 2048;
break;
}
// //
// Load in SDL's one and only vertex shader: // Load in SDL's one and only vertex shader:
// //