wined3d: Add GL_EXT_texture_sRGB constants and corresponding CheckDeviceFormat query.
This commit is contained in:
parent
56c6dbee9b
commit
3650e31e85
|
@ -718,6 +718,9 @@ BOOL IWineD3DImpl_FillGLCaps(IWineD3D *iface, Display* display) {
|
|||
} else if (strcmp(ThisExtn, "GL_EXT_texture_env_dot3") == 0) {
|
||||
TRACE_(d3d_caps)(" FOUND: EXT Dot3 support\n");
|
||||
gl_info->supported[EXT_TEXTURE_ENV_DOT3] = TRUE;
|
||||
} else if (strcmp(ThisExtn, "GL_EXT_texture_sRGB") == 0) {
|
||||
TRACE_(d3d_caps)(" FOUND: EXT sRGB support\n");
|
||||
gl_info->supported[EXT_TEXTURE_SRGB] = TRUE;
|
||||
} else if (strcmp(ThisExtn, "GL_EXT_texture_filter_anisotropic") == 0) {
|
||||
gl_info->supported[EXT_TEXTURE_FILTER_ANISOTROPIC] = TRUE;
|
||||
glGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &gl_max);
|
||||
|
@ -1726,6 +1729,27 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
|
|||
}
|
||||
}
|
||||
|
||||
/* Check for supported sRGB formats (Texture loading and framebuffer) */
|
||||
if (GL_SUPPORT(EXT_TEXTURE_SRGB) && (Usage & WINED3DUSAGE_QUERY_SRGBREAD)) {
|
||||
switch (CheckFormat) {
|
||||
case WINED3DFMT_A8R8G8B8:
|
||||
case WINED3DFMT_X8R8G8B8:
|
||||
case WINED3DFMT_L8:
|
||||
case WINED3DFMT_A8L8:
|
||||
case WINED3DFMT_DXT1:
|
||||
case WINED3DFMT_DXT2:
|
||||
case WINED3DFMT_DXT3:
|
||||
case WINED3DFMT_DXT4:
|
||||
case WINED3DFMT_DXT5:
|
||||
TRACE_(d3d_caps)("[OK]\n");
|
||||
return WINED3D_OK;
|
||||
|
||||
default:
|
||||
TRACE_(d3d_caps)("[FAILED] Gamma texture format %s not supported.\n", debug_d3dformat(CheckFormat));
|
||||
return WINED3DERR_NOTAVAILABLE;
|
||||
}
|
||||
}
|
||||
|
||||
if (GL_SUPPORT(ARB_TEXTURE_FLOAT)) {
|
||||
|
||||
BOOL half_pixel_support = GL_SUPPORT(ARB_HALF_FLOAT_PIXEL);
|
||||
|
|
|
@ -520,6 +520,26 @@ typedef void (APIENTRY * PGLFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint leve
|
|||
#define GL_DOT3_RGB_EXT 0x8740
|
||||
#define GL_DOT3_RGBA_EXT 0x8741
|
||||
#endif
|
||||
/* GL_EXT_texture_sRGB */
|
||||
#ifndef GL_EXT_texture_sRGB
|
||||
#define GL_EXT_texture_sRGB 1
|
||||
#define GL_SRGB_EXT 0x8C40
|
||||
#define GL_SRGB8_EXT 0x8C41
|
||||
#define GL_SRGB_ALPHA_EXT 0x8C42
|
||||
#define GL_SRGB8_ALPHA8_EXT 0x8C43
|
||||
#define GL_SLUMINANCE_ALPHA_EXT 0x8C44
|
||||
#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
|
||||
#define GL_SLUMINANCE_EXT 0x8C46
|
||||
#define GL_SLUMINANCE8_EXT 0x8C47
|
||||
#define GL_COMPRESSED_SRGB_EXT 0x8C48
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
|
||||
#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
|
||||
#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
|
||||
#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
|
||||
#endif
|
||||
/* GL_ARB_texture_float */
|
||||
#ifndef GL_ARB_texture_float
|
||||
#define GL_ARB_texture_float 1
|
||||
|
@ -1541,6 +1561,7 @@ typedef enum _GL_SupportedExt {
|
|||
EXT_TEXTURE_ENV_ADD,
|
||||
EXT_TEXTURE_ENV_COMBINE,
|
||||
EXT_TEXTURE_ENV_DOT3,
|
||||
EXT_TEXTURE_SRGB,
|
||||
EXT_VERTEX_WEIGHTING,
|
||||
/* NVIDIA */
|
||||
NV_FOG_DISTANCE,
|
||||
|
|
Loading…
Reference in New Issue