ReactOS 0.4.17-dev-934-g091855f
util.c File Reference
#include "d3dx9_private.h"
Include dependency graph for util.c:

Go to the source code of this file.

Macros

#define WINE_D3DX_TO_STR(x)   case x: return #x
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (d3dx)
 
D3DFORMAT d3dformat_from_d3dx_pixel_format_id (enum d3dx_pixel_format_id format)
 
enum d3dx_pixel_format_id d3dx_pixel_format_id_from_d3dformat (D3DFORMAT format)
 
HRESULT map_view_of_file (const WCHAR *filename, void **buffer, DWORD *length)
 
HRESULT load_resource_into_memory (HMODULE module, HRSRC resinfo, void **buffer, DWORD *length)
 
HRESULT write_buffer_to_file (const WCHAR *dst_filename, ID3DXBuffer *buffer)
 
const struct pixel_format_desc * get_d3dx_pixel_format_info (enum d3dx_pixel_format_id format)
 
const struct pixel_format_desc * get_format_info (D3DFORMAT format)
 
const struct pixel_format_desc * get_format_info_idx (int idx)
 
const char * debug_d3dxparameter_class (D3DXPARAMETER_CLASS c)
 
const char * debug_d3dxparameter_type (D3DXPARAMETER_TYPE t)
 
const char * debug_d3dxparameter_registerset (D3DXREGISTER_SET r)
 
BOOL WINAPI D3DXDebugMute (BOOL mute)
 
UINT WINAPI D3DXGetDriverLevel (struct IDirect3DDevice9 *device)
 

Variables

static const struct pixel_format_desc formats []
 

Macro Definition Documentation

◆ WINE_D3DX_TO_STR

#define WINE_D3DX_TO_STR (   x)    case x: return #x

Definition at line 326 of file util.c.

Function Documentation

◆ d3dformat_from_d3dx_pixel_format_id()

D3DFORMAT d3dformat_from_d3dx_pixel_format_id ( enum d3dx_pixel_format_id  format)

Definition at line 83 of file util.c.

