26 #include "wine/port.h" 239 DWORD texture_mask = 0;
240 WORD sampler_mask = 0;
265 DWORD texture_mask = 0;
266 WORD sampler_mask = 0;
295 for (
i = 0; i <= WINEHIGHEST_RENDER_STATE >> 5; ++
i)
300 if (!(
map & 1))
continue;
307 for (
i = 0; i <= HIGHEST_TRANSFORMSTATE >> 5; ++
i)
312 if (!(
map & 1))
continue;
319 for (
i = 0;
i < d3d_info->
limits.vs_uniform_count; ++
i)
321 if (stateblock->
changed.vs_consts_f[
i])
330 if (stateblock->
changed.vertexShaderConstantsI & (1
u <<
i))
339 if (stateblock->
changed.vertexShaderConstantsB & (1
u <<
i))
346 for (
i = 0;
i < d3d_info->
limits.ps_uniform_count; ++
i)
348 if (stateblock->
changed.ps_consts_f[
i])
357 if (stateblock->
changed.pixelShaderConstantsI & (1
u <<
i))
366 if (stateblock->
changed.pixelShaderConstantsB & (1
u <<
i))
379 if (!(
map & 1))
continue;
393 if (!(
map & 1))
continue;
414 *dst_light = *src_light;
424 TRACE(
"%p increasing refcount to %u.\n", stateblock, refcount);
440 if ((decl =
state->vertex_declaration))
507 if ((srv =
state->shader_resource_view[
i][
j]))
519 if ((uav =
state->unordered_access_view[
i][
j]))
542 struct list *e1, *e2;
556 TRACE(
"%p decreasing refcount to %u\n", stateblock, refcount);
570 unsigned int hash_idx;
585 unsigned int light_count,
i;
591 TRACE(
"Light already disabled, nothing to do.\n");
602 TRACE(
"Light already enabled, nothing to do.\n");
607 light_count = d3d_info->
limits.active_light_count;
608 for (
i = 0;
i < light_count; ++
i)
613 state->lights[
i] = light_info;
624 WARN(
"Too many concurrently active lights.\n");
646 if (realLight->OriginalIndex ==
src->OriginalIndex)
648 src->OriginalParms = realLight->OriginalParms;
650 if (realLight->glIndex == -1 &&
src->glIndex != -1)
655 else if (realLight->glIndex != -1 &&
src->glIndex == -1)
658 dst_state->
lights[realLight->glIndex] =
src;
660 src->glIndex = realLight->glIndex;
670 WARN(
"Light %u in dst_state %p does not exist in src_state %p.\n",
671 src->OriginalIndex, dst_state, src_state);
674 if (
src->glIndex != -1)
690 TRACE(
"stateblock %p.\n", stateblock);
692 TRACE(
"Capturing state %p.\n", src_state);
697 TRACE(
"Updating vertex shader from %p to %p\n",
733 TRACE(
"Setting vs_consts_b[%u] to %s.\n",
763 TRACE(
"Setting ps_consts_b[%u] to %s.\n",
779 if (stateblock->
changed.indices
785 TRACE(
"Updating index buffer to %p, base vertex index to %d.\n",
790 if (stateblock->
state.index_buffer)
800 TRACE(
"Updating vertex declaration from %p to %p.\n",
805 if (stateblock->
state.vertex_declaration)
810 if (stateblock->
changed.material
813 TRACE(
"Updating material.\n");
818 if (stateblock->
changed.viewport
821 TRACE(
"Updating viewport.\n");
827 &stateblock->
state.scissor_rect,
sizeof(stateblock->
state.scissor_rect)))
829 TRACE(
"Updating scissor rect.\n");
837 if (!(
map & 1))
continue;
839 if (stateblock->
state.streams[
i].stride != src_state->
streams[
i].stride
840 || stateblock->
state.streams[
i].buffer != src_state->
streams[
i].buffer)
842 TRACE(
"Updating stream source %u to %p, stride to %u.\n",
846 stateblock->
state.streams[
i].stride = src_state->
streams[
i].stride;
849 if (stateblock->
state.streams[
i].buffer)
851 stateblock->
state.streams[
i].buffer = src_state->
streams[
i].buffer;
858 if (!(
map & 1))
continue;
860 if (stateblock->
state.streams[
i].frequency != src_state->
streams[
i].frequency
861 || stateblock->
state.streams[
i].flags != src_state->
streams[
i].flags)
863 TRACE(
"Updating stream frequency %u to %u flags to %#x.\n",
866 stateblock->
state.streams[
i].frequency = src_state->
streams[
i].frequency;
874 if (!(
map & 1))
continue;
878 TRACE(
"Updating clipplane %u.\n",
i);
899 TRACE(
"Updating texturestage state %u, %u to %#x (was %#x).\n", stage,
state,
909 if (!(
map & 1))
continue;
911 TRACE(
"Updating texture %u to %p (was %p).\n",
916 if (stateblock->
state.textures[
i])
926 TRACE(
"Updating sampler state %u, %u to %#x (was %#x).\n", stage,
state,
944 TRACE(
"Capture done.\n");
971 TRACE(
"Applying stateblock %p to device %p.\n", stateblock,
device);
973 if (stateblock->
changed.vertexShader)
995 if (stateblock->
changed.pixelShader)
1049 if (stateblock->
changed.indices)
1052 stateblock->
state.index_format, stateblock->
state.index_offset);
1056 if (stateblock->
changed.vertexDecl && stateblock->
state.vertex_declaration)
1059 if (stateblock->
changed.material)
1062 if (stateblock->
changed.viewport)
1065 if (stateblock->
changed.scissorRect)
1073 stateblock->
state.streams[
i].buffer,
1074 0, stateblock->
state.streams[
i].stride);
1082 stateblock->
state.streams[
i].frequency | stateblock->
state.streams[
i].flags);
1090 if (!(
map & 1))
continue;
1099 if (!(
map & 1))
continue;
1104 TRACE(
"Applied stateblock %p.\n", stateblock);
1121 TRACE(
"state %p, gl_info %p.\n",
state, gl_info);
1124 state->gl_primitive_type = ~0
u;
1125 state->gl_patch_vertices = 0;
1130 for (
i = 0;
i < 256; ++
i)
1135 TRACE(
"Render states\n");
1140 lp.lp.repeat_factor = 0;
1141 lp.lp.line_pattern = 0;
1216 tmpfloat.f = gl_info->
limits.pointsize_max;
1268 TRACE(
"Setting up default texture states for texture Stage %u.\n",
i);
1291 TRACE(
"Setting up default samplers states for sampler %u.\n",
i);
1333 stateblock->
ref = 1;
1340 TRACE(
"Updating changed flags appropriate for type %#x.\n",
type);
1347 d3d_info->
limits.vs_uniform_count, d3d_info->
limits.ps_uniform_count);
1352 d3d_info->
limits.ps_uniform_count);
1358 d3d_info->
limits.vs_uniform_count);
1362 FIXME(
"Unrecognized state block type %#x.\n",
type);
1378 TRACE(
"device %p, type %#x, stateblock %p.\n",
1381 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
1387 WARN(
"Failed to initialize stateblock, hr %#x.\n",
hr);
1392 TRACE(
"Created stateblock %p.\n",
object);
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 * u
#define MAX_RENDER_TARGETS
void CDECL wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader)
#define WINED3D_TS_WORLD_MATRIX(index)
unsigned int num_contained_ps_consts_f
BOOL ps_consts_f[WINED3D_MAX_PS_CONSTS_F]
unsigned int num_contained_tss_states
void CDECL wined3d_device_set_render_state(struct wined3d_device *device, enum wined3d_render_state state, DWORD value)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
const struct wined3d_light WINED3D_default_light
DWORD contained_render_states[WINEHIGHEST_RENDER_STATE+1]
DWORD contained_transform_states[HIGHEST_TRANSFORMSTATE+1]
HRESULT CDECL wined3d_device_set_vs_consts_f(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants)
const char * debug_ivec4(const struct wined3d_ivec4 *v)
WORD vertexShaderConstantsI
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define MAX_SHADER_RESOURCE_VIEWS
struct wined3d_vec4 vs_consts_f[WINED3D_MAX_VS_CONSTS_F]
coclass MSXML2::XSLTemplate40 object
DWORD transform[(HIGHEST_TRANSFORMSTATE >> 5)+1]
struct wined3d_state state
struct wined3d_saved_states changed
void get_identity_matrix(struct wined3d_matrix *mat)
struct wined3d_vertex_declaration * vertex_declaration
WORD samplerState[MAX_COMBINED_SAMPLERS]
static const DWORD vertex_states_sampler[]
#define WINED3D_MAX_CONSTS_I
WINE_DEFAULT_DEBUG_CHANNEL(d3d9)
struct wined3d_vec4 ps_consts_f[WINED3D_MAX_PS_CONSTS_F]
#define MAX_CONSTANT_BUFFERS
void CDECL wined3d_device_set_vertex_declaration(struct wined3d_device *device, struct wined3d_vertex_declaration *declaration)
WORD pixelShaderConstantsI
BOOL vs_consts_f[WINED3D_MAX_VS_CONSTS_F]
#define WINED3D_MAX_STREAM_OUTPUT_BUFFERS
DWORD contained_vs_consts_b[WINED3D_MAX_CONSTS_B]
struct wined3d_ivec4 ps_consts_i[WINED3D_MAX_CONSTS_I]
struct wined3d_texture * textures[MAX_COMBINED_SAMPLERS]
#define MAX_ACTIVE_LIGHTS
HRESULT CDECL wined3d_device_set_vs_consts_i(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants)
static void stateblock_savedstates_set_pixel(struct wined3d_saved_states *states, const DWORD num_constants)
HRESULT CDECL wined3d_stateblock_create(struct wined3d_device *device, enum wined3d_stateblock_type type, struct wined3d_stateblock **stateblock)
void CDECL wined3d_device_set_texture_stage_state(struct wined3d_device *device, UINT stage, enum wined3d_texture_stage_state state, DWORD value)
struct StageState contained_sampler_states[MAX_COMBINED_SAMPLERS *WINED3D_HIGHEST_SAMPLER_STATE]
static enum wined3d_render_state WINED3D_RS_COLORWRITE(int index)
DWORD contained_ps_consts_i[WINED3D_MAX_CONSTS_I]
#define WINED3DTA_CURRENT
void CDECL wined3d_device_set_index_buffer(struct wined3d_device *device, struct wined3d_buffer *buffer, enum wined3d_format_id format_id, unsigned int offset)
static void wined3d_state_record_lights(struct wined3d_state *dst_state, const struct wined3d_state *src_state)
struct wined3d_matrix transforms[HIGHEST_TRANSFORMSTATE+1]
unsigned int num_contained_ps_consts_i
static void stateblock_savedstates_set_vertex(struct wined3d_saved_states *states, const DWORD num_constants)
unsigned int num_contained_vs_consts_f
static void * heap_alloc(size_t len)
const char * debug_vec4(const struct wined3d_vec4 *v)
struct wined3d_buffer * index_buffer
struct wined3d_light_info * wined3d_state_get_light(const struct wined3d_state *state, unsigned int idx)
ULONG CDECL wined3d_buffer_incref(struct wined3d_buffer *buffer)
DWORD contained_vs_consts_i[WINED3D_MAX_CONSTS_I]
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
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 light
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define MAX_COMBINED_SAMPLERS
unsigned int num_contained_vs_consts_i
struct wined3d_shader * shader[WINED3D_SHADER_TYPE_COUNT]
#define MAX_SAMPLER_OBJECTS
HRESULT CDECL wined3d_device_set_ps_consts_i(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants)
#define LIGHTMAP_HASHFUNC(x)
HRESULT CDECL wined3d_device_set_vs_consts_b(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const BOOL *constants)
HRESULT stateblock_init(struct d3d9_stateblock *stateblock, struct d3d9_device *device, D3DSTATEBLOCKTYPE type, struct wined3d_stateblock *wined3d_stateblock)
ULONG CDECL wined3d_shader_incref(struct wined3d_shader *shader)
#define LIST_FOR_EACH(cursor, list)
#define WINED3DTA_TEXTURE
struct list light_map[LIGHTMAP_SIZE]
DWORD textureState[MAX_TEXTURES]
struct wined3d_viewport viewport
struct wined3d_stream_state streams[MAX_STREAMS+1]
void CDECL wined3d_device_set_transform(struct wined3d_device *device, enum wined3d_transform_state d3dts, const struct wined3d_matrix *matrix)
void CDECL wined3d_device_set_viewport(struct wined3d_device *device, const struct wined3d_viewport *viewport)
struct wined3d_material material
void state_cleanup(struct wined3d_state *state)
void stateblock_init_contained_states(struct wined3d_stateblock *stateblock)
unsigned int num_contained_render_states
static void stateblock_set_bits(DWORD *map, UINT map_size)
HRESULT CDECL wined3d_device_set_stream_source(struct wined3d_device *device, UINT stream_idx, struct wined3d_buffer *buffer, UINT offset, UINT stride)
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 const DWORD vertex_states_texture[]
ULONG CDECL wined3d_texture_incref(struct wined3d_texture *texture)
static void apply_lights(struct wined3d_device *device, const struct wined3d_state *state)
#define MAX_UNORDERED_ACCESS_VIEWS
ULONG CDECL wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration *declaration)
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
WORD vertexShaderConstantsB
DWORD contained_ps_consts_f[WINED3D_MAX_PS_CONSTS_F]
HRESULT CDECL wined3d_device_set_ps_consts_f(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants)
struct wined3d_vec4 clip_planes[MAX_CLIP_DISTANCES]
ULONG CDECL wined3d_stateblock_decref(struct wined3d_stateblock *stateblock)
ULONG CDECL wined3d_buffer_decref(struct wined3d_buffer *buffer)
ULONG CDECL wined3d_sampler_decref(struct wined3d_sampler *sampler)
const struct wined3d_light_info * lights[MAX_ACTIVE_LIGHTS]
static const struct d3drm_matrix identity
DWORD contained_vs_consts_f[WINED3D_MAX_VS_CONSTS_F]
#define MAX_FRAGMENT_SAMPLERS
#define MAX_CLIP_DISTANCES
DWORD sampler_states[MAX_COMBINED_SAMPLERS][WINED3D_HIGHEST_SAMPLER_STATE+1]
void state_unbind_resources(struct wined3d_state *state)
DWORD renderState[(WINEHIGHEST_RENDER_STATE >> 5)+1]
void state_init(struct wined3d_state *state, struct wined3d_fb_state *fb, const struct wined3d_gl_info *gl_info, const struct wined3d_d3d_info *d3d_info, DWORD flags)
BOOL ps_consts_b[WINED3D_MAX_CONSTS_B]
HRESULT CDECL wined3d_device_set_clip_plane(struct wined3d_device *device, UINT plane_idx, const struct wined3d_vec4 *plane)
ULONG CDECL wined3d_shader_decref(struct wined3d_shader *shader)
HRESULT CDECL wined3d_device_set_ps_consts_b(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const BOOL *constants)
HRESULT CDECL wined3d_device_set_light(struct wined3d_device *device, UINT light_idx, const struct wined3d_light *light)
#define InterlockedDecrement
unsigned int num_contained_ps_consts_b
HRESULT CDECL wined3d_device_set_texture(struct wined3d_device *device, UINT stage, struct wined3d_texture *texture)
#define HIGHEST_TRANSFORMSTATE
WORD pixelShaderConstantsB
void CDECL wined3d_device_set_base_vertex_index(struct wined3d_device *device, INT base_index)
void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock)
BOOL vs_consts_b[WINED3D_MAX_CONSTS_B]
#define InterlockedIncrement
#define WINED3D_STATE_NO_REF
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
struct wined3d_d3d_limits limits
ULONG CDECL wined3d_texture_decref(struct wined3d_texture *texture)
struct wined3d_ivec4 vs_consts_i[WINED3D_MAX_CONSTS_I]
enum wined3d_format_id index_format
static void stateblock_init_lights(struct wined3d_stateblock *stateblock, struct list *light_map)
struct wined3d_device * device
static const DWORD pixel_states_texture[]
unsigned int num_contained_sampler_states
#define WINED3DVERTEXTEXTURESAMPLER0
#define WINED3D_MAX_CONSTS_B
void CDECL wined3d_device_set_material(struct wined3d_device *device, const struct wined3d_material *material)
ULONG CDECL wined3d_unordered_access_view_decref(struct wined3d_unordered_access_view *view)
DWORD contained_ps_consts_b[WINED3D_MAX_CONSTS_B]
#define WINED3D_STATE_INIT_DEFAULT
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
unsigned int num_contained_transform_states
#define WINEHIGHEST_RENDER_STATE
void CDECL wined3d_device_set_scissor_rect(struct wined3d_device *device, const RECT *rect)
GLuint GLenum GLenum transform
static void state_init_default(struct wined3d_state *state, const struct wined3d_gl_info *gl_info)
static const DWORD vertex_states_render[]
void CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock)
struct StageState contained_tss_states[MAX_TEXTURES *(WINED3D_HIGHEST_TEXTURE_STATE+1)]
GLuint GLuint GLsizei GLenum type
unsigned int index_offset
ULONG CDECL wined3d_shader_resource_view_decref(struct wined3d_shader_resource_view *view)
DWORD texture_states[MAX_TEXTURES][WINED3D_HIGHEST_TEXTURE_STATE+1]
void wined3d_state_enable_light(struct wined3d_state *state, const struct wined3d_d3d_info *d3d_info, struct wined3d_light_info *light_info, BOOL enable)
void CDECL wined3d_device_set_pixel_shader(struct wined3d_device *device, struct wined3d_shader *shader)
void CDECL wined3d_device_set_sampler_state(struct wined3d_device *device, UINT sampler_idx, enum wined3d_sampler_state state, DWORD value)
ULONG CDECL wined3d_stateblock_incref(struct wined3d_stateblock *stateblock)
DWORD render_states[WINEHIGHEST_RENDER_STATE+1]
struct wined3d_gl_limits limits
static const DWORD pixel_states_render[]
ULONG CDECL wined3d_vertex_declaration_incref(struct wined3d_vertex_declaration *declaration)
static void stateblock_savedstates_set_all(struct wined3d_saved_states *states, DWORD vs_consts, DWORD ps_consts)
HRESULT CDECL wined3d_device_set_light_enable(struct wined3d_device *device, UINT light_idx, BOOL enable)
unsigned int num_contained_vs_consts_b
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 GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum map
HRESULT CDECL wined3d_device_set_stream_source_freq(struct wined3d_device *device, UINT stream_idx, UINT divider)
static BOOL heap_free(void *mem)
static const DWORD pixel_states_sampler[]