199 DWORD mask = (1u << (map_size & 0x1f)) - 1;
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 & (1u <<
i))
339 if (stateblock->
changed.vertexShaderConstantsB & (1u <<
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 & (1u <<
i))
366 if (stateblock->
changed.pixelShaderConstantsB & (1u <<
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);
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
HRESULT stateblock_init(struct d3d9_stateblock *stateblock, struct d3d9_device *device, D3DSTATEBLOCKTYPE type, struct wined3d_stateblock *wined3d_stateblock)
ULONG CDECL wined3d_buffer_incref(struct wined3d_buffer *buffer)
ULONG CDECL wined3d_buffer_decref(struct wined3d_buffer *buffer)
HRESULT CDECL wined3d_device_set_light_enable(struct wined3d_device *device, UINT light_idx, BOOL enable)
void CDECL wined3d_device_set_vertex_declaration(struct wined3d_device *device, struct wined3d_vertex_declaration *declaration)
HRESULT CDECL wined3d_device_set_vs_consts_f(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants)
HRESULT CDECL wined3d_device_set_stream_source_freq(struct wined3d_device *device, UINT stream_idx, UINT divider)
void CDECL wined3d_device_set_base_vertex_index(struct wined3d_device *device, INT base_index)
void CDECL wined3d_device_set_pixel_shader(struct wined3d_device *device, struct wined3d_shader *shader)
void CDECL wined3d_device_set_material(struct wined3d_device *device, const struct wined3d_material *material)
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_scissor_rect(struct wined3d_device *device, const RECT *rect)
void CDECL wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader)
HRESULT CDECL wined3d_device_set_ps_consts_f(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants)
HRESULT CDECL wined3d_device_set_texture(struct wined3d_device *device, UINT stage, struct wined3d_texture *texture)
void CDECL wined3d_device_set_sampler_state(struct wined3d_device *device, UINT sampler_idx, enum wined3d_sampler_state state, DWORD value)
void CDECL wined3d_device_set_index_buffer(struct wined3d_device *device, struct wined3d_buffer *buffer, enum wined3d_format_id format_id, unsigned int offset)
HRESULT CDECL wined3d_device_set_light(struct wined3d_device *device, UINT light_idx, const struct wined3d_light *light)
void CDECL wined3d_device_set_viewport(struct wined3d_device *device, const struct wined3d_viewport *viewport)
HRESULT CDECL wined3d_device_set_vs_consts_i(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants)
const struct wined3d_light WINED3D_default_light
void CDECL wined3d_device_set_texture_stage_state(struct wined3d_device *device, UINT stage, enum wined3d_texture_stage_state state, DWORD value)
void CDECL wined3d_device_set_render_state(struct wined3d_device *device, enum wined3d_render_state state, DWORD value)
HRESULT CDECL wined3d_device_set_clip_plane(struct wined3d_device *device, UINT plane_idx, const struct wined3d_vec4 *plane)
HRESULT CDECL wined3d_device_set_ps_consts_i(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants)
HRESULT CDECL wined3d_device_set_stream_source(struct wined3d_device *device, UINT stream_idx, struct wined3d_buffer *buffer, UINT offset, UINT stride)
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_vs_consts_b(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const BOOL *constants)
ULONG CDECL wined3d_shader_incref(struct wined3d_shader *shader)
ULONG CDECL wined3d_shader_decref(struct wined3d_shader *shader)
ULONG CDECL wined3d_texture_decref(struct wined3d_texture *texture)
ULONG CDECL wined3d_texture_incref(struct wined3d_texture *texture)
const char * debug_ivec4(const struct wined3d_ivec4 *v)
const char * debug_vec4(const struct wined3d_vec4 *v)
void get_identity_matrix(struct wined3d_matrix *mat)
ULONG CDECL wined3d_unordered_access_view_decref(struct wined3d_unordered_access_view *view)
ULONG CDECL wined3d_shader_resource_view_decref(struct wined3d_shader_resource_view *view)
GLuint GLuint GLsizei GLenum type
GLuint GLenum GLenum transform
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 * u
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
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
ULONG CDECL wined3d_sampler_decref(struct wined3d_sampler *sampler)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH(cursor, list)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
struct wined3d_d3d_limits limits
struct wined3d_gl_limits limits
WORD pixelShaderConstantsI
DWORD textureState[MAX_TEXTURES]
BOOL ps_consts_f[WINED3D_MAX_PS_CONSTS_F]
DWORD renderState[(WINEHIGHEST_RENDER_STATE > > 5)+1]
WORD pixelShaderConstantsB
WORD vertexShaderConstantsB
WORD samplerState[MAX_COMBINED_SAMPLERS]
BOOL vs_consts_f[WINED3D_MAX_VS_CONSTS_F]
DWORD transform[(HIGHEST_TRANSFORMSTATE > > 5)+1]
WORD vertexShaderConstantsI
enum wined3d_format_id index_format
struct wined3d_vertex_declaration * vertex_declaration
struct wined3d_matrix transforms[HIGHEST_TRANSFORMSTATE+1]
const struct wined3d_light_info * lights[MAX_ACTIVE_LIGHTS]
BOOL ps_consts_b[WINED3D_MAX_CONSTS_B]
DWORD texture_states[MAX_TEXTURES][WINED3D_HIGHEST_TEXTURE_STATE+1]
struct wined3d_texture * textures[MAX_COMBINED_SAMPLERS]
struct wined3d_material material
struct wined3d_viewport viewport
struct wined3d_shader * shader[WINED3D_SHADER_TYPE_COUNT]
struct wined3d_ivec4 ps_consts_i[WINED3D_MAX_CONSTS_I]
struct wined3d_buffer * index_buffer
struct wined3d_stream_state streams[MAX_STREAMS+1]
BOOL vs_consts_b[WINED3D_MAX_CONSTS_B]
DWORD render_states[WINEHIGHEST_RENDER_STATE+1]
unsigned int index_offset
struct wined3d_vec4 ps_consts_f[WINED3D_MAX_PS_CONSTS_F]
struct wined3d_ivec4 vs_consts_i[WINED3D_MAX_CONSTS_I]
struct list light_map[LIGHTMAP_SIZE]
struct wined3d_vec4 vs_consts_f[WINED3D_MAX_VS_CONSTS_F]
struct wined3d_vec4 clip_planes[MAX_CLIP_DISTANCES]
DWORD sampler_states[MAX_COMBINED_SAMPLERS][WINED3D_HIGHEST_SAMPLER_STATE+1]
DWORD contained_vs_consts_f[WINED3D_MAX_VS_CONSTS_F]
unsigned int num_contained_sampler_states
struct wined3d_device * device
unsigned int num_contained_transform_states
DWORD contained_vs_consts_i[WINED3D_MAX_CONSTS_I]
unsigned int num_contained_vs_consts_i
DWORD contained_render_states[WINEHIGHEST_RENDER_STATE+1]
unsigned int num_contained_vs_consts_b
unsigned int num_contained_ps_consts_f
DWORD contained_transform_states[HIGHEST_TRANSFORMSTATE+1]
unsigned int num_contained_vs_consts_f
unsigned int num_contained_tss_states
unsigned int num_contained_ps_consts_b
struct wined3d_state state
struct StageState contained_tss_states[MAX_TEXTURES *(WINED3D_HIGHEST_TEXTURE_STATE+1)]
unsigned int num_contained_ps_consts_i
struct wined3d_saved_states changed
DWORD contained_ps_consts_i[WINED3D_MAX_CONSTS_I]
DWORD contained_vs_consts_b[WINED3D_MAX_CONSTS_B]
DWORD contained_ps_consts_f[WINED3D_MAX_PS_CONSTS_F]
struct StageState contained_sampler_states[MAX_COMBINED_SAMPLERS *WINED3D_HIGHEST_SAMPLER_STATE]
DWORD contained_ps_consts_b[WINED3D_MAX_CONSTS_B]
unsigned int num_contained_render_states
void wined3d_state_enable_light(struct wined3d_state *state, const struct wined3d_d3d_info *d3d_info, struct wined3d_light_info *light_info, BOOL enable)
static const DWORD vertex_states_render[]
void state_cleanup(struct wined3d_state *state)
static void stateblock_set_bits(DWORD *map, UINT map_size)
static const DWORD pixel_states_texture[]
static void stateblock_init_lights(struct wined3d_stateblock *stateblock, struct list *light_map)
static const DWORD vertex_states_sampler[]
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)
void stateblock_init_contained_states(struct wined3d_stateblock *stateblock)
static void state_init_default(struct wined3d_state *state, const struct wined3d_gl_info *gl_info)
static void apply_lights(struct wined3d_device *device, const struct wined3d_state *state)
static void stateblock_savedstates_set_all(struct wined3d_saved_states *states, DWORD vs_consts, DWORD ps_consts)
static const DWORD pixel_states_sampler[]
ULONG CDECL wined3d_stateblock_incref(struct wined3d_stateblock *stateblock)
static const DWORD vertex_states_texture[]
struct wined3d_light_info * wined3d_state_get_light(const struct wined3d_state *state, unsigned int idx)
void state_unbind_resources(struct wined3d_state *state)
ULONG CDECL wined3d_stateblock_decref(struct wined3d_stateblock *stateblock)
static void wined3d_state_record_lights(struct wined3d_state *dst_state, const struct wined3d_state *src_state)
static const DWORD pixel_states_render[]
void CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock)
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)
static void stateblock_savedstates_set_vertex(struct wined3d_saved_states *states, const DWORD num_constants)
void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock)
ULONG CDECL wined3d_vertex_declaration_incref(struct wined3d_vertex_declaration *declaration)
ULONG CDECL wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration *declaration)
@ WINED3D_SBT_PIXEL_STATE
@ WINED3D_SBT_VERTEX_STATE
#define WINED3D_TS_WORLD_MATRIX(index)
@ WINED3D_RS_TEXTUREFACTOR
@ WINED3D_RS_NORMALDEGREE
@ WINED3D_RS_SOFTWAREVERTEXPROCESSING
@ WINED3D_RS_COLORWRITEENABLE7
@ WINED3D_RS_COLORWRITEENABLE1
@ WINED3D_RS_STENCILENABLE
@ WINED3D_RS_COLORWRITEENABLE5
@ WINED3D_RS_ANTIALIASEDLINEENABLE
@ WINED3D_RS_SPECULARMATERIALSOURCE
@ WINED3D_RS_DEBUGMONITORTOKEN
@ WINED3D_RS_MAXTESSELLATIONLEVEL
@ WINED3D_RS_DITHERENABLE
@ WINED3D_RS_BACK_STENCILPASS
@ WINED3D_RS_COLORWRITEENABLE4
@ WINED3D_RS_PATCHEDGESTYLE
@ WINED3D_RS_SCISSORTESTENABLE
@ WINED3D_RS_MINTESSELLATIONLEVEL
@ WINED3D_RS_POINTSCALE_A
@ WINED3D_RS_MULTISAMPLEMASK
@ WINED3D_RS_BACK_STENCILFUNC
@ WINED3D_RS_SRGBWRITEENABLE
@ WINED3D_RS_RANGEFOGENABLE
@ WINED3D_RS_POINTSIZE_MIN
@ WINED3D_RS_ENABLEADAPTIVETESSELLATION
@ WINED3D_RS_COLORWRITEENABLE3
@ WINED3D_RS_ALPHABLENDENABLE
@ WINED3D_RS_ADAPTIVETESS_X
@ WINED3D_RS_ADAPTIVETESS_Z
@ WINED3D_RS_COLORWRITEENABLE6
@ WINED3D_RS_POINTSCALE_C
@ WINED3D_RS_FOGTABLEMODE
@ WINED3D_RS_POINTSIZE_MAX
@ WINED3D_RS_ZWRITEENABLE
@ WINED3D_RS_CLIPPLANEENABLE
@ WINED3D_RS_AMBIENTMATERIALSOURCE
@ WINED3D_RS_POINTSPRITEENABLE
@ WINED3D_RS_BACK_STENCILZFAIL
@ WINED3D_RS_POSITIONDEGREE
@ WINED3D_RS_MULTISAMPLEANTIALIAS
@ WINED3D_RS_BACK_STENCILFAIL
@ WINED3D_RS_COLORWRITEENABLE
@ WINED3D_RS_SLOPESCALEDEPTHBIAS
@ WINED3D_RS_DIFFUSEMATERIALSOURCE
@ WINED3D_RS_DEPTHBIASCLAMP
@ WINED3D_RS_NORMALIZENORMALS
@ WINED3D_RS_TWOSIDEDSTENCILMODE
@ WINED3D_RS_EMISSIVEMATERIALSOURCE
@ WINED3D_RS_PATCHSEGMENTS
@ WINED3D_RS_SPECULARENABLE
@ WINED3D_RS_ADAPTIVETESS_W
@ WINED3D_RS_SRCBLENDALPHA
@ WINED3D_RS_COLORWRITEENABLE2
@ WINED3D_RS_POINTSCALEENABLE
@ WINED3D_RS_FOGVERTEXMODE
@ WINED3D_RS_STENCILWRITEMASK
@ WINED3D_RS_BLENDOPALPHA
@ WINED3D_RS_DESTBLENDALPHA
@ WINED3D_RS_STENCILZFAIL
@ WINED3D_RS_POINTSCALE_B
@ WINED3D_RS_INDEXEDVERTEXBLENDENABLE
@ WINED3D_RS_SEPARATEALPHABLENDENABLE
@ WINED3D_RS_ADAPTIVETESS_Y
@ WINED3D_RS_ALPHATESTENABLE
@ WINED3D_RS_EDGEANTIALIAS
@ WINED3D_PATCH_EDGE_DISCRETE
@ WINED3D_SAMP_ELEMENT_INDEX
@ WINED3D_SAMP_MAX_ANISOTROPY
@ WINED3D_SAMP_MIPMAP_LOD_BIAS
@ WINED3D_SAMP_MIN_FILTER
@ WINED3D_SAMP_SRGB_TEXTURE
@ WINED3D_SAMP_DMAP_OFFSET
@ WINED3D_SAMP_MIP_FILTER
@ WINED3D_SAMP_MAG_FILTER
@ WINED3D_SAMP_BORDER_COLOR
@ WINED3D_SAMP_MAX_MIP_LEVEL
#define WINED3D_MAX_STREAM_OUTPUT_BUFFERS
@ WINED3D_TSS_BUMPENV_LOFFSET
@ WINED3D_TSS_BUMPENV_MAT11
@ WINED3D_TSS_BUMPENV_MAT10
@ WINED3D_TSS_TEXCOORD_INDEX
@ WINED3D_TSS_BUMPENV_MAT01
@ WINED3D_TSS_BUMPENV_LSCALE
@ WINED3D_TSS_BUMPENV_MAT00
@ WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS
#define WINED3DTA_CURRENT
@ WINED3D_TOP_SELECT_ARG1
@ WINED3D_STENCIL_OP_KEEP
#define WINED3DVERTEXTEXTURESAMPLER0
#define WINEHIGHEST_RENDER_STATE
#define WINED3DTA_TEXTURE
static enum wined3d_render_state WINED3D_RS_COLORWRITE(int index)
#define MAX_SAMPLER_OBJECTS
#define MAX_FRAGMENT_SAMPLERS
#define WINED3D_STATE_NO_REF
#define MAX_CONSTANT_BUFFERS
#define HIGHEST_TRANSFORMSTATE
#define WINED3D_STATE_INIT_DEFAULT
#define MAX_UNORDERED_ACCESS_VIEWS
#define LIGHTMAP_HASHFUNC(x)
#define MAX_ACTIVE_LIGHTS
#define MAX_RENDER_TARGETS
#define WINED3D_MAX_CONSTS_B
@ WINED3D_SHADER_TYPE_PIXEL
@ WINED3D_SHADER_TYPE_VERTEX
@ WINED3D_SHADER_TYPE_COUNT
#define WINED3D_MAX_CONSTS_I
#define MAX_SHADER_RESOURCE_VIEWS
#define MAX_CLIP_DISTANCES
#define MAX_COMBINED_SAMPLERS