84{
85 switch (format)
86 {
131 default:
133 FIXME("Unknown d3dx_pixel_format_id %u.\n", format);
134 return D3DFMT_UNKNOWN;
135 }
136}
#define FIXME(fmt,...)
Definition: precomp.h:53
@ D3DFMT_DXT5
Definition: d3d8types.h:638
@ D3DFMT_A1R5G5B5
Definition: d3d8types.h:608
@ D3DFMT_UYVY
Definition: d3d8types.h:632
@ D3DFMT_YUY2
Definition: d3d8types.h:633
@ D3DFMT_A8P8
Definition: d3d8types.h:617
@ D3DFMT_X1R5G5B5
Definition: d3d8types.h:607
@ D3DFMT_DXT2
Definition: d3d8types.h:635
@ D3DFMT_R8G8B8
Definition: d3d8types.h:603
@ D3DFMT_R3G3B2
Definition: d3d8types.h:610
@ D3DFMT_A8L8
Definition: d3d8types.h:621
@ D3DFMT_V16U16
Definition: d3d8types.h:628
@ D3DFMT_A8R8G8B8
Definition: d3d8types.h:604
@ D3DFMT_A2B10G10R10
Definition: d3d8types.h:614
@ D3DFMT_X8L8V8U8
Definition: d3d8types.h:626
@ D3DFMT_A8
Definition: d3d8types.h:611
@ D3DFMT_DXT1
Definition: d3d8types.h:634
@ D3DFMT_X4R4G4B4
Definition: d3d8types.h:613
@ D3DFMT_R5G6B5
Definition: d3d8types.h:606
@ D3DFMT_A8R3G3B2
Definition: d3d8types.h:612
@ D3DFMT_V8U8
Definition: d3d8types.h:624
@ D3DFMT_DXT4
Definition: d3d8types.h:637
@ D3DFMT_A4R4G4B4
Definition: d3d8types.h:609
@ D3DFMT_P8
Definition: d3d8types.h:618
@ D3DFMT_UNKNOWN
Definition: d3d8types.h:601
@ D3DFMT_DXT3
Definition: d3d8types.h:636
@ D3DFMT_X8R8G8B8
Definition: d3d8types.h:605
@ D3DFMT_L8
Definition: d3d8types.h:620
@ D3DFMT_G16R16
Definition: d3d8types.h:615
@ D3DFMT_A2W10V10U10
Definition: d3d8types.h:630
@ D3DFMT_Q8W8V8U8
Definition: d3d8types.h:627
@ D3DFMT_A4L4
Definition: d3d8types.h:622
@ D3DFMT_A32B32G32R32F
Definition: d3d9types.h:861
@ D3DFMT_G8R8_G8B8
Definition: d3d9types.h:831
@ D3DFMT_A16B16G16R16F
Definition: d3d9types.h:856
@ D3DFMT_R8G8_B8G8
Definition: d3d9types.h:832
@ D3DFMT_R32F
Definition: d3d9types.h:859
@ D3DFMT_X8B8G8R8
Definition: d3d9types.h:803
@ D3DFMT_Q16W16V16U16
Definition: d3d9types.h:852
@ D3DFMT_A2R10G10B10
Definition: d3d9types.h:805
@ D3DFMT_G32R32F
Definition: d3d9types.h:860
@ D3DFMT_A8B8G8R8
Definition: d3d9types.h:802
@ D3DFMT_A16B16G16R16
Definition: d3d9types.h:806
@ D3DFMT_L16
Definition: d3d9types.h:841
@ D3DFMT_G16R16F
Definition: d3d9types.h:855
@ D3DFMT_R16F
Definition: d3d9types.h:854
static BOOL is_internal_format(const struct pixel_format_desc *format)
@ D3DX_PIXEL_FORMAT_R16G16B16A16_UNORM
@ D3DX_PIXEL_FORMAT_R32G32_FLOAT
@ D3DX_PIXEL_FORMAT_U10V10W10_SNORM_A2_UNORM
@ D3DX_PIXEL_FORMAT_DXT4_UNORM
@ D3DX_PIXEL_FORMAT_B2G3R3_UNORM
@ D3DX_PIXEL_FORMAT_U8V8_SNORM_L8X8_UNORM
@ D3DX_PIXEL_FORMAT_B5G5R5A1_UNORM
@ D3DX_PIXEL_FORMAT_R32G32B32A32_FLOAT
@ D3DX_PIXEL_FORMAT_U8V8W8Q8_SNORM
@ D3DX_PIXEL_FORMAT_R16G16_UNORM
@ D3DX_PIXEL_FORMAT_B5G6R5_UNORM
@ D3DX_PIXEL_FORMAT_B10G10R10A2_UNORM
@ D3DX_PIXEL_FORMAT_A8_UNORM
@ D3DX_PIXEL_FORMAT_G8R8_G8B8_UNORM
@ D3DX_PIXEL_FORMAT_R16G16B16A16_FLOAT
@ D3DX_PIXEL_FORMAT_B8G8R8_UNORM
Definition: d3dx9_private.h:96
@ D3DX_PIXEL_FORMAT_R8G8B8X8_UNORM
@ D3DX_PIXEL_FORMAT_B2G3R3A8_UNORM
@ D3DX_PIXEL_FORMAT_UYVY
@ D3DX_PIXEL_FORMAT_U16V16_SNORM
@ D3DX_PIXEL_FORMAT_U16V16W16Q16_SNORM
@ D3DX_PIXEL_FORMAT_R16_FLOAT
@ D3DX_PIXEL_FORMAT_P8_UINT_A8_UNORM
@ D3DX_PIXEL_FORMAT_B4G4R4A4_UNORM
@ D3DX_PIXEL_FORMAT_B5G5R5X1_UNORM
@ D3DX_PIXEL_FORMAT_U8V8_SNORM
@ D3DX_PIXEL_FORMAT_B8G8R8X8_UNORM
Definition: d3dx9_private.h:98
@ D3DX_PIXEL_FORMAT_R8G8B8A8_UNORM
Definition: d3dx9_private.h:99
@ D3DX_PIXEL_FORMAT_DXT3_UNORM
@ D3DX_PIXEL_FORMAT_DXT2_UNORM
@ D3DX_PIXEL_FORMAT_R10G10B10A2_UNORM
@ D3DX_PIXEL_FORMAT_R16G16_FLOAT
@ D3DX_PIXEL_FORMAT_L8_UNORM
@ D3DX_PIXEL_FORMAT_YUY2
@ D3DX_PIXEL_FORMAT_R32_FLOAT
@ D3DX_PIXEL_FORMAT_L4A4_UNORM
@ D3DX_PIXEL_FORMAT_P8_UINT
@ D3DX_PIXEL_FORMAT_DXT1_UNORM
@ D3DX_PIXEL_FORMAT_L8A8_UNORM
@ D3DX_PIXEL_FORMAT_DXT5_UNORM
@ D3DX_PIXEL_FORMAT_L16_UNORM
@ D3DX_PIXEL_FORMAT_B8G8R8A8_UNORM
Definition: d3dx9_private.h:97
@ D3DX_PIXEL_FORMAT_B4G4R4X4_UNORM
@ D3DX_PIXEL_FORMAT_R8G8_B8G8_UNORM
const struct pixel_format_desc * get_d3dx_pixel_format_info(enum d3dx_pixel_format_id format)
Definition: util.c:297

