[PATCH] Moved wined3dformat <-> dxgi_format conversion functions into wined3d
Fabian Maurer
dark.shadow4 at web.de
Fri Sep 9 17:18:18 CDT 2016
This change is a measure of code-deduplication and to make these functions reusable in other parts.
Kept in wined3d.dll instead of dxgi.dll to make sure dll-overrides of dxgi doesn't break things in other parts.
New source-file since further additions will follow.
Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
dlls/d3d11/d3d11_private.h | 2 -
dlls/d3d11/device.c | 12 +--
dlls/d3d11/inputlayout.c | 2 +-
dlls/d3d11/texture.c | 6 +-
dlls/d3d11/utils.c | 220 ---------------------------------------
dlls/d3d11/view.c | 8 +-
dlls/dxgi/device.c | 2 +-
dlls/dxgi/dxgi_private.h | 2 -
dlls/dxgi/factory.c | 2 +-
dlls/dxgi/output.c | 4 +-
dlls/dxgi/surface.c | 2 +-
dlls/dxgi/swapchain.c | 4 +-
dlls/dxgi/utils.c | 222 +--------------------------------------
dlls/wined3d/Makefile.in | 1 +
dlls/wined3d/d3dtexture.c | 254 +++++++++++++++++++++++++++++++++++++++++++++
dlls/wined3d/wined3d.spec | 3 +
include/wine/wined3d.h | 4 +
17 files changed, 284 insertions(+), 466 deletions(-)
create mode 100644 dlls/wined3d/d3dtexture.c
diff --git a/dlls/d3d11/d3d11_private.h b/dlls/d3d11/d3d11_private.h
index 78cd265..9a84214 100644
--- a/dlls/d3d11/d3d11_private.h
+++ b/dlls/d3d11/d3d11_private.h
@@ -56,8 +56,6 @@ const char *debug_d3d10_primitive_topology(D3D10_PRIMITIVE_TOPOLOGY topology) DE
const char *debug_dxgi_format(DXGI_FORMAT format) DECLSPEC_HIDDEN;
const char *debug_float4(const float *values) DECLSPEC_HIDDEN;
-DXGI_FORMAT dxgi_format_from_wined3dformat(enum wined3d_format_id format) DECLSPEC_HIDDEN;
-enum wined3d_format_id wined3dformat_from_dxgi_format(DXGI_FORMAT format) DECLSPEC_HIDDEN;
unsigned int wined3d_getdata_flags_from_d3d11_async_getdata_flags(unsigned int d3d11_flags) DECLSPEC_HIDDEN;
DWORD wined3d_usage_from_d3d11(UINT bind_flags, enum D3D11_USAGE usage) DECLSPEC_HIDDEN;
struct wined3d_resource *wined3d_resource_from_d3d11_resource(ID3D11Resource *resource) DECLSPEC_HIDDEN;
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 72e6a71..b0bad87 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -363,7 +363,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_IASetIndexBuffer(ID3D11Dev
wined3d_mutex_lock();
wined3d_device_set_index_buffer(device->wined3d_device,
buffer_impl ? buffer_impl->wined3d_buffer : NULL,
- wined3dformat_from_dxgi_format(format), offset);
+ wined3d_wined3dformat_from_dxgi_format(format), offset);
wined3d_mutex_unlock();
}
@@ -1411,7 +1411,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_IAGetIndexBuffer(ID3D11Dev
wined3d_mutex_lock();
wined3d_buffer = wined3d_device_get_index_buffer(device->wined3d_device, &wined3d_format, offset);
- *format = dxgi_format_from_wined3dformat(wined3d_format);
+ *format = wined3d_dxgi_format_from_wined3dformat(wined3d_format);
if (!wined3d_buffer)
{
wined3d_mutex_unlock();
@@ -2736,7 +2736,7 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CheckMultisampleQualityLevels(ID3D
wined3d = wined3d_device_get_wined3d(device->wined3d_device);
wined3d_device_get_creation_parameters(device->wined3d_device, ¶ms);
hr = wined3d_check_device_multisample_type(wined3d, params.adapter_idx, params.device_type,
- wined3dformat_from_dxgi_format(format), TRUE, sample_count, quality_level_count);
+ wined3d_wined3dformat_from_dxgi_format(format), TRUE, sample_count, quality_level_count);
wined3d_mutex_unlock();
if (hr == WINED3DERR_INVALIDCALL)
@@ -3227,7 +3227,7 @@ static void STDMETHODCALLTYPE d3d10_device_IASetIndexBuffer(ID3D10Device1 *iface
wined3d_mutex_lock();
wined3d_device_set_index_buffer(device->wined3d_device,
buffer_impl ? buffer_impl->wined3d_buffer : NULL,
- wined3dformat_from_dxgi_format(format), offset);
+ wined3d_wined3dformat_from_dxgi_format(format), offset);
wined3d_mutex_unlock();
}
@@ -3890,7 +3890,7 @@ static void STDMETHODCALLTYPE d3d10_device_IAGetIndexBuffer(ID3D10Device1 *iface
wined3d_mutex_lock();
wined3d_buffer = wined3d_device_get_index_buffer(device->wined3d_device, &wined3d_format, offset);
- *format = dxgi_format_from_wined3dformat(wined3d_format);
+ *format = wined3d_dxgi_format_from_wined3dformat(wined3d_format);
if (!wined3d_buffer)
{
wined3d_mutex_unlock();
@@ -5209,7 +5209,7 @@ static HRESULT CDECL device_parent_create_swapchain_texture(struct wined3d_devic
desc.Height = wined3d_desc->height;
desc.MipLevels = 1;
desc.ArraySize = 1;
- desc.Format = dxgi_format_from_wined3dformat(wined3d_desc->format);
+ desc.Format = wined3d_dxgi_format_from_wined3dformat(wined3d_desc->format);
desc.SampleDesc.Count = wined3d_desc->multisample_type ? wined3d_desc->multisample_type : 1;
desc.SampleDesc.Quality = wined3d_desc->multisample_quality;
desc.Usage = D3D10_USAGE_DEFAULT;
diff --git a/dlls/d3d11/inputlayout.c b/dlls/d3d11/inputlayout.c
index 7604f05..0a49217 100644
--- a/dlls/d3d11/inputlayout.c
+++ b/dlls/d3d11/inputlayout.c
@@ -66,7 +66,7 @@ static HRESULT d3d11_input_layout_to_wined3d_declaration(const D3D11_INPUT_ELEME
const D3D11_INPUT_ELEMENT_DESC *f = &element_descs[i];
unsigned int j;
- e->format = wined3dformat_from_dxgi_format(f->Format);
+ e->format = wined3d_wined3dformat_from_dxgi_format(f->Format);
e->input_slot = f->InputSlot;
e->offset = f->AlignedByteOffset;
e->output_slot = WINED3D_OUTPUT_SLOT_UNUSED;
diff --git a/dlls/d3d11/texture.c b/dlls/d3d11/texture.c
index 54c5613..990702f 100644
--- a/dlls/d3d11/texture.c
+++ b/dlls/d3d11/texture.c
@@ -216,7 +216,7 @@ static void STDMETHODCALLTYPE d3d11_texture2d_GetDesc(ID3D11Texture2D *iface, D3
* there (yet). */
desc->Width = wined3d_desc.width;
desc->Height = wined3d_desc.height;
- desc->Format = dxgi_format_from_wined3dformat(wined3d_desc.format);
+ desc->Format = wined3d_dxgi_format_from_wined3dformat(wined3d_desc.format);
desc->SampleDesc.Count = wined3d_desc.multisample_type == WINED3D_MULTISAMPLE_NONE
? 1 : wined3d_desc.multisample_type;
desc->SampleDesc.Quality = wined3d_desc.multisample_quality;
@@ -475,7 +475,7 @@ static HRESULT d3d_texture2d_init(struct d3d_texture2d *texture, struct d3d_devi
FIXME("Multisampled textures not implemented.\n");
wined3d_desc.resource_type = WINED3D_RTYPE_TEXTURE_2D;
- wined3d_desc.format = wined3dformat_from_dxgi_format(desc->Format);
+ wined3d_desc.format = wined3d_wined3dformat_from_dxgi_format(desc->Format);
wined3d_desc.multisample_type = desc->SampleDesc.Count > 1 ? desc->SampleDesc.Count : WINED3D_MULTISAMPLE_NONE;
wined3d_desc.multisample_quality = desc->SampleDesc.Quality;
wined3d_desc.usage = wined3d_usage_from_d3d11(desc->BindFlags, desc->Usage);
@@ -942,7 +942,7 @@ static HRESULT d3d_texture3d_init(struct d3d_texture3d *texture, struct d3d_devi
texture->desc = *desc;
wined3d_desc.resource_type = WINED3D_RTYPE_TEXTURE_3D;
- wined3d_desc.format = wined3dformat_from_dxgi_format(desc->Format);
+ wined3d_desc.format = wined3d_wined3dformat_from_dxgi_format(desc->Format);
wined3d_desc.multisample_type = WINED3D_MULTISAMPLE_NONE;
wined3d_desc.multisample_quality = 0;
wined3d_desc.usage = wined3d_usage_from_d3d11(desc->BindFlags, desc->Usage);
diff --git a/dlls/d3d11/utils.c b/dlls/d3d11/utils.c
index 89dbbda..d1fe8c2 100644
--- a/dlls/d3d11/utils.c
+++ b/dlls/d3d11/utils.c
@@ -166,226 +166,6 @@ const char *debug_float4(const float *values)
values[0], values[1], values[2], values[3]);
}
-DXGI_FORMAT dxgi_format_from_wined3dformat(enum wined3d_format_id format)
-{
- switch(format)
- {
- case WINED3DFMT_UNKNOWN: return DXGI_FORMAT_UNKNOWN;
- case WINED3DFMT_R32G32B32A32_TYPELESS: return DXGI_FORMAT_R32G32B32A32_TYPELESS;
- case WINED3DFMT_R32G32B32A32_FLOAT: return DXGI_FORMAT_R32G32B32A32_FLOAT;
- case WINED3DFMT_R32G32B32A32_UINT: return DXGI_FORMAT_R32G32B32A32_UINT;
- case WINED3DFMT_R32G32B32A32_SINT: return DXGI_FORMAT_R32G32B32A32_SINT;
- case WINED3DFMT_R32G32B32_TYPELESS: return DXGI_FORMAT_R32G32B32_TYPELESS;
- case WINED3DFMT_R32G32B32_FLOAT: return DXGI_FORMAT_R32G32B32_FLOAT;
- case WINED3DFMT_R32G32B32_UINT: return DXGI_FORMAT_R32G32B32_UINT;
- case WINED3DFMT_R32G32B32_SINT: return DXGI_FORMAT_R32G32B32_SINT;
- case WINED3DFMT_R16G16B16A16_TYPELESS: return DXGI_FORMAT_R16G16B16A16_TYPELESS;
- case WINED3DFMT_R16G16B16A16_FLOAT: return DXGI_FORMAT_R16G16B16A16_FLOAT;
- case WINED3DFMT_R16G16B16A16_UNORM: return DXGI_FORMAT_R16G16B16A16_UNORM;
- case WINED3DFMT_R16G16B16A16_UINT: return DXGI_FORMAT_R16G16B16A16_UINT;
- case WINED3DFMT_R16G16B16A16_SNORM: return DXGI_FORMAT_R16G16B16A16_SNORM;
- case WINED3DFMT_R16G16B16A16_SINT: return DXGI_FORMAT_R16G16B16A16_SINT;
- case WINED3DFMT_R32G32_TYPELESS: return DXGI_FORMAT_R32G32_TYPELESS;
- case WINED3DFMT_R32G32_FLOAT: return DXGI_FORMAT_R32G32_FLOAT;
- case WINED3DFMT_R32G32_UINT: return DXGI_FORMAT_R32G32_UINT;
- case WINED3DFMT_R32G32_SINT: return DXGI_FORMAT_R32G32_SINT;
- case WINED3DFMT_R32G8X24_TYPELESS: return DXGI_FORMAT_R32G8X24_TYPELESS;
- case WINED3DFMT_D32_FLOAT_S8X24_UINT: return DXGI_FORMAT_D32_FLOAT_S8X24_UINT;
- case WINED3DFMT_R32_FLOAT_X8X24_TYPELESS: return DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS;
- case WINED3DFMT_X32_TYPELESS_G8X24_UINT: return DXGI_FORMAT_X32_TYPELESS_G8X24_UINT;
- case WINED3DFMT_R10G10B10A2_TYPELESS: return DXGI_FORMAT_R10G10B10A2_TYPELESS;
- case WINED3DFMT_R10G10B10A2_UNORM: return DXGI_FORMAT_R10G10B10A2_UNORM;
- case WINED3DFMT_R10G10B10A2_UINT: return DXGI_FORMAT_R10G10B10A2_UINT;
- case WINED3DFMT_R11G11B10_FLOAT: return DXGI_FORMAT_R11G11B10_FLOAT;
- case WINED3DFMT_R8G8B8A8_TYPELESS: return DXGI_FORMAT_R8G8B8A8_TYPELESS;
- case WINED3DFMT_R8G8B8A8_UNORM: return DXGI_FORMAT_R8G8B8A8_UNORM;
- case WINED3DFMT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB;
- case WINED3DFMT_R8G8B8A8_UINT: return DXGI_FORMAT_R8G8B8A8_UINT;
- case WINED3DFMT_R8G8B8A8_SNORM: return DXGI_FORMAT_R8G8B8A8_SNORM;
- case WINED3DFMT_R8G8B8A8_SINT: return DXGI_FORMAT_R8G8B8A8_SINT;
- case WINED3DFMT_R16G16_TYPELESS: return DXGI_FORMAT_R16G16_TYPELESS;
- case WINED3DFMT_R16G16_FLOAT: return DXGI_FORMAT_R16G16_FLOAT;
- case WINED3DFMT_R16G16_UNORM: return DXGI_FORMAT_R16G16_UNORM;
- case WINED3DFMT_R16G16_UINT: return DXGI_FORMAT_R16G16_UINT;
- case WINED3DFMT_R16G16_SNORM: return DXGI_FORMAT_R16G16_SNORM;
- case WINED3DFMT_R16G16_SINT: return DXGI_FORMAT_R16G16_SINT;
- case WINED3DFMT_R32_TYPELESS: return DXGI_FORMAT_R32_TYPELESS;
- case WINED3DFMT_D32_FLOAT: return DXGI_FORMAT_D32_FLOAT;
- case WINED3DFMT_R32_FLOAT: return DXGI_FORMAT_R32_FLOAT;
- case WINED3DFMT_R32_UINT: return DXGI_FORMAT_R32_UINT;
- case WINED3DFMT_R32_SINT: return DXGI_FORMAT_R32_SINT;
- case WINED3DFMT_R24G8_TYPELESS: return DXGI_FORMAT_R24G8_TYPELESS;
- case WINED3DFMT_D24_UNORM_S8_UINT: return DXGI_FORMAT_D24_UNORM_S8_UINT;
- case WINED3DFMT_R24_UNORM_X8_TYPELESS: return DXGI_FORMAT_R24_UNORM_X8_TYPELESS;
- case WINED3DFMT_X24_TYPELESS_G8_UINT: return DXGI_FORMAT_X24_TYPELESS_G8_UINT;
- case WINED3DFMT_R8G8_TYPELESS: return DXGI_FORMAT_R8G8_TYPELESS;
- case WINED3DFMT_R8G8_UNORM: return DXGI_FORMAT_R8G8_UNORM;
- case WINED3DFMT_R8G8_UINT: return DXGI_FORMAT_R8G8_UINT;
- case WINED3DFMT_R8G8_SNORM: return DXGI_FORMAT_R8G8_SNORM;
- case WINED3DFMT_R8G8_SINT: return DXGI_FORMAT_R8G8_SINT;
- case WINED3DFMT_R16_TYPELESS: return DXGI_FORMAT_R16_TYPELESS;
- case WINED3DFMT_R16_FLOAT: return DXGI_FORMAT_R16_FLOAT;
- case WINED3DFMT_D16_UNORM: return DXGI_FORMAT_D16_UNORM;
- case WINED3DFMT_R16_UNORM: return DXGI_FORMAT_R16_UNORM;
- case WINED3DFMT_R16_UINT: return DXGI_FORMAT_R16_UINT;
- case WINED3DFMT_R16_SNORM: return DXGI_FORMAT_R16_SNORM;
- case WINED3DFMT_R16_SINT: return DXGI_FORMAT_R16_SINT;
- case WINED3DFMT_R8_TYPELESS: return DXGI_FORMAT_R8_TYPELESS;
- case WINED3DFMT_R8_UNORM: return DXGI_FORMAT_R8_UNORM;
- case WINED3DFMT_R8_UINT: return DXGI_FORMAT_R8_UINT;
- case WINED3DFMT_R8_SNORM: return DXGI_FORMAT_R8_SNORM;
- case WINED3DFMT_R8_SINT: return DXGI_FORMAT_R8_SINT;
- case WINED3DFMT_A8_UNORM: return DXGI_FORMAT_A8_UNORM;
- case WINED3DFMT_R1_UNORM: return DXGI_FORMAT_R1_UNORM;
- case WINED3DFMT_R9G9B9E5_SHAREDEXP: return DXGI_FORMAT_R9G9B9E5_SHAREDEXP;
- case WINED3DFMT_R8G8_B8G8_UNORM: return DXGI_FORMAT_R8G8_B8G8_UNORM;
- case WINED3DFMT_G8R8_G8B8_UNORM: return DXGI_FORMAT_G8R8_G8B8_UNORM;
- case WINED3DFMT_BC1_TYPELESS: return DXGI_FORMAT_BC1_TYPELESS;
- case WINED3DFMT_BC1_UNORM: return DXGI_FORMAT_BC1_UNORM;
- case WINED3DFMT_BC1_UNORM_SRGB: return DXGI_FORMAT_BC1_UNORM_SRGB;
- case WINED3DFMT_BC2_TYPELESS: return DXGI_FORMAT_BC2_TYPELESS;
- case WINED3DFMT_BC2_UNORM: return DXGI_FORMAT_BC2_UNORM;
- case WINED3DFMT_BC2_UNORM_SRGB: return DXGI_FORMAT_BC2_UNORM_SRGB;
- case WINED3DFMT_BC3_TYPELESS: return DXGI_FORMAT_BC3_TYPELESS;
- case WINED3DFMT_BC3_UNORM: return DXGI_FORMAT_BC3_UNORM;
- case WINED3DFMT_BC3_UNORM_SRGB: return DXGI_FORMAT_BC3_UNORM_SRGB;
- case WINED3DFMT_BC4_TYPELESS: return DXGI_FORMAT_BC4_TYPELESS;
- case WINED3DFMT_BC4_UNORM: return DXGI_FORMAT_BC4_UNORM;
- case WINED3DFMT_BC4_SNORM: return DXGI_FORMAT_BC4_SNORM;
- case WINED3DFMT_BC5_TYPELESS: return DXGI_FORMAT_BC5_TYPELESS;
- case WINED3DFMT_BC5_UNORM: return DXGI_FORMAT_BC5_UNORM;
- case WINED3DFMT_BC5_SNORM: return DXGI_FORMAT_BC5_SNORM;
- case WINED3DFMT_B5G6R5_UNORM: return DXGI_FORMAT_B5G6R5_UNORM;
- case WINED3DFMT_B5G5R5A1_UNORM: return DXGI_FORMAT_B5G5R5A1_UNORM;
- case WINED3DFMT_B8G8R8A8_UNORM: return DXGI_FORMAT_B8G8R8A8_UNORM;
- case WINED3DFMT_B8G8R8X8_UNORM: return DXGI_FORMAT_B8G8R8X8_UNORM;
- case WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM: return DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM;
- case WINED3DFMT_B8G8R8A8_TYPELESS: return DXGI_FORMAT_B8G8R8A8_TYPELESS;
- case WINED3DFMT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
- case WINED3DFMT_B8G8R8X8_TYPELESS: return DXGI_FORMAT_B8G8R8X8_TYPELESS;
- case WINED3DFMT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB;
- case WINED3DFMT_BC6H_TYPELESS: return DXGI_FORMAT_BC6H_TYPELESS;
- case WINED3DFMT_BC6H_UF16: return DXGI_FORMAT_BC6H_UF16;
- case WINED3DFMT_BC6H_SF16: return DXGI_FORMAT_BC6H_SF16;
- case WINED3DFMT_BC7_TYPELESS: return DXGI_FORMAT_BC7_TYPELESS;
- case WINED3DFMT_BC7_UNORM: return DXGI_FORMAT_BC7_UNORM;
- case WINED3DFMT_BC7_UNORM_SRGB: return DXGI_FORMAT_BC7_UNORM_SRGB;
- default:
- FIXME("Unhandled wined3d format %#x.\n", format);
- return DXGI_FORMAT_UNKNOWN;
- }
-}
-
-enum wined3d_format_id wined3dformat_from_dxgi_format(DXGI_FORMAT format)
-{
- switch(format)
- {
- case DXGI_FORMAT_UNKNOWN: return WINED3DFMT_UNKNOWN;
- case DXGI_FORMAT_R32G32B32A32_TYPELESS: return WINED3DFMT_R32G32B32A32_TYPELESS;
- case DXGI_FORMAT_R32G32B32A32_FLOAT: return WINED3DFMT_R32G32B32A32_FLOAT;
- case DXGI_FORMAT_R32G32B32A32_UINT: return WINED3DFMT_R32G32B32A32_UINT;
- case DXGI_FORMAT_R32G32B32A32_SINT: return WINED3DFMT_R32G32B32A32_SINT;
- case DXGI_FORMAT_R32G32B32_TYPELESS: return WINED3DFMT_R32G32B32_TYPELESS;
- case DXGI_FORMAT_R32G32B32_FLOAT: return WINED3DFMT_R32G32B32_FLOAT;
- case DXGI_FORMAT_R32G32B32_UINT: return WINED3DFMT_R32G32B32_UINT;
- case DXGI_FORMAT_R32G32B32_SINT: return WINED3DFMT_R32G32B32_SINT;
- case DXGI_FORMAT_R16G16B16A16_TYPELESS: return WINED3DFMT_R16G16B16A16_TYPELESS;
- case DXGI_FORMAT_R16G16B16A16_FLOAT: return WINED3DFMT_R16G16B16A16_FLOAT;
- case DXGI_FORMAT_R16G16B16A16_UNORM: return WINED3DFMT_R16G16B16A16_UNORM;
- case DXGI_FORMAT_R16G16B16A16_UINT: return WINED3DFMT_R16G16B16A16_UINT;
- case DXGI_FORMAT_R16G16B16A16_SNORM: return WINED3DFMT_R16G16B16A16_SNORM;
- case DXGI_FORMAT_R16G16B16A16_SINT: return WINED3DFMT_R16G16B16A16_SINT;
- case DXGI_FORMAT_R32G32_TYPELESS: return WINED3DFMT_R32G32_TYPELESS;
- case DXGI_FORMAT_R32G32_FLOAT: return WINED3DFMT_R32G32_FLOAT;
- case DXGI_FORMAT_R32G32_UINT: return WINED3DFMT_R32G32_UINT;
- case DXGI_FORMAT_R32G32_SINT: return WINED3DFMT_R32G32_SINT;
- case DXGI_FORMAT_R32G8X24_TYPELESS: return WINED3DFMT_R32G8X24_TYPELESS;
- case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: return WINED3DFMT_D32_FLOAT_S8X24_UINT;
- case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: return WINED3DFMT_R32_FLOAT_X8X24_TYPELESS;
- case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: return WINED3DFMT_X32_TYPELESS_G8X24_UINT;
- case DXGI_FORMAT_R10G10B10A2_TYPELESS: return WINED3DFMT_R10G10B10A2_TYPELESS;
- case DXGI_FORMAT_R10G10B10A2_UNORM: return WINED3DFMT_R10G10B10A2_UNORM;
- case DXGI_FORMAT_R10G10B10A2_UINT: return WINED3DFMT_R10G10B10A2_UINT;
- case DXGI_FORMAT_R11G11B10_FLOAT: return WINED3DFMT_R11G11B10_FLOAT;
- case DXGI_FORMAT_R8G8B8A8_TYPELESS: return WINED3DFMT_R8G8B8A8_TYPELESS;
- case DXGI_FORMAT_R8G8B8A8_UNORM: return WINED3DFMT_R8G8B8A8_UNORM;
- case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return WINED3DFMT_R8G8B8A8_UNORM_SRGB;
- case DXGI_FORMAT_R8G8B8A8_UINT: return WINED3DFMT_R8G8B8A8_UINT;
- case DXGI_FORMAT_R8G8B8A8_SNORM: return WINED3DFMT_R8G8B8A8_SNORM;
- case DXGI_FORMAT_R8G8B8A8_SINT: return WINED3DFMT_R8G8B8A8_SINT;
- case DXGI_FORMAT_R16G16_TYPELESS: return WINED3DFMT_R16G16_TYPELESS;
- case DXGI_FORMAT_R16G16_FLOAT: return WINED3DFMT_R16G16_FLOAT;
- case DXGI_FORMAT_R16G16_UNORM: return WINED3DFMT_R16G16_UNORM;
- case DXGI_FORMAT_R16G16_UINT: return WINED3DFMT_R16G16_UINT;
- case DXGI_FORMAT_R16G16_SNORM: return WINED3DFMT_R16G16_SNORM;
- case DXGI_FORMAT_R16G16_SINT: return WINED3DFMT_R16G16_SINT;
- case DXGI_FORMAT_R32_TYPELESS: return WINED3DFMT_R32_TYPELESS;
- case DXGI_FORMAT_D32_FLOAT: return WINED3DFMT_D32_FLOAT;
- case DXGI_FORMAT_R32_FLOAT: return WINED3DFMT_R32_FLOAT;
- case DXGI_FORMAT_R32_UINT: return WINED3DFMT_R32_UINT;
- case DXGI_FORMAT_R32_SINT: return WINED3DFMT_R32_SINT;
- case DXGI_FORMAT_R24G8_TYPELESS: return WINED3DFMT_R24G8_TYPELESS;
- case DXGI_FORMAT_D24_UNORM_S8_UINT: return WINED3DFMT_D24_UNORM_S8_UINT;
- case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: return WINED3DFMT_R24_UNORM_X8_TYPELESS;
- case DXGI_FORMAT_X24_TYPELESS_G8_UINT: return WINED3DFMT_X24_TYPELESS_G8_UINT;
- case DXGI_FORMAT_R8G8_TYPELESS: return WINED3DFMT_R8G8_TYPELESS;
- case DXGI_FORMAT_R8G8_UNORM: return WINED3DFMT_R8G8_UNORM;
- case DXGI_FORMAT_R8G8_UINT: return WINED3DFMT_R8G8_UINT;
- case DXGI_FORMAT_R8G8_SNORM: return WINED3DFMT_R8G8_SNORM;
- case DXGI_FORMAT_R8G8_SINT: return WINED3DFMT_R8G8_SINT;
- case DXGI_FORMAT_R16_TYPELESS: return WINED3DFMT_R16_TYPELESS;
- case DXGI_FORMAT_R16_FLOAT: return WINED3DFMT_R16_FLOAT;
- case DXGI_FORMAT_D16_UNORM: return WINED3DFMT_D16_UNORM;
- case DXGI_FORMAT_R16_UNORM: return WINED3DFMT_R16_UNORM;
- case DXGI_FORMAT_R16_UINT: return WINED3DFMT_R16_UINT;
- case DXGI_FORMAT_R16_SNORM: return WINED3DFMT_R16_SNORM;
- case DXGI_FORMAT_R16_SINT: return WINED3DFMT_R16_SINT;
- case DXGI_FORMAT_R8_TYPELESS: return WINED3DFMT_R8_TYPELESS;
- case DXGI_FORMAT_R8_UNORM: return WINED3DFMT_R8_UNORM;
- case DXGI_FORMAT_R8_UINT: return WINED3DFMT_R8_UINT;
- case DXGI_FORMAT_R8_SNORM: return WINED3DFMT_R8_SNORM;
- case DXGI_FORMAT_R8_SINT: return WINED3DFMT_R8_SINT;
- case DXGI_FORMAT_A8_UNORM: return WINED3DFMT_A8_UNORM;
- case DXGI_FORMAT_R1_UNORM: return WINED3DFMT_R1_UNORM;
- case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: return WINED3DFMT_R9G9B9E5_SHAREDEXP;
- case DXGI_FORMAT_R8G8_B8G8_UNORM: return WINED3DFMT_R8G8_B8G8_UNORM;
- case DXGI_FORMAT_G8R8_G8B8_UNORM: return WINED3DFMT_G8R8_G8B8_UNORM;
- case DXGI_FORMAT_BC1_TYPELESS: return WINED3DFMT_BC1_TYPELESS;
- case DXGI_FORMAT_BC1_UNORM: return WINED3DFMT_BC1_UNORM;
- case DXGI_FORMAT_BC1_UNORM_SRGB: return WINED3DFMT_BC1_UNORM_SRGB;
- case DXGI_FORMAT_BC2_TYPELESS: return WINED3DFMT_BC2_TYPELESS;
- case DXGI_FORMAT_BC2_UNORM: return WINED3DFMT_BC2_UNORM;
- case DXGI_FORMAT_BC2_UNORM_SRGB: return WINED3DFMT_BC2_UNORM_SRGB;
- case DXGI_FORMAT_BC3_TYPELESS: return WINED3DFMT_BC3_TYPELESS;
- case DXGI_FORMAT_BC3_UNORM: return WINED3DFMT_BC3_UNORM;
- case DXGI_FORMAT_BC3_UNORM_SRGB: return WINED3DFMT_BC3_UNORM_SRGB;
- case DXGI_FORMAT_BC4_TYPELESS: return WINED3DFMT_BC4_TYPELESS;
- case DXGI_FORMAT_BC4_UNORM: return WINED3DFMT_BC4_UNORM;
- case DXGI_FORMAT_BC4_SNORM: return WINED3DFMT_BC4_SNORM;
- case DXGI_FORMAT_BC5_TYPELESS: return WINED3DFMT_BC5_TYPELESS;
- case DXGI_FORMAT_BC5_UNORM: return WINED3DFMT_BC5_UNORM;
- case DXGI_FORMAT_BC5_SNORM: return WINED3DFMT_BC5_SNORM;
- case DXGI_FORMAT_B5G6R5_UNORM: return WINED3DFMT_B5G6R5_UNORM;
- case DXGI_FORMAT_B5G5R5A1_UNORM: return WINED3DFMT_B5G5R5A1_UNORM;
- case DXGI_FORMAT_B8G8R8A8_UNORM: return WINED3DFMT_B8G8R8A8_UNORM;
- case DXGI_FORMAT_B8G8R8X8_UNORM: return WINED3DFMT_B8G8R8X8_UNORM;
- case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: return WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM;
- case DXGI_FORMAT_B8G8R8A8_TYPELESS: return WINED3DFMT_B8G8R8A8_TYPELESS;
- case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return WINED3DFMT_B8G8R8A8_UNORM_SRGB;
- case DXGI_FORMAT_B8G8R8X8_TYPELESS: return WINED3DFMT_B8G8R8X8_TYPELESS;
- case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return WINED3DFMT_B8G8R8X8_UNORM_SRGB;
- case DXGI_FORMAT_BC6H_TYPELESS: return WINED3DFMT_BC6H_TYPELESS;
- case DXGI_FORMAT_BC6H_UF16: return WINED3DFMT_BC6H_UF16;
- case DXGI_FORMAT_BC6H_SF16: return WINED3DFMT_BC6H_SF16;
- case DXGI_FORMAT_BC7_TYPELESS: return WINED3DFMT_BC7_TYPELESS;
- case DXGI_FORMAT_BC7_UNORM: return WINED3DFMT_BC7_UNORM;
- case DXGI_FORMAT_BC7_UNORM_SRGB: return WINED3DFMT_BC7_UNORM_SRGB;
- default:
- FIXME("Unhandled DXGI_FORMAT %#x.\n", format);
- return WINED3DFMT_UNKNOWN;
- }
-}
-
unsigned int wined3d_getdata_flags_from_d3d11_async_getdata_flags(unsigned int d3d11_flags)
{
if (d3d11_flags & ~D3D11_ASYNC_GETDATA_DONOTFLUSH)
diff --git a/dlls/d3d11/view.c b/dlls/d3d11/view.c
index 205513d..7bd6a19 100644
--- a/dlls/d3d11/view.c
+++ b/dlls/d3d11/view.c
@@ -1212,7 +1212,7 @@ static const struct ID3D10DepthStencilViewVtbl d3d10_depthstencil_view_vtbl =
static void wined3d_depth_stencil_view_desc_from_d3d11(struct wined3d_rendertarget_view_desc *wined3d_desc,
const D3D11_DEPTH_STENCIL_VIEW_DESC *desc)
{
- wined3d_desc->format_id = wined3dformat_from_dxgi_format(desc->Format);
+ wined3d_desc->format_id = wined3d_wined3dformat_from_dxgi_format(desc->Format);
if (desc->Flags)
FIXME("Unhandled depth stencil view flags %#x.\n", desc->Flags);
@@ -1627,7 +1627,7 @@ static const struct ID3D10RenderTargetViewVtbl d3d10_rendertarget_view_vtbl =
static void wined3d_rendertarget_view_desc_from_d3d11(struct wined3d_rendertarget_view_desc *wined3d_desc,
const D3D11_RENDER_TARGET_VIEW_DESC *desc)
{
- wined3d_desc->format_id = wined3dformat_from_dxgi_format(desc->Format);
+ wined3d_desc->format_id = wined3d_wined3dformat_from_dxgi_format(desc->Format);
switch (desc->ViewDimension)
{
@@ -2064,7 +2064,7 @@ static const struct ID3D10ShaderResourceView1Vtbl d3d10_shader_resource_view_vtb
static HRESULT wined3d_shader_resource_view_desc_from_d3d11(struct wined3d_shader_resource_view_desc *wined3d_desc,
const D3D11_SHADER_RESOURCE_VIEW_DESC *desc)
{
- wined3d_desc->format_id = wined3dformat_from_dxgi_format(desc->Format);
+ wined3d_desc->format_id = wined3d_wined3dformat_from_dxgi_format(desc->Format);
wined3d_desc->flags = 0;
switch (desc->ViewDimension)
@@ -2384,7 +2384,7 @@ static const struct ID3D11UnorderedAccessViewVtbl d3d11_unordered_access_view_vt
static HRESULT wined3d_unordered_access_view_desc_from_d3d11(struct wined3d_unordered_access_view_desc *wined3d_desc,
const D3D11_UNORDERED_ACCESS_VIEW_DESC *desc)
{
- wined3d_desc->format_id = wined3dformat_from_dxgi_format(desc->Format);
+ wined3d_desc->format_id = wined3d_wined3dformat_from_dxgi_format(desc->Format);
wined3d_desc->flags = 0;
switch (desc->ViewDimension)
diff --git a/dlls/dxgi/device.c b/dlls/dxgi/device.c
index f548ca2..b7e1868 100644
--- a/dlls/dxgi/device.c
+++ b/dlls/dxgi/device.c
@@ -183,7 +183,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_device_CreateSurface(IWineDXGIDevice *ifac
FIXME("Implement DXGI<->wined3d usage conversion\n");
surface_desc.resource_type = WINED3D_RTYPE_TEXTURE_2D;
- surface_desc.format = wined3dformat_from_dxgi_format(desc->Format);
+ surface_desc.format = wined3d_wined3dformat_from_dxgi_format(desc->Format);
wined3d_sample_desc_from_dxgi(&surface_desc.multisample_type,
&surface_desc.multisample_quality, &desc->SampleDesc);
surface_desc.usage = usage;
diff --git a/dlls/dxgi/dxgi_private.h b/dlls/dxgi/dxgi_private.h
index 06892e2..dc23734 100644
--- a/dlls/dxgi/dxgi_private.h
+++ b/dlls/dxgi/dxgi_private.h
@@ -82,8 +82,6 @@ const char *debug_dxgi_format(DXGI_FORMAT format) DECLSPEC_HIDDEN;
const char *debug_dxgi_mode(const DXGI_MODE_DESC *desc) DECLSPEC_HIDDEN;
void dump_feature_levels(const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count) DECLSPEC_HIDDEN;
-DXGI_FORMAT dxgi_format_from_wined3dformat(enum wined3d_format_id format) DECLSPEC_HIDDEN;
-enum wined3d_format_id wined3dformat_from_dxgi_format(DXGI_FORMAT format) DECLSPEC_HIDDEN;
UINT dxgi_rational_to_uint(const DXGI_RATIONAL *rational) DECLSPEC_HIDDEN;
enum wined3d_scanline_ordering wined3d_scanline_ordering_from_dxgi(
DXGI_MODE_SCANLINE_ORDER scanline_order) DECLSPEC_HIDDEN;
diff --git a/dlls/dxgi/factory.c b/dlls/dxgi/factory.c
index d54eea9..89bd88f 100644
--- a/dlls/dxgi/factory.c
+++ b/dlls/dxgi/factory.c
@@ -229,7 +229,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_factory_CreateSwapChain(IDXGIFactory1 *ifa
wined3d_desc.backbuffer_width = desc->BufferDesc.Width;
wined3d_desc.backbuffer_height = desc->BufferDesc.Height;
- wined3d_desc.backbuffer_format = wined3dformat_from_dxgi_format(desc->BufferDesc.Format);
+ wined3d_desc.backbuffer_format = wined3d_wined3dformat_from_dxgi_format(desc->BufferDesc.Format);
wined3d_desc.backbuffer_count = desc->BufferCount;
wined3d_sample_desc_from_dxgi(&wined3d_desc.multisample_type,
&wined3d_desc.multisample_quality, &desc->SampleDesc);
diff --git a/dlls/dxgi/output.c b/dlls/dxgi/output.c
index 0cf8084..779d252 100644
--- a/dlls/dxgi/output.c
+++ b/dlls/dxgi/output.c
@@ -29,7 +29,7 @@ static void dxgi_mode_from_wined3d(DXGI_MODE_DESC *mode, const struct wined3d_di
mode->Height = wined3d_mode->height;
mode->RefreshRate.Numerator = wined3d_mode->refresh_rate;
mode->RefreshRate.Denominator = 1;
- mode->Format = dxgi_format_from_wined3dformat(wined3d_mode->format_id);
+ mode->Format = wined3d_dxgi_format_from_wined3dformat(wined3d_mode->format_id);
mode->ScanlineOrdering = wined3d_mode->scanline_ordering;
mode->Scaling = DXGI_MODE_SCALING_UNSPECIFIED; /* FIXME */
}
@@ -183,7 +183,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_output_GetDisplayModeList(IDXGIOutput *ifa
}
wined3d = output->adapter->factory->wined3d;
- wined3d_format = wined3dformat_from_dxgi_format(format);
+ wined3d_format = wined3d_wined3dformat_from_dxgi_format(format);
wined3d_mutex_lock();
max_count = wined3d_get_adapter_mode_count(wined3d, output->adapter->ordinal,
diff --git a/dlls/dxgi/surface.c b/dlls/dxgi/surface.c
index 36fc1e6..c917682 100644
--- a/dlls/dxgi/surface.c
+++ b/dlls/dxgi/surface.c
@@ -174,7 +174,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_surface_GetDesc(IDXGISurface1 *iface, DXGI
wined3d_mutex_unlock();
desc->Width = wined3d_desc.width;
desc->Height = wined3d_desc.height;
- desc->Format = dxgi_format_from_wined3dformat(wined3d_desc.format);
+ desc->Format = wined3d_dxgi_format_from_wined3dformat(wined3d_desc.format);
dxgi_sample_desc_from_wined3d(&desc->SampleDesc, wined3d_desc.multisample_type, wined3d_desc.multisample_quality);
return S_OK;
diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c
index 2b61327..5b5562a 100644
--- a/dlls/dxgi/swapchain.c
+++ b/dlls/dxgi/swapchain.c
@@ -295,7 +295,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_swapchain_GetDesc(IDXGISwapChain *iface, D
desc->BufferDesc.Height = wined3d_desc.backbuffer_height;
desc->BufferDesc.RefreshRate.Numerator = wined3d_desc.refresh_rate;
desc->BufferDesc.RefreshRate.Denominator = 1;
- desc->BufferDesc.Format = dxgi_format_from_wined3dformat(wined3d_desc.backbuffer_format);
+ desc->BufferDesc.Format = wined3d_dxgi_format_from_wined3dformat(wined3d_desc.backbuffer_format);
desc->BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;
desc->BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
dxgi_sample_desc_from_wined3d(&desc->SampleDesc, wined3d_desc.multisample_type, wined3d_desc.multisample_quality);
@@ -338,7 +338,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_swapchain_ResizeBuffers(IDXGISwapChain *if
}
}
if (format != DXGI_FORMAT_UNKNOWN)
- wined3d_desc.backbuffer_format = wined3dformat_from_dxgi_format(format);
+ wined3d_desc.backbuffer_format = wined3d_wined3dformat_from_dxgi_format(format);
hr = wined3d_swapchain_resize_buffers(swapchain->wined3d_swapchain, buffer_count, width, height,
wined3d_desc.backbuffer_format, wined3d_desc.multisample_type, wined3d_desc.multisample_quality);
wined3d_mutex_unlock();
diff --git a/dlls/dxgi/utils.c b/dlls/dxgi/utils.c
index b940b15..ce0980b 100644
--- a/dlls/dxgi/utils.c
+++ b/dlls/dxgi/utils.c
@@ -156,226 +156,6 @@ const char *debug_dxgi_format(DXGI_FORMAT format)
#undef WINE_DXGI_TO_STR
-DXGI_FORMAT dxgi_format_from_wined3dformat(enum wined3d_format_id format)
-{
- switch(format)
- {
- case WINED3DFMT_UNKNOWN: return DXGI_FORMAT_UNKNOWN;
- case WINED3DFMT_R32G32B32A32_TYPELESS: return DXGI_FORMAT_R32G32B32A32_TYPELESS;
- case WINED3DFMT_R32G32B32A32_FLOAT: return DXGI_FORMAT_R32G32B32A32_FLOAT;
- case WINED3DFMT_R32G32B32A32_UINT: return DXGI_FORMAT_R32G32B32A32_UINT;
- case WINED3DFMT_R32G32B32A32_SINT: return DXGI_FORMAT_R32G32B32A32_SINT;
- case WINED3DFMT_R32G32B32_TYPELESS: return DXGI_FORMAT_R32G32B32_TYPELESS;
- case WINED3DFMT_R32G32B32_FLOAT: return DXGI_FORMAT_R32G32B32_FLOAT;
- case WINED3DFMT_R32G32B32_UINT: return DXGI_FORMAT_R32G32B32_UINT;
- case WINED3DFMT_R32G32B32_SINT: return DXGI_FORMAT_R32G32B32_SINT;
- case WINED3DFMT_R16G16B16A16_TYPELESS: return DXGI_FORMAT_R16G16B16A16_TYPELESS;
- case WINED3DFMT_R16G16B16A16_FLOAT: return DXGI_FORMAT_R16G16B16A16_FLOAT;
- case WINED3DFMT_R16G16B16A16_UNORM: return DXGI_FORMAT_R16G16B16A16_UNORM;
- case WINED3DFMT_R16G16B16A16_UINT: return DXGI_FORMAT_R16G16B16A16_UINT;
- case WINED3DFMT_R16G16B16A16_SNORM: return DXGI_FORMAT_R16G16B16A16_SNORM;
- case WINED3DFMT_R16G16B16A16_SINT: return DXGI_FORMAT_R16G16B16A16_SINT;
- case WINED3DFMT_R32G32_TYPELESS: return DXGI_FORMAT_R32G32_TYPELESS;
- case WINED3DFMT_R32G32_FLOAT: return DXGI_FORMAT_R32G32_FLOAT;
- case WINED3DFMT_R32G32_UINT: return DXGI_FORMAT_R32G32_UINT;
- case WINED3DFMT_R32G32_SINT: return DXGI_FORMAT_R32G32_SINT;
- case WINED3DFMT_R32G8X24_TYPELESS: return DXGI_FORMAT_R32G8X24_TYPELESS;
- case WINED3DFMT_D32_FLOAT_S8X24_UINT: return DXGI_FORMAT_D32_FLOAT_S8X24_UINT;
- case WINED3DFMT_R32_FLOAT_X8X24_TYPELESS: return DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS;
- case WINED3DFMT_X32_TYPELESS_G8X24_UINT: return DXGI_FORMAT_X32_TYPELESS_G8X24_UINT;
- case WINED3DFMT_R10G10B10A2_TYPELESS: return DXGI_FORMAT_R10G10B10A2_TYPELESS;
- case WINED3DFMT_R10G10B10A2_UNORM: return DXGI_FORMAT_R10G10B10A2_UNORM;
- case WINED3DFMT_R10G10B10A2_UINT: return DXGI_FORMAT_R10G10B10A2_UINT;
- case WINED3DFMT_R11G11B10_FLOAT: return DXGI_FORMAT_R11G11B10_FLOAT;
- case WINED3DFMT_R8G8B8A8_TYPELESS: return DXGI_FORMAT_R8G8B8A8_TYPELESS;
- case WINED3DFMT_R8G8B8A8_UNORM: return DXGI_FORMAT_R8G8B8A8_UNORM;
- case WINED3DFMT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB;
- case WINED3DFMT_R8G8B8A8_UINT: return DXGI_FORMAT_R8G8B8A8_UINT;
- case WINED3DFMT_R8G8B8A8_SNORM: return DXGI_FORMAT_R8G8B8A8_SNORM;
- case WINED3DFMT_R8G8B8A8_SINT: return DXGI_FORMAT_R8G8B8A8_SINT;
- case WINED3DFMT_R16G16_TYPELESS: return DXGI_FORMAT_R16G16_TYPELESS;
- case WINED3DFMT_R16G16_FLOAT: return DXGI_FORMAT_R16G16_FLOAT;
- case WINED3DFMT_R16G16_UNORM: return DXGI_FORMAT_R16G16_UNORM;
- case WINED3DFMT_R16G16_UINT: return DXGI_FORMAT_R16G16_UINT;
- case WINED3DFMT_R16G16_SNORM: return DXGI_FORMAT_R16G16_SNORM;
- case WINED3DFMT_R16G16_SINT: return DXGI_FORMAT_R16G16_SINT;
- case WINED3DFMT_R32_TYPELESS: return DXGI_FORMAT_R32_TYPELESS;
- case WINED3DFMT_D32_FLOAT: return DXGI_FORMAT_D32_FLOAT;
- case WINED3DFMT_R32_FLOAT: return DXGI_FORMAT_R32_FLOAT;
- case WINED3DFMT_R32_UINT: return DXGI_FORMAT_R32_UINT;
- case WINED3DFMT_R32_SINT: return DXGI_FORMAT_R32_SINT;
- case WINED3DFMT_R24G8_TYPELESS: return DXGI_FORMAT_R24G8_TYPELESS;
- case WINED3DFMT_D24_UNORM_S8_UINT: return DXGI_FORMAT_D24_UNORM_S8_UINT;
- case WINED3DFMT_R24_UNORM_X8_TYPELESS: return DXGI_FORMAT_R24_UNORM_X8_TYPELESS;
- case WINED3DFMT_X24_TYPELESS_G8_UINT: return DXGI_FORMAT_X24_TYPELESS_G8_UINT;
- case WINED3DFMT_R8G8_TYPELESS: return DXGI_FORMAT_R8G8_TYPELESS;
- case WINED3DFMT_R8G8_UNORM: return DXGI_FORMAT_R8G8_UNORM;
- case WINED3DFMT_R8G8_UINT: return DXGI_FORMAT_R8G8_UINT;
- case WINED3DFMT_R8G8_SNORM: return DXGI_FORMAT_R8G8_SNORM;
- case WINED3DFMT_R8G8_SINT: return DXGI_FORMAT_R8G8_SINT;
- case WINED3DFMT_R16_TYPELESS: return DXGI_FORMAT_R16_TYPELESS;
- case WINED3DFMT_R16_FLOAT: return DXGI_FORMAT_R16_FLOAT;
- case WINED3DFMT_D16_UNORM: return DXGI_FORMAT_D16_UNORM;
- case WINED3DFMT_R16_UNORM: return DXGI_FORMAT_R16_UNORM;
- case WINED3DFMT_R16_UINT: return DXGI_FORMAT_R16_UINT;
- case WINED3DFMT_R16_SNORM: return DXGI_FORMAT_R16_SNORM;
- case WINED3DFMT_R16_SINT: return DXGI_FORMAT_R16_SINT;
- case WINED3DFMT_R8_TYPELESS: return DXGI_FORMAT_R8_TYPELESS;
- case WINED3DFMT_R8_UNORM: return DXGI_FORMAT_R8_UNORM;
- case WINED3DFMT_R8_UINT: return DXGI_FORMAT_R8_UINT;
- case WINED3DFMT_R8_SNORM: return DXGI_FORMAT_R8_SNORM;
- case WINED3DFMT_R8_SINT: return DXGI_FORMAT_R8_SINT;
- case WINED3DFMT_A8_UNORM: return DXGI_FORMAT_A8_UNORM;
- case WINED3DFMT_R1_UNORM: return DXGI_FORMAT_R1_UNORM;
- case WINED3DFMT_R9G9B9E5_SHAREDEXP: return DXGI_FORMAT_R9G9B9E5_SHAREDEXP;
- case WINED3DFMT_R8G8_B8G8_UNORM: return DXGI_FORMAT_R8G8_B8G8_UNORM;
- case WINED3DFMT_G8R8_G8B8_UNORM: return DXGI_FORMAT_G8R8_G8B8_UNORM;
- case WINED3DFMT_BC1_TYPELESS: return DXGI_FORMAT_BC1_TYPELESS;
- case WINED3DFMT_BC1_UNORM: return DXGI_FORMAT_BC1_UNORM;
- case WINED3DFMT_BC1_UNORM_SRGB: return DXGI_FORMAT_BC1_UNORM_SRGB;
- case WINED3DFMT_BC2_TYPELESS: return DXGI_FORMAT_BC2_TYPELESS;
- case WINED3DFMT_BC2_UNORM: return DXGI_FORMAT_BC2_UNORM;
- case WINED3DFMT_BC2_UNORM_SRGB: return DXGI_FORMAT_BC2_UNORM_SRGB;
- case WINED3DFMT_BC3_TYPELESS: return DXGI_FORMAT_BC3_TYPELESS;
- case WINED3DFMT_BC3_UNORM: return DXGI_FORMAT_BC3_UNORM;
- case WINED3DFMT_BC3_UNORM_SRGB: return DXGI_FORMAT_BC3_UNORM_SRGB;
- case WINED3DFMT_BC4_TYPELESS: return DXGI_FORMAT_BC4_TYPELESS;
- case WINED3DFMT_BC4_UNORM: return DXGI_FORMAT_BC4_UNORM;
- case WINED3DFMT_BC4_SNORM: return DXGI_FORMAT_BC4_SNORM;
- case WINED3DFMT_BC5_TYPELESS: return DXGI_FORMAT_BC5_TYPELESS;
- case WINED3DFMT_BC5_UNORM: return DXGI_FORMAT_BC5_UNORM;
- case WINED3DFMT_BC5_SNORM: return DXGI_FORMAT_BC5_SNORM;
- case WINED3DFMT_B5G6R5_UNORM: return DXGI_FORMAT_B5G6R5_UNORM;
- case WINED3DFMT_B5G5R5A1_UNORM: return DXGI_FORMAT_B5G5R5A1_UNORM;
- case WINED3DFMT_B8G8R8A8_UNORM: return DXGI_FORMAT_B8G8R8A8_UNORM;
- case WINED3DFMT_B8G8R8X8_UNORM: return DXGI_FORMAT_B8G8R8X8_UNORM;
- case WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM: return DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM;
- case WINED3DFMT_B8G8R8A8_TYPELESS: return DXGI_FORMAT_B8G8R8A8_TYPELESS;
- case WINED3DFMT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
- case WINED3DFMT_B8G8R8X8_TYPELESS: return DXGI_FORMAT_B8G8R8X8_TYPELESS;
- case WINED3DFMT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB;
- case WINED3DFMT_BC6H_TYPELESS: return DXGI_FORMAT_BC6H_TYPELESS;
- case WINED3DFMT_BC6H_UF16: return DXGI_FORMAT_BC6H_UF16;
- case WINED3DFMT_BC6H_SF16: return DXGI_FORMAT_BC6H_SF16;
- case WINED3DFMT_BC7_TYPELESS: return DXGI_FORMAT_BC7_TYPELESS;
- case WINED3DFMT_BC7_UNORM: return DXGI_FORMAT_BC7_UNORM;
- case WINED3DFMT_BC7_UNORM_SRGB: return DXGI_FORMAT_BC7_UNORM_SRGB;
- default:
- FIXME("Unhandled wined3d format %#x.\n", format);
- return DXGI_FORMAT_UNKNOWN;
- }
-}
-
-enum wined3d_format_id wined3dformat_from_dxgi_format(DXGI_FORMAT format)
-{
- switch(format)
- {
- case DXGI_FORMAT_UNKNOWN: return WINED3DFMT_UNKNOWN;
- case DXGI_FORMAT_R32G32B32A32_TYPELESS: return WINED3DFMT_R32G32B32A32_TYPELESS;
- case DXGI_FORMAT_R32G32B32A32_FLOAT: return WINED3DFMT_R32G32B32A32_FLOAT;
- case DXGI_FORMAT_R32G32B32A32_UINT: return WINED3DFMT_R32G32B32A32_UINT;
- case DXGI_FORMAT_R32G32B32A32_SINT: return WINED3DFMT_R32G32B32A32_SINT;
- case DXGI_FORMAT_R32G32B32_TYPELESS: return WINED3DFMT_R32G32B32_TYPELESS;
- case DXGI_FORMAT_R32G32B32_FLOAT: return WINED3DFMT_R32G32B32_FLOAT;
- case DXGI_FORMAT_R32G32B32_UINT: return WINED3DFMT_R32G32B32_UINT;
- case DXGI_FORMAT_R32G32B32_SINT: return WINED3DFMT_R32G32B32_SINT;
- case DXGI_FORMAT_R16G16B16A16_TYPELESS: return WINED3DFMT_R16G16B16A16_TYPELESS;
- case DXGI_FORMAT_R16G16B16A16_FLOAT: return WINED3DFMT_R16G16B16A16_FLOAT;
- case DXGI_FORMAT_R16G16B16A16_UNORM: return WINED3DFMT_R16G16B16A16_UNORM;
- case DXGI_FORMAT_R16G16B16A16_UINT: return WINED3DFMT_R16G16B16A16_UINT;
- case DXGI_FORMAT_R16G16B16A16_SNORM: return WINED3DFMT_R16G16B16A16_SNORM;
- case DXGI_FORMAT_R16G16B16A16_SINT: return WINED3DFMT_R16G16B16A16_SINT;
- case DXGI_FORMAT_R32G32_TYPELESS: return WINED3DFMT_R32G32_TYPELESS;
- case DXGI_FORMAT_R32G32_FLOAT: return WINED3DFMT_R32G32_FLOAT;
- case DXGI_FORMAT_R32G32_UINT: return WINED3DFMT_R32G32_UINT;
- case DXGI_FORMAT_R32G32_SINT: return WINED3DFMT_R32G32_SINT;
- case DXGI_FORMAT_R32G8X24_TYPELESS: return WINED3DFMT_R32G8X24_TYPELESS;
- case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: return WINED3DFMT_D32_FLOAT_S8X24_UINT;
- case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: return WINED3DFMT_R32_FLOAT_X8X24_TYPELESS;
- case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: return WINED3DFMT_X32_TYPELESS_G8X24_UINT;
- case DXGI_FORMAT_R10G10B10A2_TYPELESS: return WINED3DFMT_R10G10B10A2_TYPELESS;
- case DXGI_FORMAT_R10G10B10A2_UNORM: return WINED3DFMT_R10G10B10A2_UNORM;
- case DXGI_FORMAT_R10G10B10A2_UINT: return WINED3DFMT_R10G10B10A2_UINT;
- case DXGI_FORMAT_R11G11B10_FLOAT: return WINED3DFMT_R11G11B10_FLOAT;
- case DXGI_FORMAT_R8G8B8A8_TYPELESS: return WINED3DFMT_R8G8B8A8_TYPELESS;
- case DXGI_FORMAT_R8G8B8A8_UNORM: return WINED3DFMT_R8G8B8A8_UNORM;
- case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return WINED3DFMT_R8G8B8A8_UNORM_SRGB;
- case DXGI_FORMAT_R8G8B8A8_UINT: return WINED3DFMT_R8G8B8A8_UINT;
- case DXGI_FORMAT_R8G8B8A8_SNORM: return WINED3DFMT_R8G8B8A8_SNORM;
- case DXGI_FORMAT_R8G8B8A8_SINT: return WINED3DFMT_R8G8B8A8_SINT;
- case DXGI_FORMAT_R16G16_TYPELESS: return WINED3DFMT_R16G16_TYPELESS;
- case DXGI_FORMAT_R16G16_FLOAT: return WINED3DFMT_R16G16_FLOAT;
- case DXGI_FORMAT_R16G16_UNORM: return WINED3DFMT_R16G16_UNORM;
- case DXGI_FORMAT_R16G16_UINT: return WINED3DFMT_R16G16_UINT;
- case DXGI_FORMAT_R16G16_SNORM: return WINED3DFMT_R16G16_SNORM;
- case DXGI_FORMAT_R16G16_SINT: return WINED3DFMT_R16G16_SINT;
- case DXGI_FORMAT_R32_TYPELESS: return WINED3DFMT_R32_TYPELESS;
- case DXGI_FORMAT_D32_FLOAT: return WINED3DFMT_D32_FLOAT;
- case DXGI_FORMAT_R32_FLOAT: return WINED3DFMT_R32_FLOAT;
- case DXGI_FORMAT_R32_UINT: return WINED3DFMT_R32_UINT;
- case DXGI_FORMAT_R32_SINT: return WINED3DFMT_R32_SINT;
- case DXGI_FORMAT_R24G8_TYPELESS: return WINED3DFMT_R24G8_TYPELESS;
- case DXGI_FORMAT_D24_UNORM_S8_UINT: return WINED3DFMT_D24_UNORM_S8_UINT;
- case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: return WINED3DFMT_R24_UNORM_X8_TYPELESS;
- case DXGI_FORMAT_X24_TYPELESS_G8_UINT: return WINED3DFMT_X24_TYPELESS_G8_UINT;
- case DXGI_FORMAT_R8G8_TYPELESS: return WINED3DFMT_R8G8_TYPELESS;
- case DXGI_FORMAT_R8G8_UNORM: return WINED3DFMT_R8G8_UNORM;
- case DXGI_FORMAT_R8G8_UINT: return WINED3DFMT_R8G8_UINT;
- case DXGI_FORMAT_R8G8_SNORM: return WINED3DFMT_R8G8_SNORM;
- case DXGI_FORMAT_R8G8_SINT: return WINED3DFMT_R8G8_SINT;
- case DXGI_FORMAT_R16_TYPELESS: return WINED3DFMT_R16_TYPELESS;
- case DXGI_FORMAT_R16_FLOAT: return WINED3DFMT_R16_FLOAT;
- case DXGI_FORMAT_D16_UNORM: return WINED3DFMT_D16_UNORM;
- case DXGI_FORMAT_R16_UNORM: return WINED3DFMT_R16_UNORM;
- case DXGI_FORMAT_R16_UINT: return WINED3DFMT_R16_UINT;
- case DXGI_FORMAT_R16_SNORM: return WINED3DFMT_R16_SNORM;
- case DXGI_FORMAT_R16_SINT: return WINED3DFMT_R16_SINT;
- case DXGI_FORMAT_R8_TYPELESS: return WINED3DFMT_R8_TYPELESS;
- case DXGI_FORMAT_R8_UNORM: return WINED3DFMT_R8_UNORM;
- case DXGI_FORMAT_R8_UINT: return WINED3DFMT_R8_UINT;
- case DXGI_FORMAT_R8_SNORM: return WINED3DFMT_R8_SNORM;
- case DXGI_FORMAT_R8_SINT: return WINED3DFMT_R8_SINT;
- case DXGI_FORMAT_A8_UNORM: return WINED3DFMT_A8_UNORM;
- case DXGI_FORMAT_R1_UNORM: return WINED3DFMT_R1_UNORM;
- case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: return WINED3DFMT_R9G9B9E5_SHAREDEXP;
- case DXGI_FORMAT_R8G8_B8G8_UNORM: return WINED3DFMT_R8G8_B8G8_UNORM;
- case DXGI_FORMAT_G8R8_G8B8_UNORM: return WINED3DFMT_G8R8_G8B8_UNORM;
- case DXGI_FORMAT_BC1_TYPELESS: return WINED3DFMT_BC1_TYPELESS;
- case DXGI_FORMAT_BC1_UNORM: return WINED3DFMT_BC1_UNORM;
- case DXGI_FORMAT_BC1_UNORM_SRGB: return WINED3DFMT_BC1_UNORM_SRGB;
- case DXGI_FORMAT_BC2_TYPELESS: return WINED3DFMT_BC2_TYPELESS;
- case DXGI_FORMAT_BC2_UNORM: return WINED3DFMT_BC2_UNORM;
- case DXGI_FORMAT_BC2_UNORM_SRGB: return WINED3DFMT_BC2_UNORM_SRGB;
- case DXGI_FORMAT_BC3_TYPELESS: return WINED3DFMT_BC3_TYPELESS;
- case DXGI_FORMAT_BC3_UNORM: return WINED3DFMT_BC3_UNORM;
- case DXGI_FORMAT_BC3_UNORM_SRGB: return WINED3DFMT_BC3_UNORM_SRGB;
- case DXGI_FORMAT_BC4_TYPELESS: return WINED3DFMT_BC4_TYPELESS;
- case DXGI_FORMAT_BC4_UNORM: return WINED3DFMT_BC4_UNORM;
- case DXGI_FORMAT_BC4_SNORM: return WINED3DFMT_BC4_SNORM;
- case DXGI_FORMAT_BC5_TYPELESS: return WINED3DFMT_BC5_TYPELESS;
- case DXGI_FORMAT_BC5_UNORM: return WINED3DFMT_BC5_UNORM;
- case DXGI_FORMAT_BC5_SNORM: return WINED3DFMT_BC5_SNORM;
- case DXGI_FORMAT_B5G6R5_UNORM: return WINED3DFMT_B5G6R5_UNORM;
- case DXGI_FORMAT_B5G5R5A1_UNORM: return WINED3DFMT_B5G5R5A1_UNORM;
- case DXGI_FORMAT_B8G8R8A8_UNORM: return WINED3DFMT_B8G8R8A8_UNORM;
- case DXGI_FORMAT_B8G8R8X8_UNORM: return WINED3DFMT_B8G8R8X8_UNORM;
- case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: return WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM;
- case DXGI_FORMAT_B8G8R8A8_TYPELESS: return WINED3DFMT_B8G8R8A8_TYPELESS;
- case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return WINED3DFMT_B8G8R8A8_UNORM_SRGB;
- case DXGI_FORMAT_B8G8R8X8_TYPELESS: return WINED3DFMT_B8G8R8X8_TYPELESS;
- case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return WINED3DFMT_B8G8R8X8_UNORM_SRGB;
- case DXGI_FORMAT_BC6H_TYPELESS: return WINED3DFMT_BC6H_TYPELESS;
- case DXGI_FORMAT_BC6H_UF16: return WINED3DFMT_BC6H_UF16;
- case DXGI_FORMAT_BC6H_SF16: return WINED3DFMT_BC6H_SF16;
- case DXGI_FORMAT_BC7_TYPELESS: return WINED3DFMT_BC7_TYPELESS;
- case DXGI_FORMAT_BC7_UNORM: return WINED3DFMT_BC7_UNORM;
- case DXGI_FORMAT_BC7_UNORM_SRGB: return WINED3DFMT_BC7_UNORM_SRGB;
- default:
- FIXME("Unhandled DXGI_FORMAT %#x.\n", format);
- return WINED3DFMT_UNKNOWN;
- }
-}
-
const char *debug_dxgi_mode(const DXGI_MODE_DESC *desc)
{
return wine_dbg_sprintf("resolution %ux%u, refresh rate %u / %u, "
@@ -449,7 +229,7 @@ void wined3d_display_mode_from_dxgi(struct wined3d_display_mode *wined3d_mode,
wined3d_mode->width = mode->Width;
wined3d_mode->height = mode->Height;
wined3d_mode->refresh_rate = dxgi_rational_to_uint(&mode->RefreshRate);
- wined3d_mode->format_id = wined3dformat_from_dxgi_format(mode->Format);
+ wined3d_mode->format_id = wined3d_wined3dformat_from_dxgi_format(mode->Format);
wined3d_mode->scanline_ordering = wined3d_scanline_ordering_from_dxgi(mode->ScanlineOrdering);
}
diff --git a/dlls/wined3d/Makefile.in b/dlls/wined3d/Makefile.in
index edee588..42c08c5 100644
--- a/dlls/wined3d/Makefile.in
+++ b/dlls/wined3d/Makefile.in
@@ -8,6 +8,7 @@ C_SRCS = \
buffer.c \
context.c \
cs.c \
+ d3dtexture.c \
device.c \
directx.c \
drawprim.c \
diff --git a/dlls/wined3d/d3dtexture.c b/dlls/wined3d/d3dtexture.c
new file mode 100644
index 0000000..9c709d9
--- /dev/null
+++ b/dlls/wined3d/d3dtexture.c
@@ -0,0 +1,254 @@
+/*
+ * Direct3d texture handling helper functions
+ *
+ * Copyright (C) 2016 Wine project
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#define COBJMACROS
+
+#include "config.h"
+#include "wine/port.h"
+
+#include "wine/debug.h"
+
+#include <objbase.h>
+#include "initguid.h"
+#include "wincodec.h"
+
+#include "wine/wined3d.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+DXGI_FORMAT wined3d_dxgi_format_from_wined3dformat(enum wined3d_format_id format)
+{
+ switch(format)
+ {
+ case WINED3DFMT_UNKNOWN: return DXGI_FORMAT_UNKNOWN;
+ case WINED3DFMT_R32G32B32A32_TYPELESS: return DXGI_FORMAT_R32G32B32A32_TYPELESS;
+ case WINED3DFMT_R32G32B32A32_FLOAT: return DXGI_FORMAT_R32G32B32A32_FLOAT;
+ case WINED3DFMT_R32G32B32A32_UINT: return DXGI_FORMAT_R32G32B32A32_UINT;
+ case WINED3DFMT_R32G32B32A32_SINT: return DXGI_FORMAT_R32G32B32A32_SINT;
+ case WINED3DFMT_R32G32B32_TYPELESS: return DXGI_FORMAT_R32G32B32_TYPELESS;
+ case WINED3DFMT_R32G32B32_FLOAT: return DXGI_FORMAT_R32G32B32_FLOAT;
+ case WINED3DFMT_R32G32B32_UINT: return DXGI_FORMAT_R32G32B32_UINT;
+ case WINED3DFMT_R32G32B32_SINT: return DXGI_FORMAT_R32G32B32_SINT;
+ case WINED3DFMT_R16G16B16A16_TYPELESS: return DXGI_FORMAT_R16G16B16A16_TYPELESS;
+ case WINED3DFMT_R16G16B16A16_FLOAT: return DXGI_FORMAT_R16G16B16A16_FLOAT;
+ case WINED3DFMT_R16G16B16A16_UNORM: return DXGI_FORMAT_R16G16B16A16_UNORM;
+ case WINED3DFMT_R16G16B16A16_UINT: return DXGI_FORMAT_R16G16B16A16_UINT;
+ case WINED3DFMT_R16G16B16A16_SNORM: return DXGI_FORMAT_R16G16B16A16_SNORM;
+ case WINED3DFMT_R16G16B16A16_SINT: return DXGI_FORMAT_R16G16B16A16_SINT;
+ case WINED3DFMT_R32G32_TYPELESS: return DXGI_FORMAT_R32G32_TYPELESS;
+ case WINED3DFMT_R32G32_FLOAT: return DXGI_FORMAT_R32G32_FLOAT;
+ case WINED3DFMT_R32G32_UINT: return DXGI_FORMAT_R32G32_UINT;
+ case WINED3DFMT_R32G32_SINT: return DXGI_FORMAT_R32G32_SINT;
+ case WINED3DFMT_R32G8X24_TYPELESS: return DXGI_FORMAT_R32G8X24_TYPELESS;
+ case WINED3DFMT_D32_FLOAT_S8X24_UINT: return DXGI_FORMAT_D32_FLOAT_S8X24_UINT;
+ case WINED3DFMT_R32_FLOAT_X8X24_TYPELESS: return DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS;
+ case WINED3DFMT_X32_TYPELESS_G8X24_UINT: return DXGI_FORMAT_X32_TYPELESS_G8X24_UINT;
+ case WINED3DFMT_R10G10B10A2_TYPELESS: return DXGI_FORMAT_R10G10B10A2_TYPELESS;
+ case WINED3DFMT_R10G10B10A2_UNORM: return DXGI_FORMAT_R10G10B10A2_UNORM;
+ case WINED3DFMT_R10G10B10A2_UINT: return DXGI_FORMAT_R10G10B10A2_UINT;
+ case WINED3DFMT_R11G11B10_FLOAT: return DXGI_FORMAT_R11G11B10_FLOAT;
+ case WINED3DFMT_R8G8B8A8_TYPELESS: return DXGI_FORMAT_R8G8B8A8_TYPELESS;
+ case WINED3DFMT_R8G8B8A8_UNORM: return DXGI_FORMAT_R8G8B8A8_UNORM;
+ case WINED3DFMT_R8G8B8A8_UNORM_SRGB: return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB;
+ case WINED3DFMT_R8G8B8A8_UINT: return DXGI_FORMAT_R8G8B8A8_UINT;
+ case WINED3DFMT_R8G8B8A8_SNORM: return DXGI_FORMAT_R8G8B8A8_SNORM;
+ case WINED3DFMT_R8G8B8A8_SINT: return DXGI_FORMAT_R8G8B8A8_SINT;
+ case WINED3DFMT_R16G16_TYPELESS: return DXGI_FORMAT_R16G16_TYPELESS;
+ case WINED3DFMT_R16G16_FLOAT: return DXGI_FORMAT_R16G16_FLOAT;
+ case WINED3DFMT_R16G16_UNORM: return DXGI_FORMAT_R16G16_UNORM;
+ case WINED3DFMT_R16G16_UINT: return DXGI_FORMAT_R16G16_UINT;
+ case WINED3DFMT_R16G16_SNORM: return DXGI_FORMAT_R16G16_SNORM;
+ case WINED3DFMT_R16G16_SINT: return DXGI_FORMAT_R16G16_SINT;
+ case WINED3DFMT_R32_TYPELESS: return DXGI_FORMAT_R32_TYPELESS;
+ case WINED3DFMT_D32_FLOAT: return DXGI_FORMAT_D32_FLOAT;
+ case WINED3DFMT_R32_FLOAT: return DXGI_FORMAT_R32_FLOAT;
+ case WINED3DFMT_R32_UINT: return DXGI_FORMAT_R32_UINT;
+ case WINED3DFMT_R32_SINT: return DXGI_FORMAT_R32_SINT;
+ case WINED3DFMT_R24G8_TYPELESS: return DXGI_FORMAT_R24G8_TYPELESS;
+ case WINED3DFMT_D24_UNORM_S8_UINT: return DXGI_FORMAT_D24_UNORM_S8_UINT;
+ case WINED3DFMT_R24_UNORM_X8_TYPELESS: return DXGI_FORMAT_R24_UNORM_X8_TYPELESS;
+ case WINED3DFMT_X24_TYPELESS_G8_UINT: return DXGI_FORMAT_X24_TYPELESS_G8_UINT;
+ case WINED3DFMT_R8G8_TYPELESS: return DXGI_FORMAT_R8G8_TYPELESS;
+ case WINED3DFMT_R8G8_UNORM: return DXGI_FORMAT_R8G8_UNORM;
+ case WINED3DFMT_R8G8_UINT: return DXGI_FORMAT_R8G8_UINT;
+ case WINED3DFMT_R8G8_SNORM: return DXGI_FORMAT_R8G8_SNORM;
+ case WINED3DFMT_R8G8_SINT: return DXGI_FORMAT_R8G8_SINT;
+ case WINED3DFMT_R16_TYPELESS: return DXGI_FORMAT_R16_TYPELESS;
+ case WINED3DFMT_R16_FLOAT: return DXGI_FORMAT_R16_FLOAT;
+ case WINED3DFMT_D16_UNORM: return DXGI_FORMAT_D16_UNORM;
+ case WINED3DFMT_R16_UNORM: return DXGI_FORMAT_R16_UNORM;
+ case WINED3DFMT_R16_UINT: return DXGI_FORMAT_R16_UINT;
+ case WINED3DFMT_R16_SNORM: return DXGI_FORMAT_R16_SNORM;
+ case WINED3DFMT_R16_SINT: return DXGI_FORMAT_R16_SINT;
+ case WINED3DFMT_R8_TYPELESS: return DXGI_FORMAT_R8_TYPELESS;
+ case WINED3DFMT_R8_UNORM: return DXGI_FORMAT_R8_UNORM;
+ case WINED3DFMT_R8_UINT: return DXGI_FORMAT_R8_UINT;
+ case WINED3DFMT_R8_SNORM: return DXGI_FORMAT_R8_SNORM;
+ case WINED3DFMT_R8_SINT: return DXGI_FORMAT_R8_SINT;
+ case WINED3DFMT_A8_UNORM: return DXGI_FORMAT_A8_UNORM;
+ case WINED3DFMT_R1_UNORM: return DXGI_FORMAT_R1_UNORM;
+ case WINED3DFMT_R9G9B9E5_SHAREDEXP: return DXGI_FORMAT_R9G9B9E5_SHAREDEXP;
+ case WINED3DFMT_R8G8_B8G8_UNORM: return DXGI_FORMAT_R8G8_B8G8_UNORM;
+ case WINED3DFMT_G8R8_G8B8_UNORM: return DXGI_FORMAT_G8R8_G8B8_UNORM;
+ case WINED3DFMT_BC1_TYPELESS: return DXGI_FORMAT_BC1_TYPELESS;
+ case WINED3DFMT_BC1_UNORM: return DXGI_FORMAT_BC1_UNORM;
+ case WINED3DFMT_BC1_UNORM_SRGB: return DXGI_FORMAT_BC1_UNORM_SRGB;
+ case WINED3DFMT_BC2_TYPELESS: return DXGI_FORMAT_BC2_TYPELESS;
+ case WINED3DFMT_BC2_UNORM: return DXGI_FORMAT_BC2_UNORM;
+ case WINED3DFMT_BC2_UNORM_SRGB: return DXGI_FORMAT_BC2_UNORM_SRGB;
+ case WINED3DFMT_BC3_TYPELESS: return DXGI_FORMAT_BC3_TYPELESS;
+ case WINED3DFMT_BC3_UNORM: return DXGI_FORMAT_BC3_UNORM;
+ case WINED3DFMT_BC3_UNORM_SRGB: return DXGI_FORMAT_BC3_UNORM_SRGB;
+ case WINED3DFMT_BC4_TYPELESS: return DXGI_FORMAT_BC4_TYPELESS;
+ case WINED3DFMT_BC4_UNORM: return DXGI_FORMAT_BC4_UNORM;
+ case WINED3DFMT_BC4_SNORM: return DXGI_FORMAT_BC4_SNORM;
+ case WINED3DFMT_BC5_TYPELESS: return DXGI_FORMAT_BC5_TYPELESS;
+ case WINED3DFMT_BC5_UNORM: return DXGI_FORMAT_BC5_UNORM;
+ case WINED3DFMT_BC5_SNORM: return DXGI_FORMAT_BC5_SNORM;
+ case WINED3DFMT_B5G6R5_UNORM: return DXGI_FORMAT_B5G6R5_UNORM;
+ case WINED3DFMT_B5G5R5A1_UNORM: return DXGI_FORMAT_B5G5R5A1_UNORM;
+ case WINED3DFMT_B8G8R8A8_UNORM: return DXGI_FORMAT_B8G8R8A8_UNORM;
+ case WINED3DFMT_B8G8R8X8_UNORM: return DXGI_FORMAT_B8G8R8X8_UNORM;
+ case WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM: return DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM;
+ case WINED3DFMT_B8G8R8A8_TYPELESS: return DXGI_FORMAT_B8G8R8A8_TYPELESS;
+ case WINED3DFMT_B8G8R8A8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
+ case WINED3DFMT_B8G8R8X8_TYPELESS: return DXGI_FORMAT_B8G8R8X8_TYPELESS;
+ case WINED3DFMT_B8G8R8X8_UNORM_SRGB: return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB;
+ case WINED3DFMT_BC6H_TYPELESS: return DXGI_FORMAT_BC6H_TYPELESS;
+ case WINED3DFMT_BC6H_UF16: return DXGI_FORMAT_BC6H_UF16;
+ case WINED3DFMT_BC6H_SF16: return DXGI_FORMAT_BC6H_SF16;
+ case WINED3DFMT_BC7_TYPELESS: return DXGI_FORMAT_BC7_TYPELESS;
+ case WINED3DFMT_BC7_UNORM: return DXGI_FORMAT_BC7_UNORM;
+ case WINED3DFMT_BC7_UNORM_SRGB: return DXGI_FORMAT_BC7_UNORM_SRGB;
+ default:
+ FIXME("Unhandled wined3d format %#x.\n", format);
+ return DXGI_FORMAT_UNKNOWN;
+ }
+}
+
+enum wined3d_format_id wined3d_wined3dformat_from_dxgi_format(DXGI_FORMAT format)
+{
+ switch(format)
+ {
+ case DXGI_FORMAT_UNKNOWN: return WINED3DFMT_UNKNOWN;
+ case DXGI_FORMAT_R32G32B32A32_TYPELESS: return WINED3DFMT_R32G32B32A32_TYPELESS;
+ case DXGI_FORMAT_R32G32B32A32_FLOAT: return WINED3DFMT_R32G32B32A32_FLOAT;
+ case DXGI_FORMAT_R32G32B32A32_UINT: return WINED3DFMT_R32G32B32A32_UINT;
+ case DXGI_FORMAT_R32G32B32A32_SINT: return WINED3DFMT_R32G32B32A32_SINT;
+ case DXGI_FORMAT_R32G32B32_TYPELESS: return WINED3DFMT_R32G32B32_TYPELESS;
+ case DXGI_FORMAT_R32G32B32_FLOAT: return WINED3DFMT_R32G32B32_FLOAT;
+ case DXGI_FORMAT_R32G32B32_UINT: return WINED3DFMT_R32G32B32_UINT;
+ case DXGI_FORMAT_R32G32B32_SINT: return WINED3DFMT_R32G32B32_SINT;
+ case DXGI_FORMAT_R16G16B16A16_TYPELESS: return WINED3DFMT_R16G16B16A16_TYPELESS;
+ case DXGI_FORMAT_R16G16B16A16_FLOAT: return WINED3DFMT_R16G16B16A16_FLOAT;
+ case DXGI_FORMAT_R16G16B16A16_UNORM: return WINED3DFMT_R16G16B16A16_UNORM;
+ case DXGI_FORMAT_R16G16B16A16_UINT: return WINED3DFMT_R16G16B16A16_UINT;
+ case DXGI_FORMAT_R16G16B16A16_SNORM: return WINED3DFMT_R16G16B16A16_SNORM;
+ case DXGI_FORMAT_R16G16B16A16_SINT: return WINED3DFMT_R16G16B16A16_SINT;
+ case DXGI_FORMAT_R32G32_TYPELESS: return WINED3DFMT_R32G32_TYPELESS;
+ case DXGI_FORMAT_R32G32_FLOAT: return WINED3DFMT_R32G32_FLOAT;
+ case DXGI_FORMAT_R32G32_UINT: return WINED3DFMT_R32G32_UINT;
+ case DXGI_FORMAT_R32G32_SINT: return WINED3DFMT_R32G32_SINT;
+ case DXGI_FORMAT_R32G8X24_TYPELESS: return WINED3DFMT_R32G8X24_TYPELESS;
+ case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: return WINED3DFMT_D32_FLOAT_S8X24_UINT;
+ case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: return WINED3DFMT_R32_FLOAT_X8X24_TYPELESS;
+ case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: return WINED3DFMT_X32_TYPELESS_G8X24_UINT;
+ case DXGI_FORMAT_R10G10B10A2_TYPELESS: return WINED3DFMT_R10G10B10A2_TYPELESS;
+ case DXGI_FORMAT_R10G10B10A2_UNORM: return WINED3DFMT_R10G10B10A2_UNORM;
+ case DXGI_FORMAT_R10G10B10A2_UINT: return WINED3DFMT_R10G10B10A2_UINT;
+ case DXGI_FORMAT_R11G11B10_FLOAT: return WINED3DFMT_R11G11B10_FLOAT;
+ case DXGI_FORMAT_R8G8B8A8_TYPELESS: return WINED3DFMT_R8G8B8A8_TYPELESS;
+ case DXGI_FORMAT_R8G8B8A8_UNORM: return WINED3DFMT_R8G8B8A8_UNORM;
+ case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return WINED3DFMT_R8G8B8A8_UNORM_SRGB;
+ case DXGI_FORMAT_R8G8B8A8_UINT: return WINED3DFMT_R8G8B8A8_UINT;
+ case DXGI_FORMAT_R8G8B8A8_SNORM: return WINED3DFMT_R8G8B8A8_SNORM;
+ case DXGI_FORMAT_R8G8B8A8_SINT: return WINED3DFMT_R8G8B8A8_SINT;
+ case DXGI_FORMAT_R16G16_TYPELESS: return WINED3DFMT_R16G16_TYPELESS;
+ case DXGI_FORMAT_R16G16_FLOAT: return WINED3DFMT_R16G16_FLOAT;
+ case DXGI_FORMAT_R16G16_UNORM: return WINED3DFMT_R16G16_UNORM;
+ case DXGI_FORMAT_R16G16_UINT: return WINED3DFMT_R16G16_UINT;
+ case DXGI_FORMAT_R16G16_SNORM: return WINED3DFMT_R16G16_SNORM;
+ case DXGI_FORMAT_R16G16_SINT: return WINED3DFMT_R16G16_SINT;
+ case DXGI_FORMAT_R32_TYPELESS: return WINED3DFMT_R32_TYPELESS;
+ case DXGI_FORMAT_D32_FLOAT: return WINED3DFMT_D32_FLOAT;
+ case DXGI_FORMAT_R32_FLOAT: return WINED3DFMT_R32_FLOAT;
+ case DXGI_FORMAT_R32_UINT: return WINED3DFMT_R32_UINT;
+ case DXGI_FORMAT_R32_SINT: return WINED3DFMT_R32_SINT;
+ case DXGI_FORMAT_R24G8_TYPELESS: return WINED3DFMT_R24G8_TYPELESS;
+ case DXGI_FORMAT_D24_UNORM_S8_UINT: return WINED3DFMT_D24_UNORM_S8_UINT;
+ case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: return WINED3DFMT_R24_UNORM_X8_TYPELESS;
+ case DXGI_FORMAT_X24_TYPELESS_G8_UINT: return WINED3DFMT_X24_TYPELESS_G8_UINT;
+ case DXGI_FORMAT_R8G8_TYPELESS: return WINED3DFMT_R8G8_TYPELESS;
+ case DXGI_FORMAT_R8G8_UNORM: return WINED3DFMT_R8G8_UNORM;
+ case DXGI_FORMAT_R8G8_UINT: return WINED3DFMT_R8G8_UINT;
+ case DXGI_FORMAT_R8G8_SNORM: return WINED3DFMT_R8G8_SNORM;
+ case DXGI_FORMAT_R8G8_SINT: return WINED3DFMT_R8G8_SINT;
+ case DXGI_FORMAT_R16_TYPELESS: return WINED3DFMT_R16_TYPELESS;
+ case DXGI_FORMAT_R16_FLOAT: return WINED3DFMT_R16_FLOAT;
+ case DXGI_FORMAT_D16_UNORM: return WINED3DFMT_D16_UNORM;
+ case DXGI_FORMAT_R16_UNORM: return WINED3DFMT_R16_UNORM;
+ case DXGI_FORMAT_R16_UINT: return WINED3DFMT_R16_UINT;
+ case DXGI_FORMAT_R16_SNORM: return WINED3DFMT_R16_SNORM;
+ case DXGI_FORMAT_R16_SINT: return WINED3DFMT_R16_SINT;
+ case DXGI_FORMAT_R8_TYPELESS: return WINED3DFMT_R8_TYPELESS;
+ case DXGI_FORMAT_R8_UNORM: return WINED3DFMT_R8_UNORM;
+ case DXGI_FORMAT_R8_UINT: return WINED3DFMT_R8_UINT;
+ case DXGI_FORMAT_R8_SNORM: return WINED3DFMT_R8_SNORM;
+ case DXGI_FORMAT_R8_SINT: return WINED3DFMT_R8_SINT;
+ case DXGI_FORMAT_A8_UNORM: return WINED3DFMT_A8_UNORM;
+ case DXGI_FORMAT_R1_UNORM: return WINED3DFMT_R1_UNORM;
+ case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: return WINED3DFMT_R9G9B9E5_SHAREDEXP;
+ case DXGI_FORMAT_R8G8_B8G8_UNORM: return WINED3DFMT_R8G8_B8G8_UNORM;
+ case DXGI_FORMAT_G8R8_G8B8_UNORM: return WINED3DFMT_G8R8_G8B8_UNORM;
+ case DXGI_FORMAT_BC1_TYPELESS: return WINED3DFMT_BC1_TYPELESS;
+ case DXGI_FORMAT_BC1_UNORM: return WINED3DFMT_BC1_UNORM;
+ case DXGI_FORMAT_BC1_UNORM_SRGB: return WINED3DFMT_BC1_UNORM_SRGB;
+ case DXGI_FORMAT_BC2_TYPELESS: return WINED3DFMT_BC2_TYPELESS;
+ case DXGI_FORMAT_BC2_UNORM: return WINED3DFMT_BC2_UNORM;
+ case DXGI_FORMAT_BC2_UNORM_SRGB: return WINED3DFMT_BC2_UNORM_SRGB;
+ case DXGI_FORMAT_BC3_TYPELESS: return WINED3DFMT_BC3_TYPELESS;
+ case DXGI_FORMAT_BC3_UNORM: return WINED3DFMT_BC3_UNORM;
+ case DXGI_FORMAT_BC3_UNORM_SRGB: return WINED3DFMT_BC3_UNORM_SRGB;
+ case DXGI_FORMAT_BC4_TYPELESS: return WINED3DFMT_BC4_TYPELESS;
+ case DXGI_FORMAT_BC4_UNORM: return WINED3DFMT_BC4_UNORM;
+ case DXGI_FORMAT_BC4_SNORM: return WINED3DFMT_BC4_SNORM;
+ case DXGI_FORMAT_BC5_TYPELESS: return WINED3DFMT_BC5_TYPELESS;
+ case DXGI_FORMAT_BC5_UNORM: return WINED3DFMT_BC5_UNORM;
+ case DXGI_FORMAT_BC5_SNORM: return WINED3DFMT_BC5_SNORM;
+ case DXGI_FORMAT_B5G6R5_UNORM: return WINED3DFMT_B5G6R5_UNORM;
+ case DXGI_FORMAT_B5G5R5A1_UNORM: return WINED3DFMT_B5G5R5A1_UNORM;
+ case DXGI_FORMAT_B8G8R8A8_UNORM: return WINED3DFMT_B8G8R8A8_UNORM;
+ case DXGI_FORMAT_B8G8R8X8_UNORM: return WINED3DFMT_B8G8R8X8_UNORM;
+ case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: return WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM;
+ case DXGI_FORMAT_B8G8R8A8_TYPELESS: return WINED3DFMT_B8G8R8A8_TYPELESS;
+ case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: return WINED3DFMT_B8G8R8A8_UNORM_SRGB;
+ case DXGI_FORMAT_B8G8R8X8_TYPELESS: return WINED3DFMT_B8G8R8X8_TYPELESS;
+ case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: return WINED3DFMT_B8G8R8X8_UNORM_SRGB;
+ case DXGI_FORMAT_BC6H_TYPELESS: return WINED3DFMT_BC6H_TYPELESS;
+ case DXGI_FORMAT_BC6H_UF16: return WINED3DFMT_BC6H_UF16;
+ case DXGI_FORMAT_BC6H_SF16: return WINED3DFMT_BC6H_SF16;
+ case DXGI_FORMAT_BC7_TYPELESS: return WINED3DFMT_BC7_TYPELESS;
+ case DXGI_FORMAT_BC7_UNORM: return WINED3DFMT_BC7_UNORM;
+ case DXGI_FORMAT_BC7_UNORM_SRGB: return WINED3DFMT_BC7_UNORM_SRGB;
+ default:
+ FIXME("Unhandled DXGI_FORMAT %#x.\n", format);
+ return WINED3DFMT_UNKNOWN;
+ }
+}
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
index b034ba8..26adfd4 100644
--- a/dlls/wined3d/wined3d.spec
+++ b/dlls/wined3d/wined3d.spec
@@ -283,3 +283,6 @@
@ cdecl wined3d_vertex_declaration_decref(ptr)
@ cdecl wined3d_vertex_declaration_get_parent(ptr)
@ cdecl wined3d_vertex_declaration_incref(ptr)
+
+@ cdecl wined3d_dxgi_format_from_wined3dformat(long)
+@ cdecl wined3d_wined3dformat_from_dxgi_format(long)
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index e42ef77..847745c 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -31,6 +31,7 @@
#endif
#include "wine/list.h"
+#include "dxgiformat.h"
#define WINED3D_OK S_OK
@@ -2633,4 +2634,7 @@ static inline unsigned int wined3d_log2i(unsigned int x)
#endif
}
+DXGI_FORMAT wined3d_dxgi_format_from_wined3dformat(enum wined3d_format_id format);
+enum wined3d_format_id wined3d_wined3dformat_from_dxgi_format(DXGI_FORMAT format);
+
#endif /* __WINE_WINED3D_H */
--
2.9.3
More information about the wine-patches
mailing list