diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 50fb50d8128..9ff88a8cb7a 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -147,6 +147,7 @@ static const struct wined3d_extension_map gl_extension_map[] = {"GL_ARB_sync", ARB_SYNC }, {"GL_ARB_texture_border_clamp", ARB_TEXTURE_BORDER_CLAMP }, {"GL_ARB_texture_compression", ARB_TEXTURE_COMPRESSION }, + {"GL_ARB_texture_compression_bptc", ARB_TEXTURE_COMPRESSION_BPTC }, {"GL_ARB_texture_compression_rgtc", ARB_TEXTURE_COMPRESSION_RGTC }, {"GL_ARB_texture_cube_map", ARB_TEXTURE_CUBE_MAP }, {"GL_ARB_texture_env_combine", ARB_TEXTURE_ENV_COMBINE }, @@ -3563,6 +3564,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, DWORD {ARB_INTERNALFORMAT_QUERY, MAKEDWORD_VERSION(4, 2)}, {ARB_MAP_BUFFER_ALIGNMENT, MAKEDWORD_VERSION(4, 2)}, + {ARB_TEXTURE_COMPRESSION_BPTC, MAKEDWORD_VERSION(4, 2)}, {ARB_TEXTURE_STORAGE, MAKEDWORD_VERSION(4, 2)}, {ARB_DEBUG_OUTPUT, MAKEDWORD_VERSION(4, 3)}, diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index f02220c95c8..009fcd0fcfe 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -169,6 +169,7 @@ static const struct wined3d_format_channels formats[] = {WINED3DFMT_BC3_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, {WINED3DFMT_BC4_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, {WINED3DFMT_BC5_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, + {WINED3DFMT_BC7_TYPELESS, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, {WINED3DFMT_B8G8R8A8_TYPELESS, 8, 8, 8, 8, 16, 8, 0, 24, 4, 0, 0}, {WINED3DFMT_B8G8R8X8_TYPELESS, 8, 8, 8, 0, 16, 8, 0, 0, 4, 0, 0}, }; @@ -256,6 +257,8 @@ static const struct wined3d_typed_format_info typed_formats[] = {WINED3DFMT_BC3_UNORM, WINED3DFMT_BC3_TYPELESS, ""}, {WINED3DFMT_BC4_UNORM, WINED3DFMT_BC4_TYPELESS, ""}, {WINED3DFMT_BC5_UNORM, WINED3DFMT_BC5_TYPELESS, ""}, + {WINED3DFMT_BC7_UNORM_SRGB, WINED3DFMT_BC7_TYPELESS, ""}, + {WINED3DFMT_BC7_UNORM, WINED3DFMT_BC7_TYPELESS, ""}, {WINED3DFMT_B8G8R8A8_UNORM_SRGB, WINED3DFMT_B8G8R8A8_TYPELESS, "uuuu"}, {WINED3DFMT_B8G8R8A8_UNORM, WINED3DFMT_B8G8R8A8_TYPELESS, "uuuu"}, {WINED3DFMT_B8G8R8X8_UNORM_SRGB, WINED3DFMT_B8G8R8X8_TYPELESS, "uuuX"}, @@ -318,6 +321,7 @@ static const struct wined3d_format_block_info format_block_info[] = {WINED3DFMT_BC3_UNORM, 4, 4, 16, TRUE}, {WINED3DFMT_BC4_UNORM, 4, 4, 8, TRUE}, {WINED3DFMT_BC5_UNORM, 4, 4, 16, TRUE}, + {WINED3DFMT_BC7_UNORM, 4, 4, 16, TRUE}, {WINED3DFMT_ATI1N, 4, 4, 8, FALSE}, {WINED3DFMT_ATI2N, 4, 4, 16, FALSE}, {WINED3DFMT_YUY2, 2, 1, 4, FALSE}, @@ -1115,6 +1119,11 @@ static const struct wined3d_format_texture_info format_texture_info[] = WINED3DFMT_FLAG_TEXTURE | WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_COMPRESSED, ARB_TEXTURE_COMPRESSION_RGTC, NULL}, + {WINED3DFMT_BC7_UNORM, GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB, 0, + GL_RGBA, GL_UNSIGNED_BYTE, 0, + WINED3DFMT_FLAG_TEXTURE | WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING + | WINED3DFMT_FLAG_COMPRESSED, + ARB_TEXTURE_COMPRESSION_BPTC, NULL}, /* IEEE formats */ {WINED3DFMT_R32_FLOAT, GL_RGB32F_ARB, GL_RGB32F_ARB, 0, GL_RED, GL_FLOAT, 0, diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index 34bf88d5b6f..67ab6f75235 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -82,6 +82,7 @@ enum wined3d_gl_extension ARB_SYNC, ARB_TEXTURE_BORDER_CLAMP, ARB_TEXTURE_COMPRESSION, + ARB_TEXTURE_COMPRESSION_BPTC, ARB_TEXTURE_COMPRESSION_RGTC, ARB_TEXTURE_CUBE_MAP, ARB_TEXTURE_ENV_COMBINE,