Referenced by check_texture_requirements(), d3dximage_info_from_d3dx_image(), and D3DXSaveSurfaceToFileInMemory().

◆ d3dx_pixel_format_id_from_d3dformat()

enum d3dx_pixel_format_id d3dx_pixel_format_id_from_d3dformat ( D3DFORMAT  format)

Definition at line 138 of file util.c.

139{
140 switch (format)
141 {
186 default:
187 FIXME("No d3dx_pixel_format_id for D3DFORMAT %s.\n", debugstr_fourcc(format));
189 }
190}
@ D3DX_PIXEL_FORMAT_COUNT
static __inline const char * debugstr_fourcc(unsigned int cc)
Definition: debug.h:397

Referenced by get_format_info(), and wic_guid_from_d3dformat().

◆ D3DXDebugMute()

BOOL WINAPI D3DXDebugMute ( BOOL  mute)

Definition at line 394 of file util.c.

395{
396 return FALSE;
397}
#define FALSE
Definition: types.h:117

◆ D3DXGetDriverLevel()

UINT WINAPI D3DXGetDriverLevel ( struct IDirect3DDevice9 *  device)

Definition at line 403 of file util.c.

404{
405 return 900;
406}

◆ debug_d3dxparameter_class()

const char * debug_d3dxparameter_class ( D3DXPARAMETER_CLASS  c)

Definition at line 328 of file util.c.

329{
330 switch (c)
331 {
338 default:
339 FIXME("Unrecognized D3DXPARAMETER_CLASS %#x.\n", c);
340 return "unrecognized";
341 }
342}
#define WINE_D3DX_TO_STR(x)
Definition: util.c:326
@ D3DXPC_SCALAR
Definition: d3dx9shader.h:62
@ D3DXPC_MATRIX_COLUMNS
Definition: d3dx9shader.h:65
@ D3DXPC_STRUCT
Definition: d3dx9shader.h:67
@ D3DXPC_MATRIX_ROWS
Definition: d3dx9shader.h:64
@ D3DXPC_VECTOR
Definition: d3dx9shader.h:63
@ D3DXPC_OBJECT
Definition: d3dx9shader.h:66
const GLubyte * c
Definition: glext.h:8905

Referenced by d3dx_effect_GetMatrix(), d3dx_effect_GetMatrixArray(), d3dx_effect_GetMatrixPointerArray(), d3dx_effect_GetMatrixTranspose(), d3dx_effect_GetMatrixTransposeArray(), d3dx_effect_GetMatrixTransposePointerArray(), d3dx_effect_GetVector(), d3dx_effect_GetVectorArray(), d3dx_effect_SetBoolArray(), d3dx_effect_SetFloatArray(), d3dx_effect_SetIntArray(), d3dx_effect_SetMatrix(), d3dx_effect_SetMatrixArray(), d3dx_effect_SetMatrixPointerArray(), d3dx_effect_SetMatrixTranspose(), d3dx_effect_SetMatrixTransposeArray(), d3dx_effect_SetMatrixTransposePointerArray(), d3dx_effect_SetVector(), d3dx_effect_SetVectorArray(), d3dx_parse_effect_typedef(), d3dx_parse_init_value(), d3dx_parse_resource(), d3dx_parse_value(), ID3DXConstantTableImpl_SetValue(), parse_ctab_constant_type(), set(), set_matrix_array(), set_matrix_pointer_array(), set_scalar(), set_scalar_array(), set_vector(), and set_vector_array().

◆ debug_d3dxparameter_registerset()

const char * debug_d3dxparameter_registerset ( D3DXREGISTER_SET  r)

Definition at line 374 of file util.c.

