2 * Copyright (C) 2002 Raphael Junqueira
3 * Copyright (C) 2008 David Adam
4 * Copyright (C) 2008 Tony Wasserka
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #ifndef __WINE_D3DX9_36_PRIVATE_H
23 #define __WINE_D3DX9_36_PRIVATE_H
26 #include <wine/port.h>
28 #define WIN32_NO_STATUS
30 #define COM_NO_WINDOWS_H
37 #define NONAMELESSUNION
38 #define NONAMELESSSTRUCT
46 #include <wine/unicode.h>
48 #include <wine/debug.h>
49 WINE_DEFAULT_DEBUG_CHANNEL(d3dx
);
51 #define ARRAY_SIZE(array) (sizeof(array)/sizeof(*array))
65 /* for internal use */
67 FORMAT_ARGB
, /* unsigned */
68 FORMAT_ARGBF16
,/* float 16 */
69 FORMAT_ARGBF
, /* float */
75 struct pixel_format_desc
{
82 UINT block_byte_count
;
83 enum format_type type
;
84 void (*from_rgba
)(const struct vec4
*src
, struct vec4
*dst
);
85 void (*to_rgba
)(const struct vec4
*src
, struct vec4
*dst
, const PALETTEENTRY
*palette
);
88 HRESULT
map_view_of_file(const WCHAR
*filename
, void **buffer
, DWORD
*length
) DECLSPEC_HIDDEN
;
89 HRESULT
load_resource_into_memory(HMODULE module
, HRSRC resinfo
, LPVOID
*buffer
, DWORD
*length
) DECLSPEC_HIDDEN
;
91 HRESULT
write_buffer_to_file(const WCHAR
*filename
, ID3DXBuffer
*buffer
) DECLSPEC_HIDDEN
;
93 const struct pixel_format_desc
*get_format_info(D3DFORMAT format
) DECLSPEC_HIDDEN
;
94 const struct pixel_format_desc
*get_format_info_idx(int idx
) DECLSPEC_HIDDEN
;
96 void copy_pixels(const BYTE
*src
, UINT src_row_pitch
, UINT src_slice_pitch
,
97 BYTE
*dst
, UINT dst_row_pitch
, UINT dst_slice_pitch
, const struct volume
*size
,
98 const struct pixel_format_desc
*format
) DECLSPEC_HIDDEN
;
99 void convert_argb_pixels(const BYTE
*src
, UINT src_row_pitch
, UINT src_slice_pitch
,
100 const struct volume
*src_size
, const struct pixel_format_desc
*src_format
,
101 BYTE
*dst
, UINT dst_row_pitch
, UINT dst_slice_pitch
, const struct volume
*dst_size
,
102 const struct pixel_format_desc
*dst_format
, D3DCOLOR color_key
, const PALETTEENTRY
*palette
) DECLSPEC_HIDDEN
;
103 void point_filter_argb_pixels(const BYTE
*src
, UINT src_row_pitch
, UINT src_slice_pitch
,
104 const struct volume
*src_size
, const struct pixel_format_desc
*src_format
,
105 BYTE
*dst
, UINT dst_row_pitch
, UINT dst_slice_pitch
, const struct volume
*dst_size
,
106 const struct pixel_format_desc
*dst_format
, D3DCOLOR color_key
, const PALETTEENTRY
*palette
) DECLSPEC_HIDDEN
;
108 HRESULT
load_texture_from_dds(IDirect3DTexture9
*texture
, const void *src_data
, const PALETTEENTRY
*palette
,
109 DWORD filter
, D3DCOLOR color_key
, const D3DXIMAGE_INFO
*src_info
) DECLSPEC_HIDDEN
;
110 HRESULT
load_cube_texture_from_dds(IDirect3DCubeTexture9
*cube_texture
, const void *src_data
,
111 const PALETTEENTRY
*palette
, DWORD filter
, D3DCOLOR color_key
, const D3DXIMAGE_INFO
*src_info
) DECLSPEC_HIDDEN
;
112 HRESULT
load_volume_from_dds(IDirect3DVolume9
*dst_volume
, const PALETTEENTRY
*dst_palette
,
113 const D3DBOX
*dst_box
, const void *src_data
, const D3DBOX
*src_box
, DWORD filter
, D3DCOLOR color_key
,
114 const D3DXIMAGE_INFO
*src_info
) DECLSPEC_HIDDEN
;
115 HRESULT
load_volume_texture_from_dds(IDirect3DVolumeTexture9
*volume_texture
, const void *src_data
,
116 const PALETTEENTRY
*palette
, DWORD filter
, DWORD color_key
, const D3DXIMAGE_INFO
*src_info
) DECLSPEC_HIDDEN
;
118 unsigned short float_32_to_16(const float in
) DECLSPEC_HIDDEN
;
121 const char *debug_d3dxparameter_class(D3DXPARAMETER_CLASS c
) DECLSPEC_HIDDEN
;
122 const char *debug_d3dxparameter_type(D3DXPARAMETER_TYPE t
) DECLSPEC_HIDDEN
;
123 const char *debug_d3dxparameter_registerset(D3DXREGISTER_SET r
) DECLSPEC_HIDDEN
;
125 /* parameter type conversion helpers */
126 void set_number(LPVOID outdata
, D3DXPARAMETER_TYPE outtype
, LPCVOID indata
, D3DXPARAMETER_TYPE intype
) DECLSPEC_HIDDEN
;
128 #endif /* __WINE_D3DX9_36_PRIVATE_H */