wined3d: Don't advertise float formats as supported by WGL.

This commit is contained in:
Stefan Dösinger 2010-03-24 22:34:38 +01:00 committed by Alexandre Julliard
parent 7b43cb1877
commit f74de3ab65
3 changed files with 41 additions and 25 deletions

View File

@ -2865,6 +2865,9 @@ static BOOL IWineD3DImpl_IsPixelFormatCompatibleWithRenderFmt(const struct wined
if(!cfg)
return FALSE;
/* Float formats need FBOs. If FBOs are used this function isn't called */
if (format_desc->Flags & WINED3DFMT_FLAG_FLOAT) return FALSE;
if(cfg->iPixelType == WGL_TYPE_RGBA_ARB) { /* Integer RGBA formats */
if (!getColorBits(format_desc, &redSize, &greenSize, &blueSize, &alphaSize, &colorBits))
{
@ -2906,6 +2909,9 @@ static BOOL IWineD3DImpl_IsPixelFormatCompatibleWithDepthFmt(const struct wined3
return FALSE;
}
/* Float formats need FBOs. If FBOs are used this function isn't called */
if (format_desc->Flags & WINED3DFMT_FLAG_FLOAT) return FALSE;
if ((format_desc->format == WINED3DFMT_D16_LOCKABLE) || (format_desc->format == WINED3DFMT_D32_FLOAT))
lockable = TRUE;

View File

@ -141,31 +141,40 @@ struct wined3d_format_base_flags
static const struct wined3d_format_base_flags format_base_flags[] =
{
{WINED3DFMT_UYVY, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_YUY2, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_YV12, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT1, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT2, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT3, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT4, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT5, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_MULTI2_ARGB8, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_G8R8_G8B8, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_R8G8_B8G8, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_P8_UINT, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B8G8R8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B8G8R8A8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B8G8R8X8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B5G6R5_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B5G5R5X1_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B5G5R5A1_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B4G4R4A4_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B4G4R4X4_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_R8G8B8A8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_R8G8B8X8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_ATI2N, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_NVHU, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_NVHS, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_UYVY, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_YUY2, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_YV12, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT1, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT2, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT3, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT4, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT5, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_MULTI2_ARGB8, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_G8R8_G8B8, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_R8G8_B8G8, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_P8_UINT, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B8G8R8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B8G8R8A8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B8G8R8X8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B5G6R5_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B5G5R5X1_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B5G5R5A1_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B4G4R4A4_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B4G4R4X4_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_R8G8B8A8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_R8G8B8X8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_ATI2N, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_NVHU, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_NVHS, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_R32_FLOAT, WINED3DFMT_FLAG_FLOAT},
{WINED3DFMT_R32G32_FLOAT, WINED3DFMT_FLAG_FLOAT},
{WINED3DFMT_R32G32B32_FLOAT, WINED3DFMT_FLAG_FLOAT},
{WINED3DFMT_R32G32B32A32_FLOAT, WINED3DFMT_FLAG_FLOAT},
{WINED3DFMT_R16_FLOAT, WINED3DFMT_FLAG_FLOAT},
{WINED3DFMT_R16G16_FLOAT, WINED3DFMT_FLAG_FLOAT},
{WINED3DFMT_R16G16B16A16_FLOAT, WINED3DFMT_FLAG_FLOAT},
{WINED3DFMT_D32_FLOAT, WINED3DFMT_FLAG_FLOAT},
{WINED3DFMT_S8_UINT_D24_FLOAT, WINED3DFMT_FLAG_FLOAT},
};
struct wined3d_format_compression_info

View File

@ -2963,6 +2963,7 @@ extern WINED3DFORMAT pixelformat_for_depth(DWORD depth) DECLSPEC_HIDDEN;
#define WINED3DFMT_FLAG_FBO_ATTACHABLE 0x40
#define WINED3DFMT_FLAG_COMPRESSED 0x80
#define WINED3DFMT_FLAG_GETDC 0x100
#define WINED3DFMT_FLAG_FLOAT 0x200
struct wined3d_format_desc
{