375{
376 switch (r)
377 {
382 default:
383 FIXME("Unrecognized D3DXREGISTER_SET %#x.\n", r);
384 return "unrecognized";
385 }
386}
@ D3DXRS_FLOAT4
Definition: d3dx9shader.h:55
@ D3DXRS_BOOL
Definition: d3dx9shader.h:53
@ D3DXRS_INT4
Definition: d3dx9shader.h:54
@ D3DXRS_SAMPLER
Definition: d3dx9shader.h:56
GLdouble GLdouble GLdouble r
Definition: gl.h:2055

Referenced by ID3DXConstantTableImpl_SetDefaults(), parse_ctab_constant_type(), and set().

◆ debug_d3dxparameter_type()

const char * debug_d3dxparameter_type ( D3DXPARAMETER_TYPE  t)

Definition at line 344 of file util.c.

345{
346 switch (t)
347 {
368 default:
369 FIXME("Unrecognized D3DXPARAMETER_TYP %#x.\n", t);
370 return "unrecognized";
371 }
372}
@ D3DXPT_STRING
Definition: d3dx9shader.h:77
@ D3DXPT_TEXTURE
Definition: d3dx9shader.h:78
@ D3DXPT_SAMPLER3D
Definition: d3dx9shader.h:86
@ D3DXPT_UNSUPPORTED
Definition: d3dx9shader.h:92
@ D3DXPT_VERTEXSHADER
Definition: d3dx9shader.h:89
@ D3DXPT_VERTEXFRAGMENT
Definition: d3dx9shader.h:91
@ D3DXPT_TEXTURE1D
Definition: d3dx9shader.h:79
@ D3DXPT_SAMPLERCUBE
Definition: d3dx9shader.h:87
@ D3DXPT_FLOAT
Definition: d3dx9shader.h:76
@ D3DXPT_TEXTURECUBE
Definition: d3dx9shader.h:82
@ D3DXPT_PIXELSHADER
Definition: d3dx9shader.h:88
@ D3DXPT_PIXELFRAGMENT
Definition: d3dx9shader.h:90
@ D3DXPT_BOOL
Definition: d3dx9shader.h:74
@ D3DXPT_INT
Definition: d3dx9shader.h:75
@ D3DXPT_VOID
Definition: d3dx9shader.h:73
@ D3DXPT_SAMPLER
Definition: d3dx9shader.h:83
@ D3DXPT_SAMPLER1D
Definition: d3dx9shader.h:84
@ D3DXPT_SAMPLER2D
Definition: d3dx9shader.h:85
@ D3DXPT_TEXTURE3D
Definition: d3dx9shader.h:81
@ D3DXPT_TEXTURE2D
Definition: d3dx9shader.h:80
GLdouble GLdouble t
Definition: gl.h:2047

Referenced by d3dx_effect_GetValue(), d3dx_parse_effect_typedef(), d3dx_parse_resource(), d3dx_parse_value(), free_parameter(), free_parameter_object_data(), parse_ctab_constant_type(), and set_value().

◆ get_d3dx_pixel_format_info()

◆ get_format_info()

◆ get_format_info_idx()

const struct pixel_format_desc * get_format_info_idx ( int  idx)

Definition at line 321 of file util.c.

322{
324}
#define NULL
Definition: types.h:112
unsigned int idx
Definition: utils.c:40

Referenced by check_texture_requirements().

◆ load_resource_into_memory()

HRESULT load_resource_into_memory ( HMODULE  module,
HRSRC  resinfo,
void **  buffer,
DWORD *  length 
)

Definition at line 261 of file util.c.

262{
264
265 *length = SizeofResource(module, resinfo);
266 if(*length == 0) return HRESULT_FROM_WIN32(GetLastError());
267
268 resource = LoadResource(module, resinfo);
270
272 if(*buffer == NULL) return HRESULT_FROM_WIN32(GetLastError());
273
274 return S_OK;
275}
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
Definition: res.c:568
LPVOID WINAPI LockResource(HGLOBAL handle)
Definition: res.c:550
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
Definition: res.c:532
GLuint buffer
Definition: glext.h:5915
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
#define S_OK
Definition: intsafe.h:52
#define resource
Definition: kernel32.h:9
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
Definition: winerror.h:210

