Commit f74de3ab authored by Stefan Dösinger's avatar Stefan Dösinger Committed by Alexandre Julliard

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

parent 7b43cb18
...@@ -2865,6 +2865,9 @@ static BOOL IWineD3DImpl_IsPixelFormatCompatibleWithRenderFmt(const struct wined ...@@ -2865,6 +2865,9 @@ static BOOL IWineD3DImpl_IsPixelFormatCompatibleWithRenderFmt(const struct wined
if(!cfg) if(!cfg)
return FALSE; 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(cfg->iPixelType == WGL_TYPE_RGBA_ARB) { /* Integer RGBA formats */
if (!getColorBits(format_desc, &redSize, &greenSize, &blueSize, &alphaSize, &colorBits)) if (!getColorBits(format_desc, &redSize, &greenSize, &blueSize, &alphaSize, &colorBits))
{ {
...@@ -2906,6 +2909,9 @@ static BOOL IWineD3DImpl_IsPixelFormatCompatibleWithDepthFmt(const struct wined3 ...@@ -2906,6 +2909,9 @@ static BOOL IWineD3DImpl_IsPixelFormatCompatibleWithDepthFmt(const struct wined3
return FALSE; 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)) if ((format_desc->format == WINED3DFMT_D16_LOCKABLE) || (format_desc->format == WINED3DFMT_D32_FLOAT))
lockable = TRUE; lockable = TRUE;
......
...@@ -141,31 +141,40 @@ struct wined3d_format_base_flags ...@@ -141,31 +141,40 @@ struct wined3d_format_base_flags
static const struct wined3d_format_base_flags format_base_flags[] = static const struct wined3d_format_base_flags format_base_flags[] =
{ {
{WINED3DFMT_UYVY, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_UYVY, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_YUY2, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_YUY2, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_YV12, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_YV12, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT1, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_DXT1, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT2, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_DXT2, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT3, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_DXT3, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT4, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_DXT4, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_DXT5, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_DXT5, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_MULTI2_ARGB8, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_MULTI2_ARGB8, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_G8R8_G8B8, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_G8R8_G8B8, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_R8G8_B8G8, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_R8G8_B8G8, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_P8_UINT, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_P8_UINT, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B8G8R8_UNORM, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_B8G8R8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B8G8R8A8_UNORM, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_B8G8R8A8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B8G8R8X8_UNORM, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_B8G8R8X8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B5G6R5_UNORM, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_B5G6R5_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B5G5R5X1_UNORM, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_B5G5R5X1_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B5G5R5A1_UNORM, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_B5G5R5A1_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B4G4R4A4_UNORM, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_B4G4R4A4_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_B4G4R4X4_UNORM, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_B4G4R4X4_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_R8G8B8A8_UNORM, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_R8G8B8A8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_R8G8B8X8_UNORM, WINED3DFMT_FLAG_GETDC}, {WINED3DFMT_R8G8B8X8_UNORM, WINED3DFMT_FLAG_GETDC},
{WINED3DFMT_ATI2N, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_ATI2N, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_NVHU, WINED3DFMT_FLAG_FOURCC}, {WINED3DFMT_NVHU, WINED3DFMT_FLAG_FOURCC},
{WINED3DFMT_NVHS, 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 struct wined3d_format_compression_info
......
...@@ -2963,6 +2963,7 @@ extern WINED3DFORMAT pixelformat_for_depth(DWORD depth) DECLSPEC_HIDDEN; ...@@ -2963,6 +2963,7 @@ extern WINED3DFORMAT pixelformat_for_depth(DWORD depth) DECLSPEC_HIDDEN;
#define WINED3DFMT_FLAG_FBO_ATTACHABLE 0x40 #define WINED3DFMT_FLAG_FBO_ATTACHABLE 0x40
#define WINED3DFMT_FLAG_COMPRESSED 0x80 #define WINED3DFMT_FLAG_COMPRESSED 0x80
#define WINED3DFMT_FLAG_GETDC 0x100 #define WINED3DFMT_FLAG_GETDC 0x100
#define WINED3DFMT_FLAG_FLOAT 0x200
struct wined3d_format_desc struct wined3d_format_desc
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment