wined3d: Add a function which checks the filtering capabilities for a format.
This commit is contained in:
parent
2f1e01bbe3
commit
aa46edd60c
|
@ -1873,6 +1873,21 @@ WINED3DFORMAT DepthStencilFormat)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL CheckFilterCapability(WINED3DFORMAT CheckFormat)
|
||||||
|
{
|
||||||
|
switch (CheckFormat) {
|
||||||
|
/* Filtering not supported */
|
||||||
|
case WINED3DFMT_R32F:
|
||||||
|
case WINED3DFMT_A32B32G32R32F:
|
||||||
|
TRACE_(d3d_caps)("[FAILED]\n");
|
||||||
|
return FALSE;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Check the render target capabilities of a format */
|
/* Check the render target capabilities of a format */
|
||||||
static BOOL CheckRenderTargetCapability(WINED3DFORMAT AdapterFormat, WINED3DFORMAT CheckFormat)
|
static BOOL CheckRenderTargetCapability(WINED3DFORMAT AdapterFormat, WINED3DFORMAT CheckFormat)
|
||||||
{
|
{
|
||||||
|
@ -2208,18 +2223,6 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
|
||||||
return WINED3DERR_INVALIDCALL;
|
return WINED3DERR_INVALIDCALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Usage & WINED3DUSAGE_QUERY_FILTER) {
|
|
||||||
switch (CheckFormat) {
|
|
||||||
/* Filtering not supported */
|
|
||||||
case WINED3DFMT_R32F:
|
|
||||||
case WINED3DFMT_A32B32G32R32F:
|
|
||||||
TRACE_(d3d_caps)("[FAILED]\n");
|
|
||||||
return WINED3DERR_NOTAVAILABLE;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Usage & WINED3DUSAGE_AUTOGENMIPMAP) {
|
if (Usage & WINED3DUSAGE_AUTOGENMIPMAP) {
|
||||||
if(!GL_SUPPORT(SGIS_GENERATE_MIPMAP)) {
|
if(!GL_SUPPORT(SGIS_GENERATE_MIPMAP)) {
|
||||||
TRACE_(d3d_caps)("[FAILED] - No mipmap generation support\n");
|
TRACE_(d3d_caps)("[FAILED] - No mipmap generation support\n");
|
||||||
|
@ -2252,6 +2255,16 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check QUERY_FILTER support */
|
||||||
|
if(Usage & WINED3DUSAGE_QUERY_FILTER) {
|
||||||
|
if(CheckFilterCapability(CheckFormat)) {
|
||||||
|
UsageCaps |= WINED3DUSAGE_QUERY_FILTER;
|
||||||
|
} else {
|
||||||
|
TRACE_(d3d_caps)("[FAILED] - No query filter support\n");
|
||||||
|
return WINED3DERR_NOTAVAILABLE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Check QUERY_SRGBREAD support */
|
/* Check QUERY_SRGBREAD support */
|
||||||
if(Usage & WINED3DUSAGE_QUERY_SRGBREAD) {
|
if(Usage & WINED3DUSAGE_QUERY_SRGBREAD) {
|
||||||
if(CheckSrgbReadCapability(Adapter, CheckFormat)) {
|
if(CheckSrgbReadCapability(Adapter, CheckFormat)) {
|
||||||
|
@ -2324,6 +2337,16 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check QUERY_FILTER support */
|
||||||
|
if(Usage & WINED3DUSAGE_QUERY_FILTER) {
|
||||||
|
if(CheckFilterCapability(CheckFormat)) {
|
||||||
|
UsageCaps |= WINED3DUSAGE_QUERY_FILTER;
|
||||||
|
} else {
|
||||||
|
TRACE_(d3d_caps)("[FAILED] - No query filter support\n");
|
||||||
|
return WINED3DERR_NOTAVAILABLE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Check QUERY_LEGACYBUMPMAP support */
|
/* Check QUERY_LEGACYBUMPMAP support */
|
||||||
if(Usage & WINED3DUSAGE_QUERY_LEGACYBUMPMAP) {
|
if(Usage & WINED3DUSAGE_QUERY_LEGACYBUMPMAP) {
|
||||||
if(CheckBumpMapCapability(Adapter, CheckFormat)) {
|
if(CheckBumpMapCapability(Adapter, CheckFormat)) {
|
||||||
|
@ -2365,6 +2388,16 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
|
||||||
return WINED3DERR_NOTAVAILABLE;
|
return WINED3DERR_NOTAVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check QUERY_FILTER support */
|
||||||
|
if(Usage & WINED3DUSAGE_QUERY_FILTER) {
|
||||||
|
if(CheckFilterCapability(CheckFormat)) {
|
||||||
|
UsageCaps |= WINED3DUSAGE_QUERY_FILTER;
|
||||||
|
} else {
|
||||||
|
TRACE_(d3d_caps)("[FAILED] - No query filter support\n");
|
||||||
|
return WINED3DERR_NOTAVAILABLE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Check QUERY_SRGBREAD support */
|
/* Check QUERY_SRGBREAD support */
|
||||||
if(Usage & WINED3DUSAGE_QUERY_SRGBREAD) {
|
if(Usage & WINED3DUSAGE_QUERY_SRGBREAD) {
|
||||||
if(CheckSrgbReadCapability(Adapter, CheckFormat)) {
|
if(CheckSrgbReadCapability(Adapter, CheckFormat)) {
|
||||||
|
|
Loading…
Reference in New Issue