Referenced by D3DXAssembleShaderFromResourceA(), D3DXAssembleShaderFromResourceW(), D3DXCompileShaderFromResourceA(), D3DXCompileShaderFromResourceW(), D3DXCreateEffectCompilerFromResourceA(), D3DXCreateEffectCompilerFromResourceW(), D3DXCreateEffectFromResourceExA(), D3DXCreateEffectFromResourceExW(), D3DXCreateTextureFromResourceExA(), D3DXCreateTextureFromResourceExW(), D3DXGetImageInfoFromResourceA(), D3DXGetImageInfoFromResourceW(), D3DXLoadMeshFromXResource(), D3DXLoadSurfaceFromResourceA(), D3DXLoadSurfaceFromResourceW(), D3DXPreprocessShaderFromResourceA(), and D3DXPreprocessShaderFromResourceW().

◆ map_view_of_file()

HRESULT map_view_of_file ( const WCHAR *  filename,
void **  buffer,
DWORD *  length 
)

Definition at line 211 of file util.c.

212{
213 HANDLE hfile, hmapping = NULL;
214
216 if(hfile == INVALID_HANDLE_VALUE) goto error;
217
218 *length = GetFileSize(hfile, NULL);
219 if(*length == INVALID_FILE_SIZE) goto error;
220
221 hmapping = CreateFileMappingW(hfile, NULL, PAGE_READONLY, 0, 0, NULL);
222 if(!hmapping) goto error;
223
224 *buffer = MapViewOfFile(hmapping, FILE_MAP_READ, 0, 0, 0);
225 if(*buffer == NULL) goto error;
226
227 CloseHandle(hmapping);
228 CloseHandle(hfile);
229
230 return S_OK;
231
232error:
233 if (hmapping)
234 CloseHandle(hmapping);
235 if (hfile != INVALID_HANDLE_VALUE)
236 CloseHandle(hfile);
238}
#define CloseHandle
Definition: compat.h:739
#define PAGE_READONLY
Definition: compat.h:138
#define OPEN_EXISTING
Definition: compat.h:775
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define CreateFileMappingW(a, b, c, d, e, f)
Definition: compat.h:744
#define GENERIC_READ
Definition: compat.h:135
#define CreateFileW
Definition: compat.h:741
#define FILE_MAP_READ
Definition: compat.h:776
#define MapViewOfFile
Definition: compat.h:745
#define FILE_SHARE_READ
Definition: compat.h:136
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
Definition: fileinfo.c:331
const char * filename
Definition: ioapi.h:137
#define error(str)
Definition: mkdosfs.c:1605
#define INVALID_FILE_SIZE
Definition: winbase.h:528

Referenced by D3DXCreateCubeTextureFromFileA(), D3DXCreateCubeTextureFromFileExA(), D3DXCreateCubeTextureFromFileExW(), D3DXCreateCubeTextureFromFileW(), D3DXCreateEffectCompilerFromFileW(), D3DXCreateTextureFromFileExW(), D3DXCreateVolumeTextureFromFileA(), D3DXCreateVolumeTextureFromFileExA(), D3DXCreateVolumeTextureFromFileExW(), D3DXCreateVolumeTextureFromFileW(), D3DXGetImageInfoFromFileW(), D3DXLoadMeshFromXW(), D3DXLoadMeshHierarchyFromXW(), D3DXLoadSurfaceFromFileW(), and D3DXLoadVolumeFromFileW().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( d3dx  )

◆ write_buffer_to_file()

HRESULT write_buffer_to_file ( const WCHAR *  dst_filename,
ID3DXBuffer *  buffer 
)

Definition at line 277 of file util.c.

278{
279 HRESULT hr = S_OK;
280 void *buffer_pointer;
282 DWORD bytes_written;
286
287 buffer_pointer = ID3DXBuffer_GetBufferPointer(buffer);
289
290 if (!WriteFile(file, buffer_pointer, buffer_size, &bytes_written, NULL))
292
294 return hr;
295}
HRESULT hr
Definition: delayimp.cpp:582
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
Definition: rw.c:25
#define ID3DXBuffer_GetBufferSize(p)
Definition: d3dx9core.h:86
#define ID3DXBuffer_GetBufferPointer(p)
Definition: d3dx9core.h:85
unsigned long DWORD
Definition: ntddk_ex.h:95
#define CREATE_ALWAYS
Definition: disk.h:72
#define GENERIC_WRITE
Definition: nt_native.h:90
wchar_t const *const size_t const buffer_size
Definition: stat.cpp:95
Definition: fci.c:123

Referenced by D3DXSaveSurfaceToFileA(), D3DXSaveSurfaceToFileW(), D3DXSaveTextureToFileA(), and D3DXSaveTextureToFileW().

Variable Documentation

◆ formats