101 switch (wic_dimension)
274 return format_map[
i].dst;
321 ID3DX10DataProcessor *processor;
322 ID3DX10DataLoader *
loader;
357 TRACE(
"module %p, resource %s, pump %p, info %p, result %p.\n",
362 ID3DX10DataProcessor *processor;
363 ID3DX10DataLoader *
loader;
395 TRACE(
"module %p, resource %s, pump %p, info %p, result %p.\n",
400 ID3DX10DataProcessor *processor;
401 ID3DX10DataLoader *
loader;
434 unsigned int frame_count;
435 GUID container_format;
443 WARN(
"Failed to initialize stream.\n");
450 hr = IWICBitmapDecoder_GetContainerFormat(
decoder, &container_format);
461 hr = IWICBitmapDecoder_GetFrameCount(
decoder, &frame_count);
464 hr = IWICBitmapDecoder_GetFrame(
decoder, 0, &frame);
467 hr = IWICBitmapFrameDecode_GetSize(frame, &img_info->
Width, &img_info->
Height);
473 hr = IWICBitmapDecoder_QueryInterface(
decoder, &IID_IWICDdsDecoder, (
void **)&dds_decoder);
476 hr = IWICDdsDecoder_GetParameters(dds_decoder, &dds_params);
503 IWICDdsDecoder_Release(dds_decoder);
505 IWICBitmapFrameDecode_Release(frame);
507 IWICBitmapDecoder_Release(
decoder);
509 IWICStream_Release(
stream);
511 IWICImagingFactory_Release(
factory);
515 WARN(
"Invalid or unsupported image file.\n");
526 TRACE(
"src_data %p, src_data_size %Iu, pump %p, img_info %p, hresult %p.\n",
527 src_data, src_data_size, pump, img_info,
result);
534 ID3DX10DataProcessor *processor;
535 ID3DX10DataLoader *
loader;
581 TRACE(
"device %p, src_file %s, load_info %p, pump %p, texture %p, hresult %p.\n",
610 TRACE(
"device %p, src_file %s, load_info %p, pump %p, texture %p, hresult %p.\n",
620 ID3DX10DataProcessor *processor;
621 ID3DX10DataLoader *
loader;
655 TRACE(
"device %p, module %p, resource %s, load_info %p, pump %p, texture %p, hresult %p.\n",
663 ID3DX10DataProcessor *processor;
664 ID3DX10DataLoader *
loader;
696 TRACE(
"device %p, module %p, resource %s, load_info %p, pump %p, texture %p, hresult %p.\n",
704 ID3DX10DataProcessor *processor;
705 ID3DX10DataLoader *
loader;
787 if (
FAILED(
hr = IWICBitmapFrameDecode_GetPixelFormat(frame, &src_format)))
797 if (
FAILED(
hr = IWICImagingFactory_CreateFormatConverter(
factory, &converter)))
799 if (
FAILED(
hr = IWICFormatConverter_CanConvert(converter, &src_format,
dst_format, &can_convert)))
801 IWICFormatConverter_Release(converter);
806 WARN(
"Format converting %s to %s is not supported by WIC.\n",
808 IWICFormatConverter_Release(converter);
814 IWICFormatConverter_Release(converter);
818 IWICFormatConverter_Release(converter);
825 unsigned int stride, frame_size,
i,
j;
838 FIXME(
"load_info->Width is ignored.\n");
840 FIXME(
"load_info->Height is ignored.\n");
842 FIXME(
"load_info->Depth is ignored.\n");
844 FIXME(
"load_info->FirstMipLevel is ignored.\n");
846 FIXME(
"load_info->MipLevels is ignored.\n");
848 FIXME(
"load_info->Usage is ignored.\n");
850 FIXME(
"load_info->BindFlags is ignored.\n");
852 FIXME(
"load_info->CpuAccessFlags is ignored.\n");
854 FIXME(
"load_info->MiscFlags is ignored.\n");
856 FIXME(
"load_info->Format is ignored.\n");
858 FIXME(
"load_info->Filter is ignored.\n");
860 FIXME(
"load_info->MipFilter is ignored.\n");
862 FIXME(
"load_info->pSrcInfo is ignored.\n");
869 FIXME(
"img_info.ArraySize = %u not supported.\n", img_info.
ArraySize);
888 if (
FAILED(
hr = IWICBitmapDecoder_QueryInterface(
decoder, &IID_IWICDdsDecoder, (
void **)&dds_decoder)))
895 if (
FAILED(
hr = IWICDdsDecoder_GetFrame(dds_decoder,
i,
j, 0, &frame)))
897 if (
FAILED(
hr = IWICBitmapFrameDecode_QueryInterface(frame,
898 &IID_IWICDdsFrameDecode, (
void **)&dds_frame)))
909 size +=
sizeof(**resource_data) + frame_size;
911 IWICDdsFrameDecode_Release(dds_frame);
913 IWICBitmapFrameDecode_Release(frame);
930 if (
FAILED(
hr = IWICDdsDecoder_GetFrame(dds_decoder,
i,
j, 0, &frame)))
932 if (
FAILED(
hr = IWICBitmapFrameDecode_QueryInterface(frame,
933 &IID_IWICDdsFrameDecode, (
void **)&dds_frame)))
951 FIXME(
"Unsupported DXGI format %#x.\n", img_info.
Format);
958 IWICDdsFrameDecode_Release(dds_frame);
960 IWICBitmapFrameDecode_Release(frame);
965 (*resource_data)[
i * img_info.
MipLevels +
j].SysMemSlicePitch = frame_size;
982 buffer = res_data +
sizeof(**resource_data);
987 FIXME(
"Unsupported DXGI format %#x.\n", img_info.
Format);
994 (*resource_data)->pSysMem =
buffer;
995 (*resource_data)->SysMemPitch =
stride;
996 (*resource_data)->SysMemSlicePitch = frame_size;
1012 IWICDdsDecoder_Release(dds_decoder);
1014 IWICDdsFrameDecode_Release(dds_frame);
1017 IWICBitmapFrameDecode_Release(frame);
1019 IWICBitmapDecoder_Release(
decoder);
1021 IWICStream_Release(
stream);
1023 IWICImagingFactory_Release(
factory);
1034 memset(&texture_2d_desc, 0,
sizeof(texture_2d_desc));
1057 TRACE(
"device %p, src_data %p, src_data_size %Iu, load_info %p, pump %p, texture %p, hresult %p.\n",
1058 device, src_data, src_data_size, load_info, pump,
texture, hresult);
1067 ID3DX10DataProcessor *processor;
1068 ID3DX10DataLoader *
loader;
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
@ D3D10_RESOURCE_MISC_TEXTURECUBE
@ D3D10_RESOURCE_DIMENSION_TEXTURE1D
@ D3D10_RESOURCE_DIMENSION_UNKNOWN
@ D3D10_RESOURCE_DIMENSION_TEXTURE3D
@ D3D10_RESOURCE_DIMENSION_TEXTURE2D
@ D3D10_BIND_SHADER_RESOURCE
#define ID3DX10ThreadPump_AddWorkItem(p, a, b, c, d)
#define ID3DX10DataLoader_Destroy(p)
#define ID3DX10DataProcessor_Destroy(p)
HRESULT WINAPI D3DX10CreateAsyncTextureProcessor(ID3D10Device *device, D3DX10_IMAGE_LOAD_INFO *load_info, ID3DX10DataProcessor **processor)
HRESULT load_resourceA(HMODULE module, const char *resource, void **data, DWORD *size)
HRESULT WINAPI D3DX10CreateAsyncResourceLoaderA(HMODULE module, const char *resource, ID3DX10DataLoader **loader)
HRESULT WINAPI D3DX10CreateAsyncFileLoaderW(const WCHAR *filename, ID3DX10DataLoader **loader)
HRESULT WINAPI D3DX10CreateAsyncMemoryLoader(const void *data, SIZE_T data_size, ID3DX10DataLoader **loader)
HRESULT load_file(const WCHAR *path, void **data, DWORD *size)
HRESULT WINAPI D3DX10CreateAsyncTextureInfoProcessor(D3DX10_IMAGE_INFO *info, ID3DX10DataProcessor **processor)
HRESULT load_resourceW(HMODULE module, const WCHAR *resource, void **data, DWORD *size)
HRESULT WINAPI D3DX10CreateAsyncResourceLoaderW(HMODULE module, const WCHAR *resource, ID3DX10DataLoader **loader)
static HRESULT convert_image(IWICImagingFactory *factory, IWICBitmapFrameDecode *frame, const GUID *dst_format, unsigned int stride, unsigned int frame_size, BYTE *buffer)
static HRESULT create_texture(ID3D10Device *device, const void *data, SIZE_T size, D3DX10_IMAGE_LOAD_INFO *load_info, ID3D10Resource **texture)
HRESULT load_texture_data(const void *data, SIZE_T size, D3DX10_IMAGE_LOAD_INFO *load_info, D3D10_SUBRESOURCE_DATA **resource_data)
HRESULT WINAPI D3DX10CreateTextureFromResourceA(ID3D10Device *device, HMODULE module, const char *resource, D3DX10_IMAGE_LOAD_INFO *load_info, ID3DX10ThreadPump *pump, ID3D10Resource **texture, HRESULT *hresult)
HRESULT WINAPI D3DX10GetImageInfoFromFileA(const char *src_file, ID3DX10ThreadPump *pump, D3DX10_IMAGE_INFO *info, HRESULT *result)
static const GUID * dxgi_format_to_wic_guid(DXGI_FORMAT format)
HRESULT WINAPI D3DX10CreateTextureFromFileA(ID3D10Device *device, const char *src_file, D3DX10_IMAGE_LOAD_INFO *load_info, ID3DX10ThreadPump *pump, ID3D10Resource **texture, HRESULT *hresult)
HRESULT create_d3d_texture(ID3D10Device *device, D3DX10_IMAGE_LOAD_INFO *load_info, D3D10_SUBRESOURCE_DATA *resource_data, ID3D10Resource **texture)
HRESULT get_image_info(const void *data, SIZE_T size, D3DX10_IMAGE_INFO *img_info)
const GUID * wic_container_guid
static D3DX10_IMAGE_FILE_FORMAT wic_container_guid_to_file_format(GUID *container_format)
HRESULT WINAPI D3DX10CreateTextureFromFileW(ID3D10Device *device, const WCHAR *src_file, D3DX10_IMAGE_LOAD_INFO *load_info, ID3DX10ThreadPump *pump, ID3D10Resource **texture, HRESULT *hresult)
void init_load_info(const D3DX10_IMAGE_LOAD_INFO *load_info, D3DX10_IMAGE_LOAD_INFO *out)
HRESULT WINAPI D3DX10GetImageInfoFromResourceA(HMODULE module, const char *resource, ID3DX10ThreadPump *pump, D3DX10_IMAGE_INFO *info, HRESULT *result)
HRESULT WINAPI D3DX10CreateTextureFromMemory(ID3D10Device *device, const void *src_data, SIZE_T src_data_size, D3DX10_IMAGE_LOAD_INFO *load_info, ID3DX10ThreadPump *pump, ID3D10Resource **texture, HRESULT *hresult)
HRESULT WINAPI D3DX10CreateTextureFromResourceW(ID3D10Device *device, HMODULE module, const WCHAR *resource, D3DX10_IMAGE_LOAD_INFO *load_info, ID3DX10ThreadPump *pump, ID3D10Resource **texture, HRESULT *hresult)
static unsigned int get_bpp_from_format(DXGI_FORMAT format)
static HRESULT dds_get_frame_info(IWICDdsFrameDecode *frame, const D3DX10_IMAGE_INFO *img_info, WICDdsFormatInfo *format_info, unsigned int *stride, unsigned int *frame_size)
static const struct @278 wic_pixel_formats[]
static const struct @277 file_formats[]
HRESULT WINAPI D3DX10GetImageInfoFromMemory(const void *src_data, SIZE_T src_data_size, ID3DX10ThreadPump *pump, D3DX10_IMAGE_INFO *img_info, HRESULT *result)
HRESULT WINAPI D3DX10GetImageInfoFromFileW(const WCHAR *src_file, ID3DX10ThreadPump *pump, D3DX10_IMAGE_INFO *info, HRESULT *result)
HRESULT WINAPI D3DX10GetImageInfoFromResourceW(HMODULE module, const WCHAR *resource, ID3DX10ThreadPump *pump, D3DX10_IMAGE_INFO *info, HRESULT *result)
HRESULT WINAPI WICCreateImagingFactory_Proxy(UINT sdk_version, IWICImagingFactory **imaging_factory)
static D3D10_RESOURCE_DIMENSION wic_dimension_to_d3dx10_dimension(WICDdsDimension wic_dimension)
static DXGI_FORMAT get_d3dx10_dds_format(DXGI_FORMAT format)
D3DX10_IMAGE_FILE_FORMAT d3dx_file_format
#define MultiByteToWideChar
GLint GLint GLsizei GLsizei height
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei width
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static D3D_DRIVER_TYPE HMODULE UINT const D3D_FEATURE_LEVEL UINT UINT sdk_version
static const char * dst_format
#define IsEqualGUID(rguid1, rguid2)
DXGI_SAMPLE_DESC SampleDesc
D3D10_RESOURCE_DIMENSION ResourceDimension
D3DX10_IMAGE_FILE_FORMAT ImageFileFormat
D3DX10_IMAGE_INFO * pSrcInfo
WICDdsDimension Dimension
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
DWORD WINAPI GetLastError(void)
@ WICBitmapDitherTypeErrorDiffusion
@ WICBitmapPaletteTypeCustom
static HRESULT HRESULT_FROM_WIN32(unsigned int x)