22#ifndef __WINE_D3DX9_PRIVATE_H
23#define __WINE_D3DX9_PRIVATE_H
27#include "wine/rbtree.h"
32#define ULONG64_MAX (~(ULONG64)0)
34#define FOURCC_TX_1 0x54580100
36#define D3DX9_FILTER_INVALID_BITS 0xff80fff8
75 color->rgb_range = rgb_range;
76 color->a_range = a_range;
189 const RECT *unaligned_rect)
192 pixels->row_pitch = row_pitch;
193 pixels->slice_pitch = slice_pitch;
196 pixels->unaligned_rect = *unaligned_rect;
199#define D3DX_IMAGE_INFO_ONLY 1
261 if ((
src->a_type &&
dst->a_type) && (
src->a_type !=
dst->a_type))
264 if ((
src->rgb_type &&
dst->rgb_type) && (
src->rgb_type !=
dst->rgb_type))
267 if (
src->flags !=
dst->flags)
270 return (
src->rgb_type ==
dst->rgb_type ||
src->a_type ==
dst->a_type);
359 return (
int)(*(
float *)
data);
379 return *(
float *)
data;
382 return (
float)(*(
int *)
data);
394 if (outtype == intype)
403 *(
float *)outdata =
get_float(intype, indata);
411 *(
int *)outdata =
get_int(intype, indata);
415 *(
DWORD *)outdata = 0;
557 return &
param->top_level_param->param ==
param;
575 if ((shared_data =
param->shared_data))
601#define SET_D3D_STATE_(manager, device, method, ...) (manager ? manager->lpVtbl->method(manager, __VA_ARGS__) \
602 : device->lpVtbl->method(device, __VA_ARGS__))
605#define EXPAND_VA_(x) x
606#define SET_D3D_STATE(base_effect, ...) \
607 EXPAND_VA_(SET_D3D_STATE_(base_effect->manager, base_effect->device, __VA_ARGS__))
609#define SET_D3D_STATE(base_effect, ...) SET_D3D_STATE_(base_effect->manager, base_effect->device, __VA_ARGS__)
615 const char **skip_constants,
unsigned int skip_constants_count);
#define D3DERR_INVALIDCALL
enum _D3DRESOURCETYPE D3DRESOURCETYPE
enum _D3DFORMAT D3DFORMAT
struct ID3DXBuffer ID3DXBuffer
const struct ctab_constant * d3dx_shader_get_ctab_constant(ID3DXConstantTable *iface, D3DXHANDLE constant)
static BOOL is_param_type_sampler(D3DXPARAMETER_TYPE type)
HRESULT d3dx_param_eval_set_shader_constants(ID3DXEffectStateManager *manager, struct IDirect3DDevice9 *device, struct d3dx_param_eval *peval, BOOL update_all)
void format_from_d3dx_color(const struct pixel_format_desc *format, const struct d3dx_color *src, BYTE *dst)
#define D3DX9_FILTER_INVALID_BITS
HRESULT unlock_surface(IDirect3DSurface9 *surface, const RECT *surface_rect, IDirect3DSurface9 *temp_surface, BOOL update)
static int get_int(D3DXPARAMETER_TYPE type, const void *data)
static struct d3dx_top_level_parameter * top_level_parameter_from_parameter(struct d3dx_parameter *param)
static BOOL is_param_dirty(struct d3dx_parameter *param, ULONG64 update_version)
const struct pixel_format_desc * get_format_info(D3DFORMAT format)
static BOOL get_bool(D3DXPARAMETER_TYPE type, const void *data)
static ULONG64 next_update_version(ULONG64 *version_counter)
static BOOL is_conversion_to_supported(const struct pixel_format_desc *format)
static BOOL format_types_match(const struct pixel_format_desc *src, const struct pixel_format_desc *dst)
static BOOL is_index_format(const struct pixel_format_desc *format)
void get_aligned_rect(uint32_t left, uint32_t top, uint32_t right, uint32_t bottom, uint32_t width, uint32_t height, const struct pixel_format_desc *fmt_desc, RECT *aligned_rect)
CRITICAL_SECTION from_file_mutex
BOOL is_param_eval_input_dirty(struct d3dx_param_eval *peval, ULONG64 update_version)
HRESULT lock_surface(IDirect3DSurface9 *surface, const RECT *surface_rect, D3DLOCKED_RECT *lock, IDirect3DSurface9 **temp_surface, BOOL write)
HRESULT map_view_of_file(const WCHAR *filename, void **buffer, DWORD *length)
static BOOL is_unknown_format(const struct pixel_format_desc *format)
float float_16_to_32(const unsigned short in)
static float get_float(D3DXPARAMETER_TYPE type, const void *data)
HRESULT d3dx_load_pixels_from_pixels(struct d3dx_pixels *dst_pixels, const struct pixel_format_desc *dst_desc, struct d3dx_pixels *src_pixels, const struct pixel_format_desc *src_desc, uint32_t filter_flags, uint32_t color_key)
static void set_number(void *outdata, D3DXPARAMETER_TYPE outtype, const void *indata, D3DXPARAMETER_TYPE intype)
static void set_volume_struct(struct volume *volume, uint32_t width, uint32_t height, uint32_t depth)
struct d3dx_parameter * get_parameter_by_name(struct d3dx_parameters_store *store, struct d3dx_parameter *parameter, const char *name)
void d3dx_image_cleanup(struct d3dx_image *image)
void convert_argb_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slice_pitch, const struct volume *src_size, const struct pixel_format_desc *src_format, BYTE *dst, UINT dst_row_pitch, UINT dst_slice_pitch, const struct volume *dst_size, const struct pixel_format_desc *dst_format, D3DCOLOR color_key, const PALETTEENTRY *palette)
HRESULT write_buffer_to_file(const WCHAR *filename, ID3DXBuffer *buffer)
HRESULT d3dx_evaluate_parameter(struct d3dx_param_eval *peval, const struct d3dx_parameter *param, void *param_value)
const char * debug_d3dxparameter_type(D3DXPARAMETER_TYPE t)
void format_to_d3dx_color(const struct pixel_format_desc *format, const BYTE *src, const PALETTEENTRY *palette, struct d3dx_color *dst)
const struct pixel_format_desc * get_d3dx_pixel_format_info(enum d3dx_pixel_format_id format)
static void set_d3dx_color(struct d3dx_color *color, const struct vec4 *value, enum range rgb_range, enum range a_range)
void copy_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slice_pitch, BYTE *dst, UINT dst_row_pitch, UINT dst_slice_pitch, const struct volume *size, const struct pixel_format_desc *format)
static BOOL is_top_level_parameter(struct d3dx_parameter *param)
static HRESULT d3dx9_handle_load_filter(DWORD *filter)
static void set_d3dx_pixels(struct d3dx_pixels *pixels, const void *data, uint32_t row_pitch, uint32_t slice_pitch, const PALETTEENTRY *palette, uint32_t width, uint32_t height, uint32_t depth, const RECT *unaligned_rect)
HRESULT d3dx_image_init(const void *src_data, uint32_t src_data_size, struct d3dx_image *image, uint32_t starting_mip_level, uint32_t flags)
const struct pixel_format_desc * get_format_info_idx(int idx)
static BOOL is_internal_format(const struct pixel_format_desc *format)
static HRESULT d3dx9_validate_filter(uint32_t filter)
const char * debug_d3dxparameter_registerset(D3DXREGISTER_SET r)
HRESULT d3dx_create_param_eval(struct d3dx_parameters_store *parameters, void *byte_code, unsigned int byte_code_size, D3DXPARAMETER_TYPE type, struct d3dx_param_eval **peval, ULONG64 *version_counter, const char **skip_constants, unsigned int skip_constants_count)
HRESULT d3dx_init_parameters_store(struct d3dx_parameters_store *store, unsigned int count)
static BOOL is_conversion_from_supported(const struct pixel_format_desc *format)
void d3dx_free_param_eval(struct d3dx_param_eval *peval)
@ PRES_REGTAB_FIRST_SHADER
HRESULT d3dx_image_get_pixels(struct d3dx_image *image, uint32_t layer, uint32_t mip_level, struct d3dx_pixels *pixels)
enum d3dx_pixel_format_id d3dx_pixel_format_id_from_d3dformat(D3DFORMAT format)
const struct ID3DXIncludeVtbl d3dx_include_from_file_vtbl
static uint32_t make_pow2(uint32_t num)
void d3dx_parameters_store_cleanup(struct d3dx_parameters_store *store)
static BOOL is_compressed_format(const struct pixel_format_desc *format)
D3DFORMAT d3dformat_from_d3dx_pixel_format_id(enum d3dx_pixel_format_id format)
void point_filter_argb_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slice_pitch, const struct volume *src_size, const struct pixel_format_desc *src_format, BYTE *dst, UINT dst_row_pitch, UINT dst_slice_pitch, const struct volume *dst_size, const struct pixel_format_desc *dst_format, D3DCOLOR color_key, const PALETTEENTRY *palette)
HRESULT d3dx_pixels_init(const void *data, uint32_t row_pitch, uint32_t slice_pitch, const PALETTEENTRY *palette, enum d3dx_pixel_format_id format, uint32_t left, uint32_t top, uint32_t right, uint32_t bottom, uint32_t front, uint32_t back, struct d3dx_pixels *pixels)
static BOOL is_packed_format(const struct pixel_format_desc *format)
static BOOL is_top_level_param_dirty(struct d3dx_top_level_parameter *param, ULONG64 update_version)
const char * debug_d3dxparameter_class(D3DXPARAMETER_CLASS c)
HRESULT load_resource_into_memory(HMODULE module, HRSRC resinfo, void **buffer, DWORD *length)
@ 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
@ D3DX_PIXEL_FORMAT_R8G8B8X8_UNORM
@ D3DX_PIXEL_FORMAT_R16G16B16_UNORM
@ D3DX_PIXEL_FORMAT_B2G3R3A8_UNORM
@ 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
@ D3DX_PIXEL_FORMAT_R8G8B8A8_UNORM
@ D3DX_PIXEL_FORMAT_DXT3_UNORM
@ D3DX_PIXEL_FORMAT_DXT2_UNORM
@ D3DX_PIXEL_FORMAT_COUNT
@ D3DX_PIXEL_FORMAT_R10G10B10A2_UNORM
@ D3DX_PIXEL_FORMAT_R16G16_FLOAT
@ D3DX_PIXEL_FORMAT_L8_UNORM
@ 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
@ D3DX_PIXEL_FORMAT_B4G4R4X4_UNORM
@ D3DX_PIXEL_FORMAT_R8G8_B8G8_UNORM
unsigned short float_32_to_16(const float in)
void d3dximage_info_from_d3dx_image(D3DXIMAGE_INFO *info, struct d3dx_image *image)
enum _D3DXREGISTER_SET D3DXREGISTER_SET
#define D3DX_FILTER_TRIANGLE
#define D3DX_FILTER_DITHER
GLint GLint GLsizei GLsizei GLsizei depth
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLdouble GLdouble GLdouble GLdouble top
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
GLuint GLsizei GLsizei * length
GLenum GLuint GLint GLint layer
static const char * dst_format
static struct address_cache * front
struct ctab_constant * constants
WORD constantinfo_reserved
unsigned int register_index
enum D3DXPARAMETER_CLASS constant_class
enum pres_reg_tables table
unsigned int register_count
struct d3dx_parameter * param
unsigned int element_count
struct d3dx_parameter ** inputs_param
struct d3dx_const_param_eval_output * const_set
unsigned int const_set_count
unsigned int const_set_size
D3DXCONSTANT_DESC * inputs
enum pres_reg_tables * regset2table
D3DXIMAGE_FILEFORMAT image_file_format
enum d3dx_pixel_format_id format
D3DRESOURCETYPE resource_type
PALETTEENTRY * image_palette
ID3DXInclude ID3DXInclude_iface
struct d3dx_const_tab shader_inputs
struct d3dx_preshader pres
ULONG64 * version_counter
D3DXPARAMETER_TYPE param_type
struct d3dx_parameter * members
struct d3dx_param_eval * param_eval
unsigned int member_count
unsigned int element_count
struct d3dx_top_level_parameter * top_level_param
struct d3dx_top_level_parameter * parameters
unsigned int full_name_tmp_size
const PALETTEENTRY * palette
struct d3dx_const_tab inputs
struct d3dx_pres_ins * ins
struct d3dx_regstore regs
void * tables[PRES_REGTAB_COUNT]
unsigned int table_sizes[PRES_REGTAB_COUNT]
struct d3dx_top_level_parameter ** parameters
unsigned int annotation_count
struct d3dx_shared_data * shared_data
struct d3dx_parameter * annotations
ULONG64 * version_counter
struct wine_rb_entry entry
struct d3dx_parameter * param
#define CONTAINING_RECORD(address, type, field)