264 for (
unsigned int i = 0;
i < 4; ++
i)
266 for (
unsigned int j = 0;
j < 4; ++
j)
267 (&
temp._11)[4 *
j +
i] = (&
m->_11)[4 *
i +
j];
275 DWORD mask = (1u << (map_size & 0x1f)) - 1;
333 light->changed =
true;
340 DWORD texture_mask = 0;
341 WORD sampler_mask = 0;
366 DWORD texture_mask = 0;
367 WORD sampler_mask = 0;
397 for (
i = 0; i <= WINEHIGHEST_RENDER_STATE >> 5; ++
i)
402 if (!(
map & 1))
continue;
409 for (
i = 0; i <= WINED3D_HIGHEST_TRANSFORM_STATE >> 5; ++
i)
414 if (!(
map & 1))
continue;
427 if (!(
map & 1))
continue;
441 if (!(
map & 1))
continue;
459 *dst_light = *src_light;
470 TRACE(
"%p increasing refcount to %u.\n", stateblock, refcount);
487 if ((decl =
state->vertex_declaration))
545 if ((srv =
state->shader_resource_view[
i][
j]))
558 if ((uav =
state->unordered_access_view[
i][
j]))
566 if ((blend_state =
state->blend_state))
574 if ((rtv =
state->fb.render_targets[
i]))
581 if ((rtv =
state->fb.depth_stencil))
597 if ((decl =
state->vertex_declaration))
674 TRACE(
"%p decreasing refcount to %u\n", stateblock, refcount);
704 stateblock->
changed.lights = 1;
715 TRACE(
"Adding new light.\n");
716 if (!(
object =
calloc(1,
sizeof(*
object))))
718 ERR(
"Failed to allocate light info.\n");
722 object->glIndex = -1;
723 object->OriginalIndex = light_idx;
729 object->OriginalParms = *
params;
732 TRACE(
"Light %u setting to type %#x, diffuse %s, specular %s, ambient %s, "
733 "position {%.8e, %.8e, %.8e}, direction {%.8e, %.8e, %.8e}, "
734 "range %.8e, falloff %.8e, theta %.8e, phi %.8e.\n",
796 FIXME(
"Unrecognized params type %#x.\n",
params->type);
806 unsigned int light_count,
i;
812 TRACE(
"Light already disabled, nothing to do.\n");
823 TRACE(
"Light already enabled, nothing to do.\n");
828 light_count = d3d_info->
limits.active_light_count;
829 for (
i = 0;
i < light_count; ++
i)
834 state->lights[
i] = light_info;
845 WARN(
"Too many concurrently active lights.\n");
862 dst->OriginalParms =
src->OriginalParms;
864 if (
src->glIndex == -1 &&
dst->glIndex != -1)
869 else if (
src->glIndex != -1 &&
dst->glIndex == -1)
874 dst->glIndex =
src->glIndex;
880 WARN(
"Light %u in dst_state %p does not exist in src_state %p.\n",
881 dst->OriginalIndex, dst_state, src_state);
884 if (
dst->glIndex != -1)
922 map = stateblock->
changed.vertexShaderConstantsI;
931 map = stateblock->
changed.vertexShaderConstantsB;
949 map = stateblock->
changed.pixelShaderConstantsI;
958 map = stateblock->
changed.pixelShaderConstantsB;
968 if (stateblock->
changed.transforms)
980 if (stateblock->
changed.indices
985 TRACE(
"Updating index buffer to %p, base vertex index to %d.\n",
986 state->index_buffer,
state->base_vertex_index);
988 if (
state->index_buffer)
999 TRACE(
"Updating vertex declaration from %p to %p.\n",
1002 if (
state->vertex_declaration)
1009 if (stateblock->
changed.material
1013 TRACE(
"Updating material.\n");
1018 if (stateblock->
changed.viewport
1021 TRACE(
"Updating viewport.\n");
1026 if (stateblock->
changed.scissorRect
1029 TRACE(
"Updating scissor rect.\n");
1043 TRACE(
"stateblock %p, stream source %u, buffer %p, stride %u, offset %u.\n",
1044 stateblock,
i,
state->streams[
i].buffer,
state->streams[
i].stride,
1045 state->streams[
i].offset);
1048 if (stateblock->
changed.store_stream_offset)
1051 if (
state->streams[
i].buffer)
1067 TRACE(
"Updating stream frequency %u to %u flags to %#x.\n",
1082 TRACE(
"Updating clipplane %u.\n",
i);
1092 TRACE(
"Updating render state %#x to %u.\n", rs,
state->rs[rs]);
1103 TRACE(
"Updating texturestage state %u, %u to %#x (was %#x).\n", stage, texture_state,
1104 state->texture_states[stage][texture_state],
1107 stateblock->
stateblock_state.texture_states[stage][texture_state] =
state->texture_states[stage][texture_state];
1116 TRACE(
"Updating texture %u to %p (was %p).\n",
1131 TRACE(
"Updating sampler state %u, %u to %#x (was %#x).\n", stage, sampler_state,
1132 state->sampler_states[stage][sampler_state],
1135 stateblock->
stateblock_state.sampler_states[stage][sampler_state] =
state->sampler_states[stage][sampler_state];
1147 if (stateblock->
changed.lights)
1150 if (stateblock->
changed.alpha_to_coverage)
1153 TRACE(
"Capture done.\n");
1166 if (stateblock->
changed.vertexShader)
1168 if (stateblock->
changed.pixelShader)
1177 map = stateblock->
changed.vertexShaderConstantsI;
1184 map = stateblock->
changed.vertexShaderConstantsB;
1198 map = stateblock->
changed.pixelShaderConstantsI;
1205 map = stateblock->
changed.pixelShaderConstantsB;
1213 if (stateblock->
changed.transforms)
1223 if (stateblock->
changed.lights)
1234 if (stateblock->
changed.alpha_to_coverage)
1255 state->texture_states[stage][texture_state]);
1265 state->sampler_states[stage][sampler_state]);
1268 if (stateblock->
changed.indices)
1274 if (stateblock->
changed.vertexDecl &&
state->vertex_declaration)
1277 if (stateblock->
changed.material)
1280 if (stateblock->
changed.viewport)
1283 if (stateblock->
changed.scissorRect)
1299 state->streams[
i].frequency |
state->streams[
i].flags);
1316 TRACE(
"Applied stateblock %p.\n", stateblock);
1321 TRACE(
"stateblock %p, shader %p.\n", stateblock,
shader);
1329 stateblock->
changed.ffp_vs_settings = 1;
1334 const unsigned int word_bit_count =
sizeof(*bitmap) *
CHAR_BIT;
1335 const unsigned int shift =
start % word_bit_count;
1337 unsigned int mask_size;
1341 mask_size = word_bit_count -
shift;
1342 last_mask = (1u << (
start +
count) % word_bit_count) - 1;
1343 if (mask_size <=
count)
1350 if (
count >= word_bit_count)
1365 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n",
1381 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n",
1391 for (
i = start_idx;
i <
count + start_idx; ++
i)
1392 stateblock->
changed.vertexShaderConstantsI |= (1u <<
i);
1401 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n",
1411 for (
i = start_idx;
i <
count + start_idx; ++
i)
1412 stateblock->
changed.vertexShaderConstantsB |= (1u <<
i);
1421 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n", stateblock, start_idx,
count,
constants);
1433 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n", stateblock, start_idx,
count,
constants);
1448 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n", stateblock, start_idx,
count,
constants);
1462 TRACE(
"stateblock %p, shader %p.\n", stateblock,
shader);
1470 stateblock->
changed.ffp_ps_settings = 1;
1478 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n",
1494 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n",
1504 for (
i = start_idx;
i <
count + start_idx; ++
i)
1505 stateblock->
changed.pixelShaderConstantsI |= (1u <<
i);
1514 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n",
1524 for (
i = start_idx;
i <
count + start_idx; ++
i)
1525 stateblock->
changed.pixelShaderConstantsB |= (1u <<
i);
1532 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n", stateblock, start_idx,
count,
constants);
1544 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n", stateblock, start_idx,
count,
constants);
1559 TRACE(
"stateblock %p, start_idx %u, count %u, constants %p.\n", stateblock, start_idx,
count,
constants);
1603 stateblock->
changed.ffp_vs_settings = 1;
1611 stateblock->
changed.ffp_vs_settings = 1;
1612 stateblock->
changed.position_transformed = 1;
1613 stateblock->
changed.transforms = 1;
1618 stateblock->
changed.position_transformed = 1;
1619 stateblock->
changed.ffp_vs_settings = 1;
1630 WARN(
"Unhandled render state %#x.\n",
state);
1642 stateblock->
changed.alpha_to_coverage = 1;
1645 stateblock->
changed.point_scale = 1;
1649 stateblock->
changed.ffp_ps_constants = 1;
1653 stateblock->
changed.modelview_matrices = 1;
1654 stateblock->
changed.ffp_vs_settings = 1;
1661 stateblock->
changed.point_scale = 1;
1676 stateblock->
changed.ffp_vs_settings = 1;
1680 stateblock->
changed.ffp_ps_settings = 1;
1684 stateblock->
changed.ffp_vs_settings = 1;
1685 stateblock->
changed.ffp_ps_constants = 1;
1694 stateblock->
changed.rasterizer_state = 1;
1705 TRACE(
"stateblock %p, sampler_idx %u, state %s, value %#x.\n",
1710 WARN(
"Invalid sampler %u.\n", sampler_idx);
1715 stateblock->
changed.samplerState[sampler_idx] |= 1u <<
state;
1721 TRACE(
"stateblock %p, stage %u, state %s, value %#x.\n",
1726 WARN(
"Invalid state %#x passed.\n",
state);
1732 WARN(
"Attempting to set stage %u which is higher than the max stage %u, ignoring.\n",
1738 stateblock->
changed.textureState[stage] |= 1u <<
state;
1743 stateblock->
changed.ffp_ps_constants = 1;
1747 stateblock->
changed.ffp_vs_settings = 1;
1750 stateblock->
changed.texture_matrices = 1;
1751 stateblock->
changed.ffp_ps_settings = 1;
1763 stateblock->
changed.ffp_ps_settings = 1;
1772 stateblock->
changed.bumpenv_constants = 1;
1785 unsigned int old_usage, new_usage;
1795 new_usage =
texture->resource.usage;
1804 old_format = prev->
resource.format;
1805 new_format =
texture->resource.format;
1821 TRACE(
"stateblock %p, stage %u, texture %p.\n", stateblock, stage,
texture);
1825 WARN(
"Ignoring invalid stage %u.\n", stage);
1834 stateblock->
changed.textures |= 1u << stage;
1837 stateblock->
changed.ffp_ps_settings = 1;
1850 stateblock->
changed.transform[d3dts >> 5] |= 1u << (d3dts & 0x1f);
1851 stateblock->
changed.transforms = 1;
1854 stateblock->
changed.texture_matrices = 1;
1856 stateblock->
changed.modelview_matrices = 1;
1871 stateblock->
changed.transform[d3dts >> 5] |= 1u << (d3dts & 0x1f);
1872 stateblock->
changed.transforms = 1;
1878 TRACE(
"stateblock %p, plane_idx %u, plane %p.\n", stateblock, plane_idx,
plane);
1880 if (plane_idx >= stateblock->
device->adapter->d3d_info.limits.max_clip_distances)
1882 TRACE(
"Application has requested clipplane this device doesn't support.\n");
1887 stateblock->
changed.clipplane |= 1u << plane_idx;
1894 TRACE(
"stateblock %p, material %p.\n", stateblock, material);
1903 TRACE(
"stateblock %p, viewport %p.\n", stateblock, viewport);
1934 TRACE(
"stateblock %p, base_index %d.\n", stateblock, base_index);
1944 TRACE(
"stateblock %p, stream_idx %u, buffer %p, stride %u.\n",
1949 WARN(
"Stream index %u out of range.\n", stream_idx);
1962 stateblock->
changed.streamSource |= 1u << stream_idx;
1971 TRACE(
"stateblock %p, stream_idx %u, divider %#x.\n", stateblock, stream_idx, divider);
1975 WARN(
"INSTANCEDATA and INDEXEDDATA were set, returning D3DERR_INVALIDCALL.\n");
1980 WARN(
"INSTANCEDATA used on stream 0, returning D3DERR_INVALIDCALL.\n");
1985 WARN(
"Divider is 0, returning D3DERR_INVALIDCALL.\n");
1991 stream->frequency = divider & 0x7fffff;
1992 stateblock->
changed.streamFreq |= 1u << stream_idx;
2002 TRACE(
"stateblock %p, light_idx %u, light %p.\n", stateblock, light_idx,
light);
2009 switch (
light->type)
2016 if (
light->attenuation0 < 0.0f ||
light->attenuation1 < 0.0f ||
light->attenuation2 < 0.0f)
2018 WARN(
"Attenuation is negative, returning WINED3DERR_INVALIDCALL.\n");
2029 WARN(
"Light type out of range, returning WINED3DERR_INVALIDCALL.\n");
2035 stateblock->
changed.ffp_vs_settings = 1;
2048 TRACE(
"stateblock %p, light_idx %u, enable %#x.\n", stateblock, light_idx,
enable);
2060 stateblock->
changed.ffp_vs_settings = 1;
2076 TRACE(
"Light %u is not defined.\n", light_idx);
2100 lp.lp.repeat_factor = 0;
2101 lp.lp.line_pattern = 0;
2175 tmpfloat.f = d3d_info->
limits.pointsize_max;
2251 TRACE(
"Setting up default samplers states for sampler %u.\n",
i);
2275 TRACE(
"state %p, d3d_info %p.\n",
state, d3d_info);
2279 state->patch_vertex_count = 0;
2284 for (
i = 0;
i < 256; ++
i)
2294 TRACE(
"Setting up default texture states for texture Stage %u.\n",
i);
2299 state->blend_factor.r = 1.0f;
2300 state->blend_factor.g = 1.0f;
2301 state->blend_factor.b = 1.0f;
2302 state->blend_factor.a = 1.0f;
2304 state->sample_mask = 0xffffffff;
2307 state->streams[
i].frequency = 1;
2327 state->feature_level = feature_level;
2343 for (
i = 0;
i < level_count; ++
i)
2352 FIXME_(winediag)(
"None of the requested D3D feature levels is supported on this GPU "
2353 "with the current shader backend.\n");
2370 if (!(
object =
calloc(1,
sizeof(*
object))))
2382 return state->feature_level;
2403 for (
i = 0;
i < 256; ++
i)
2419 state->streams[
i].frequency = 1;
2437 stateblock->
changed.ffp_ps_constants = 1;
2438 stateblock->
changed.lights = 1;
2439 stateblock->
changed.texture_matrices = 1;
2440 stateblock->
changed.material = 1;
2441 stateblock->
changed.transforms = 1;
2443 stateblock->
changed.modelview_matrices = 1;
2444 stateblock->
changed.point_scale = 1;
2445 stateblock->
changed.ffp_vs_settings = 1;
2446 stateblock->
changed.ffp_ps_settings = 1;
2447 stateblock->
changed.bumpenv_constants = 1;
2455 stateblock->
ref = 1;
2461 stateblock->
changed.store_stream_offset = 1;
2470 TRACE(
"Updating changed flags appropriate for type %#x.\n",
type);
2477 d3d_info->
limits.vs_uniform_count, d3d_info->
limits.ps_uniform_count);
2482 d3d_info->
limits.ps_uniform_count);
2488 d3d_info->
limits.vs_uniform_count);
2492 FIXME(
"Unrecognized state block type %#x.\n",
type);
2503 stateblock->
changed.store_stream_offset = 0;
2514 TRACE(
"device %p, device_state %p, type %#x, stateblock %p.\n",
2517 if (!(
object =
calloc(1,
sizeof(*
object))))
2523 WARN(
"Failed to initialize stateblock, hr %#lx.\n",
hr);
2528 TRACE(
"Created stateblock %p.\n",
object);
2536 TRACE(
"stateblock %p.\n", stateblock);
2547 TRACE(
"device %p, base_index %d.\n",
device, base_index);
2549 device->cs->c.state->base_vertex_index = base_index;
2682 TRACE(
"Light enabled requested but light not defined, so defining one!\n");
2687 ERR(
"Adding default lights has failed dismally.\n");
2705 TRACE(
"Application is setting old values over, nothing to do.\n");
2709 clip_planes[plane_idx] = *
plane;
2723 dst_resource = &dst_texture->
resource;
2724 if (!dst_resource->
format->depth_size)
2726 if (!(src_view =
state->fb.depth_stencil))
2738 TRACE(
"Application is setting the old value over, nothing to do.\n");
2748 TRACE(
"RESZ multisampled depth buffer resolve triggered.\n");
2756 TRACE(
"device %p, stage %u, state %s, value %#x.\n",
2761 TRACE(
"Application is setting the old value over, nothing to do.\n");
2789 TRACE(
"Previous texture %p.\n", prev);
2793 TRACE(
"App is setting the same texture again, nothing to do.\n");
2825 TRACE(
"The application is setting the same matrix over again.\n");
2838 FIXME(
"Unrecognized or unsupported texture address mode %#x.\n",
t);
2861 FIXME(
"Unrecognized or unsupported WINED3D_SAMP_MAG_FILTER %#x.\n",
2865 FIXME(
"Unrecognized or unsupported WINED3D_SAMP_MIN_FILTER %#x.\n",
2869 FIXME(
"Unrecognized or unsupported WINED3D_SAMP_MIP_FILTER %#x.\n",
2873 desc->min_lod = -1000.0f;
2874 desc->max_lod = 1000.0f;
2878 desc->mip_base_level = 0;
2889 desc->max_anisotropy = 1;
2924 if (stateblock->
changed.viewport)
2926 if (stateblock->
changed.scissorRect)
2929 if (stateblock->
changed.rasterizer_state)
2955 ERR(
"Failed to insert rasterizer state.\n");
2994 ERR(
"Failed to insert FFP vertex shader.\n");
3010 if (!(ps =
malloc(
sizeof(*ps))))
3029 if (!
device->adapter->d3d_info.gpu_push_constants || !
device->push_constants[
type])
3041 bool set_blend_state =
false, set_depth_stencil_state =
false;
3044 const unsigned int word_bit_count =
sizeof(
DWORD) *
CHAR_BIT;
3048 bool set_depth_bounds =
false;
3052 TRACE(
"device %p, stateblock %p.\n",
device, stateblock);
3121 idx =
i * word_bit_count +
j;
3139 set_blend_state =
true;
3158 set_depth_stencil_state =
true;
3164 set_depth_bounds =
true;
3188 FIXME(
"Antialias not supported yet.\n");
3196 FIXME(
"Render state WINED3D_RS_WRAPU not implemented yet.\n");
3201 FIXME(
"Render state WINED3D_RS_WRAPV not implemented yet.\n");
3206 FIXME(
"Render state WINED3D_RS_MONOENABLE not implemented yet.\n");
3211 FIXME(
"Render state WINED3D_RS_ROP2 not implemented yet.\n");
3216 FIXME(
"Render state WINED3D_RS_PLANEMASK not implemented yet.\n");
3225 FIXME(
"Last Pixel Drawing Disabled, not handled yet.\n");
3233 FIXME(
"WINED3D_RS_ZVISIBLE not implemented.\n");
3238 FIXME(
"Render state WINED3D_RS_SUBPIXEL not implemented yet.\n");
3243 FIXME(
"Render state WINED3D_RS_SUBPIXELX not implemented yet.\n");
3248 FIXME(
"Stippled Alpha not supported yet.\n");
3253 FIXME(
"Render state WINED3D_RS_STIPPLEENABLE not implemented yet.\n");
3258 FIXME(
"Render state WINED3D_RS_MIPMAPLODBIAS not implemented yet.\n");
3263 FIXME(
"Render state WINED3D_RS_ANISOTROPY not implemented yet.\n");
3268 FIXME(
"Render state WINED3D_RS_FLUSHBATCH not implemented yet.\n");
3273 FIXME(
"Render state WINED3D_RS_TRANSLUCENTSORTINDEPENDENT not implemented yet.\n");
3293 static unsigned int once;
3296 FIXME(
"(WINED3D_RS_WRAP0) Texture wrapping not yet supported.\n");
3302 FIXME(
"Render state WINED3D_RS_EXTENTS not implemented yet.\n");
3307 FIXME(
"Render state WINED3D_RS_COLORKEYBLENDENABLE not implemented yet.\n");
3312 static unsigned int once;
3315 FIXME(
"Software vertex processing not implemented.\n");
3321 FIXME(
"WINED3D_RS_PATCHEDGESTYLE %#x not yet implemented.\n",
3336 static bool displayed =
false;
3340 FIXME(
"(WINED3D_RS_PATCHSEGMENTS,%f) not yet implemented.\n", tmpvalue.f);
3359 FIXME(
"WINED3D_RS_POSITIONDEGREE %#x not yet implemented.\n",
3365 FIXME(
"WINED3D_RS_NORMALDEGREE %#x not yet implemented.\n",
3377 FIXME(
"WINED3D_RS_ENABLEADAPTIVETESSELLATION %#x not yet implemented.\n",
3395 unsigned int sample_mask;
3398 desc.alpha_to_coverage =
state->alpha_to_coverage;
3422 if (
desc.rt[1].writemask !=
desc.rt[0].writemask
3423 ||
desc.rt[2].writemask !=
desc.rt[0].writemask
3424 ||
desc.rt[3].writemask !=
desc.rt[0].writemask)
3427 for (
i = 1;
i < 4; ++
i)
3433 desc.rt[
i].src_alpha =
desc.rt[0].src_alpha;
3434 desc.rt[
i].dst_alpha =
desc.rt[0].dst_alpha;
3435 desc.rt[
i].op_alpha =
desc.rt[0].op_alpha;
3457 ERR(
"Failed to insert blend state.\n");
3463 if (set_depth_stencil_state)
3468 unsigned int stencil_ref;
3478 FIXME(
"W buffer is not well handled.\n");
3524 ERR(
"Failed to insert depth/stencil state.\n");
3530 if (set_depth_bounds)
3568 unsigned int bind_index =
i;
3598 ERR(
"Failed to insert sampler.\n");
3604 if (
state->vertex_declaration &&
state->vertex_declaration->position_transformed)
3610 float x =
state->viewport.x;
3611 float y =
state->viewport.y;
3612 float w =
state->viewport.width;
3613 float h =
state->viewport.height;
3614 float x_scale = 2.0f /
w;
3615 float x_offset = (-(2.0f *
x) -
w) /
w;
3616 float y_scale = 2.0f / -
h;
3617 float y_offset = (-(2.0f *
y) -
h) / -
h;
3619 float z_scale =
depth ? 1.0f : 0.0f;
3622 x_scale, 0.0f, 0.0f, 0.0f,
3623 0.0f, y_scale, 0.0f, 0.0f,
3624 0.0f, 0.0f, z_scale, 0.0f,
3625 x_offset, y_offset, 0.0f, 1.0f,
3738 unsigned int point_idx, spot_idx, directional_idx, parallel_point_idx;
3739 unsigned int point_count = 0, spot_count = 0, directional_count = 0;
3740 struct wined3d_ffp_light_constants
constants;
3748 light->changed =
false;
3755 if (!
state->light_state->lights[
i])
3758 switch (
state->light_state->lights[
i]->OriginalParms.type)
3767 ++directional_count;
3772 FIXME(
"Unhandled light type %#x.\n",
state->light_state->lights[
i]->OriginalParms.type);
3777 spot_idx = point_idx + point_count;
3778 directional_idx = spot_idx + spot_count;
3779 parallel_point_idx = directional_idx + directional_count;
3791 light_constants = &
state->light_state->lights[
i]->constants;
3802 idx = directional_idx++;
3805 idx = parallel_point_idx++;
3808 FIXME(
"Unhandled light type %#x.\n",
type);
3827 union wined3d_ffp_vs_modelview_matrices matrices;
3844 &matrices.not_blended.modelview_matrix);
3866 struct wined3d_ffp_point_constants
constants;
3891 struct wined3d_ffp_bumpenv_constants
constants;
3909 static const struct wined3d_color specular_enabled = {1.0f, 1.0f, 1.0f, 0.0f};
3960 && (!
state->vs || !
state->vertex_declaration ||
state->vertex_declaration->position_transformed))
3962 if (
device->adapter->d3d_info.ffp_hlsl)
3979 if (
device->adapter->d3d_info.ffp_hlsl)
4001 TRACE(
"Applied stateblock %p.\n", stateblock);
4026 stateblock->
changed.textures |= (1u <<
i);
4039 stateblock->
changed.textures |= (1u <<
i);
4054 stateblock->
changed.position_transformed = 1;
struct mke2fs_defaults settings[]
#define InterlockedIncrement
#define InterlockedDecrement
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
void wined3d_device_context_emit_set_light(struct wined3d_device_context *context, const struct wined3d_light_info *light)
void wined3d_device_context_push_constants(struct wined3d_device_context *context, enum wined3d_push_constants type, uint32_t update_mask, unsigned int start_idx, unsigned int count, const void *constants)
void wined3d_device_context_set_depth_bounds(struct wined3d_device_context *context, bool enable, float min_depth, float max_depth)
void wined3d_device_context_emit_set_texture_state(struct wined3d_device_context *context, unsigned int stage, enum wined3d_texture_stage_state state, unsigned int value)
void wined3d_device_context_emit_set_clip_plane(struct wined3d_device_context *context, unsigned int plane_idx, const struct wined3d_vec4 *plane)
void wined3d_device_context_emit_set_transform(struct wined3d_device_context *context, enum wined3d_transform_state state, const struct wined3d_matrix *matrix)
void wined3d_device_context_emit_set_render_state(struct wined3d_device_context *context, enum wined3d_render_state state, unsigned int value)
void wined3d_device_context_emit_set_light_enable(struct wined3d_device_context *context, unsigned int idx, BOOL enable)
void wined3d_device_context_emit_set_texture(struct wined3d_device_context *context, enum wined3d_shader_type shader_type, unsigned int bind_index, struct wined3d_shader_resource_view *view)
void wined3d_device_context_emit_set_shader(struct wined3d_device_context *context, enum wined3d_shader_type type, struct wined3d_shader *shader)
HRESULT stateblock_init(struct d3d9_stateblock *stateblock, struct d3d9_device *device, D3DSTATEBLOCKTYPE type, struct wined3d_stateblock *wined3d_stateblock)
void multiply_matrix(struct wined3d_matrix *dst, const struct wined3d_matrix *src1, const struct wined3d_matrix *src2)
static void wined3d_color_from_d3dcolor(struct wined3d_color *wined3d_colour, D3DCOLOR d3d_colour)
ULONG CDECL wined3d_buffer_incref(struct wined3d_buffer *buffer)
ULONG CDECL wined3d_buffer_decref(struct wined3d_buffer *buffer)
void CDECL wined3d_device_context_set_rasterizer_state(struct wined3d_device_context *context, struct wined3d_rasterizer_state *rasterizer_state)
void CDECL wined3d_device_context_set_depth_stencil_state(struct wined3d_device_context *context, struct wined3d_depth_stencil_state *depth_stencil_state, unsigned int stencil_ref)
struct wined3d_depth_stencil_state *CDECL wined3d_device_context_get_depth_stencil_state(const struct wined3d_device_context *context, unsigned int *stencil_ref)
void CDECL wined3d_device_context_set_shader(struct wined3d_device_context *context, enum wined3d_shader_type type, struct wined3d_shader *shader)
ULONG CDECL wined3d_depth_stencil_state_decref(struct wined3d_depth_stencil_state *state)
void CDECL wined3d_device_context_set_blend_state(struct wined3d_device_context *context, struct wined3d_blend_state *blend_state, const struct wined3d_color *blend_factor, unsigned int sample_mask)
void CDECL wined3d_device_context_resolve_sub_resource(struct wined3d_device_context *context, struct wined3d_resource *dst_resource, unsigned int dst_sub_resource_idx, struct wined3d_resource *src_resource, unsigned int src_sub_resource_idx, enum wined3d_format_id format_id)
void CDECL wined3d_device_context_set_vertex_declaration(struct wined3d_device_context *context, struct wined3d_vertex_declaration *declaration)
HRESULT CDECL wined3d_rasterizer_state_create(struct wined3d_device *device, const struct wined3d_rasterizer_state_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_rasterizer_state **state)
HRESULT CDECL wined3d_device_context_set_stream_sources(struct wined3d_device_context *context, unsigned int start_idx, unsigned int count, const struct wined3d_stream_state *streams)
void CDECL wined3d_device_context_set_constant_buffers(struct wined3d_device_context *context, enum wined3d_shader_type type, unsigned int start_idx, unsigned int count, const struct wined3d_constant_buffer_state *buffers)
void CDECL wined3d_device_context_set_viewports(struct wined3d_device_context *context, unsigned int viewport_count, const struct wined3d_viewport *viewports)
ULONG CDECL wined3d_blend_state_decref(struct wined3d_blend_state *state)
void CDECL wined3d_device_context_set_samplers(struct wined3d_device_context *context, enum wined3d_shader_type type, unsigned int start_idx, unsigned int count, struct wined3d_sampler *const *samplers)
HRESULT CDECL wined3d_blend_state_create(struct wined3d_device *device, const struct wined3d_blend_state_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_blend_state **state)
HRESULT CDECL wined3d_depth_stencil_state_create(struct wined3d_device *device, const struct wined3d_depth_stencil_state_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_depth_stencil_state **state)
const struct wined3d_light WINED3D_default_light
ULONG CDECL wined3d_rasterizer_state_decref(struct wined3d_rasterizer_state *state)
struct wined3d_blend_state *CDECL wined3d_device_context_get_blend_state(const struct wined3d_device_context *context, struct wined3d_color *blend_factor, unsigned int *sample_mask)
void CDECL wined3d_device_context_set_scissor_rects(struct wined3d_device_context *context, unsigned int rect_count, const RECT *rects)
void CDECL wined3d_device_context_set_index_buffer(struct wined3d_device_context *context, struct wined3d_buffer *buffer, enum wined3d_format_id format_id, unsigned int offset)
ULONG CDECL wined3d_shader_incref(struct wined3d_shader *shader)
HRESULT wined3d_shader_create_ffp_vs(struct wined3d_device *device, const struct wined3d_ffp_vs_settings *settings, struct wined3d_shader **shader)
HRESULT wined3d_shader_create_ffp_ps(struct wined3d_device *device, const struct ffp_frag_settings *settings, struct wined3d_shader **shader)
ULONG CDECL wined3d_shader_decref(struct wined3d_shader *shader)
struct wined3d_shader_resource_view *CDECL wined3d_texture_acquire_identity_srv(struct wined3d_texture *texture)
ULONG CDECL wined3d_texture_decref(struct wined3d_texture *texture)
ULONG CDECL wined3d_texture_incref(struct wined3d_texture *texture)
unsigned int CDECL wined3d_texture_set_lod(struct wined3d_texture *texture, unsigned int lod)
const struct ffp_frag_desc * find_ffp_frag_shader(const struct wine_rb_tree *fragment_shaders, const struct ffp_frag_settings *settings)
const char * debug_ivec4(const struct wined3d_ivec4 *v)
void get_modelview_matrix(const struct wined3d_stateblock_state *state, unsigned int index, struct wined3d_matrix *mat)
const char * debug_d3dformat(enum wined3d_format_id format_id)
void compute_normal_matrix(struct wined3d_matrix *normal_matrix, BOOL legacy_lighting, const struct wined3d_matrix *modelview)
const char * wined3d_debug_feature_level(enum wined3d_feature_level level)
const char * debug_d3dtexturestate(enum wined3d_texture_stage_state state)
void wined3d_ffp_get_fs_settings(const struct wined3d_state *state, const struct wined3d_d3d_info *d3d_info, struct ffp_frag_settings *settings)
const char * debug_d3dsamplerstate(enum wined3d_sampler_state state)
BOOL invert_matrix(struct wined3d_matrix *out, const struct wined3d_matrix *m)
const char * debug_vec4(const struct wined3d_vec4 *v)
void get_identity_matrix(struct wined3d_matrix *mat)
const char * debug_d3dtstype(enum wined3d_transform_state tstype)
void get_texture_matrix(const struct wined3d_stateblock_state *state, const unsigned int tex, struct wined3d_matrix *mat)
const char * debug_d3drenderstate(enum wined3d_render_state state)
void wined3d_format_get_float_color_key(const struct wined3d_format *format, const struct wined3d_color_key *key, struct wined3d_color *float_colors)
void add_ffp_frag_shader(struct wine_rb_tree *shaders, struct ffp_frag_desc *desc)
const char * debug_color(const struct wined3d_color *color)
void wined3d_ffp_get_vs_settings(const struct wined3d_state *state, const struct wined3d_stream_info *si, const struct wined3d_d3d_info *d3d_info, struct wined3d_ffp_vs_settings *settings)
ULONG CDECL wined3d_unordered_access_view_decref(struct wined3d_unordered_access_view *view)
ULONG CDECL wined3d_shader_resource_view_incref(struct wined3d_shader_resource_view *view)
ULONG CDECL wined3d_rendertarget_view_decref(struct wined3d_rendertarget_view *view)
ULONG CDECL wined3d_shader_resource_view_decref(struct wined3d_shader_resource_view *view)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP float __cdecl cosf(float)
GLint GLint GLsizei GLsizei GLsizei depth
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLuint GLenum GLenum transform
GLenum const GLfloat * params
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
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 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 GLint const GLfloat GLenum GLint const GLushort GLint GLint GLsizei GLsizei GLenum GLsizei GLsizei GLenum GLenum const GLvoid GLenum plane
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 memcpy(s1, s2, n)
D3D11_SHADER_VARIABLE_DESC desc
for(i=0;i< sizeof(testsuite)/sizeof(testsuite[0]);++i) ok(call_test(testsuite[i].func)
HRESULT CDECL wined3d_sampler_create(struct wined3d_device *device, const struct wined3d_sampler_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_sampler **sampler)
ULONG CDECL wined3d_sampler_decref(struct wined3d_sampler *sampler)
#define offsetof(TYPE, MEMBER)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
#define RB_ENTRY_VALUE(element, type, field)
#define WINE_RB_ENTRY_VALUE
#define RB_FOR_EACH_ENTRY_DESTRUCTOR(elem, elem2, tree, type, field)
static int rb_put(struct rb_tree *tree, const void *key, struct rb_entry *entry)
static struct rb_entry * rb_get(const struct rb_tree *tree, const void *key)
#define RB_FOR_EACH_ENTRY(elem, tree, type, field)
static void rb_remove(struct rb_tree *tree, struct rb_entry *entry)
static void rb_init(struct rb_tree *tree, rb_compare_func_t compare)
struct wine_rb_entry entry
enum wined3d_feature_level feature_level
struct wined3d_d3d_limits limits
uint32_t unconditional_npot
struct wine_rb_entry entry
struct ffp_frag_desc entry
struct wined3d_shader * shader
struct wined3d_matrix texture_matrices[WINED3D_MAX_FFP_TEXTURES]
struct wined3d_vec4 position direction
unsigned int OriginalIndex
struct list changed_entry
struct wined3d_light OriginalParms
const struct wined3d_light_info * lights[WINED3D_MAX_ACTIVE_LIGHTS]
struct rb_tree lights_tree
struct wine_rb_entry entry
struct wined3d_resource * resource
unsigned int sub_resource_idx
const struct wined3d_format * format
uint32_t texture_matrices
uint32_t bumpenv_constants
uint32_t textureState[WINED3D_MAX_FFP_TEXTURES]
uint32_t modelview_matrices
uint32_t rasterizer_state
uint32_t ps_consts_f[WINED3D_BITMAP_SIZE(WINED3D_MAX_PS_CONSTS_F)]
uint32_t renderState[WINED3D_BITMAP_SIZE(WINEHIGHEST_RENDER_STATE+1)]
struct list changed_lights
uint32_t store_stream_offset
uint16_t vertexShaderConstantsB
uint16_t pixelShaderConstantsI
uint32_t transform[WINED3D_BITMAP_SIZE(WINED3D_HIGHEST_TRANSFORM_STATE+1)]
uint32_t vs_consts_f[WINED3D_BITMAP_SIZE(WINED3D_MAX_VS_CONSTS_F)]
uint32_t position_transformed
uint16_t vertexShaderConstantsI
uint16_t samplerState[WINED3D_MAX_COMBINED_SAMPLERS]
uint32_t alpha_to_coverage
uint16_t pixelShaderConstantsB
uint32_t ffp_ps_constants
enum wined3d_feature_level feature_level
unsigned int num_contained_sampler_states
struct wined3d_device * device
unsigned int num_contained_transform_states
unsigned int contained_render_states[WINEHIGHEST_RENDER_STATE+1]
unsigned int contained_transform_states[WINED3D_HIGHEST_TRANSFORM_STATE+1]
struct wined3d_stateblock_state stateblock_state
struct stage_state contained_tss_states[WINED3D_MAX_FFP_TEXTURES *(WINED3D_HIGHEST_TEXTURE_STATE+1)]
unsigned int num_contained_tss_states
struct wined3d_saved_states changed
struct wined3d_light_state light_state
struct stage_state contained_sampler_states[WINED3D_MAX_COMBINED_SAMPLERS *WINED3D_HIGHEST_SAMPLER_STATE]
unsigned int num_contained_render_states
struct wined3d_resource resource
bool position_transformed
#define CONTAINING_RECORD(address, type, field)
@ VKD3D_SHADER_D3DBC_BOOL_CONSTANT_REGISTER
@ VKD3D_SHADER_D3DBC_FLOAT_CONSTANT_REGISTER
@ VKD3D_SHADER_D3DBC_INT_CONSTANT_REGISTER
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
const struct wined3d_parent_ops wined3d_null_parent_ops
HRESULT CDECL wined3d_stateblock_set_vs_consts_b(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const BOOL *constants)
static const DWORD vertex_states_render[]
HRESULT CDECL wined3d_stateblock_set_vs_consts_f(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants)
void state_cleanup(struct wined3d_state *state)
static void wined3d_state_record_lights(struct wined3d_light_state *dst_state, const struct wined3d_light_state *src_state)
void CDECL wined3d_stateblock_set_vertex_declaration(struct wined3d_stateblock *stateblock, struct wined3d_vertex_declaration *declaration)
HRESULT CDECL wined3d_stateblock_set_vs_consts_i(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants)
HRESULT CDECL wined3d_stateblock_create(struct wined3d_device *device, const struct wined3d_stateblock *device_state, enum wined3d_stateblock_type type, struct wined3d_stateblock **stateblock)
static void wined3d_stateblock_state_init(struct wined3d_stateblock_state *state, const struct wined3d_device *device, uint32_t flags)
static void init_default_render_states(unsigned int rs[WINEHIGHEST_RENDER_STATE+1], const struct wined3d_d3d_info *d3d_info)
void CDECL wined3d_state_destroy(struct wined3d_state *state)
static void wined3d_device_set_vs_consts_b(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const BOOL *constants)
static const DWORD pixel_states_texture[]
static void set_light_changed(struct wined3d_stateblock *stateblock, struct wined3d_light_info *light_info)
static void wined3d_stateblock_invalidate_initial_states(struct wined3d_stateblock *stateblock)
static const DWORD vertex_states_sampler[]
HRESULT CDECL wined3d_state_create(struct wined3d_device *device, const enum wined3d_feature_level *levels, unsigned int level_count, struct wined3d_state **state)
void CDECL wined3d_stateblock_set_material(struct wined3d_stateblock *stateblock, const struct wined3d_material *material)
static void wined3d_device_set_texture(struct wined3d_device *device, unsigned int stage, struct wined3d_texture *texture)
static void stateblock_set_all_bits(uint32_t *map, UINT map_size)
static void bind_push_constant_buffer(struct wined3d_device *device, enum wined3d_push_constants type, enum wined3d_shader_type shader_type, unsigned int shader_binding)
static struct wined3d_shader * get_ffp_pixel_shader(struct wined3d_device *device, const struct wined3d_state *state)
static void state_init_default(struct wined3d_state *state, const struct wined3d_d3d_info *d3d_info)
void CDECL wined3d_stateblock_reset(struct wined3d_stateblock *stateblock)
void CDECL wined3d_stateblock_set_texture(struct wined3d_stateblock *stateblock, UINT stage, struct wined3d_texture *texture)
void CDECL wined3d_stateblock_init_contained_states(struct wined3d_stateblock *stateblock)
static bool wined3d_select_feature_level(const struct wined3d_adapter *adapter, const enum wined3d_feature_level *levels, unsigned int level_count, enum wined3d_feature_level *selected_level)
static void wined3d_device_set_clip_plane(struct wined3d_device *device, unsigned int plane_idx, const struct wined3d_vec4 *plane)
static void wined3d_device_context_set_light(struct wined3d_device_context *context, unsigned int light_idx, const struct wined3d_light *light)
HRESULT CDECL wined3d_stateblock_set_stream_source_freq(struct wined3d_stateblock *stateblock, UINT stream_idx, UINT divider)
HRESULT CDECL wined3d_stateblock_set_light(struct wined3d_stateblock *stateblock, UINT light_idx, const struct wined3d_light *light)
static void wined3d_stateblock_state_cleanup(struct wined3d_stateblock_state *state)
HRESULT CDECL wined3d_stateblock_get_vs_consts_i(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, struct wined3d_ivec4 *constants)
void CDECL wined3d_stateblock_depth_buffer_changed(struct wined3d_stateblock *stateblock)
HRESULT CDECL wined3d_stateblock_set_clip_plane(struct wined3d_stateblock *stateblock, UINT plane_idx, const struct wined3d_vec4 *plane)
HRESULT CDECL wined3d_stateblock_set_ps_consts_b(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const BOOL *constants)
static void wined3d_device_set_render_state(struct wined3d_device *device, enum wined3d_render_state state, unsigned int value)
static void wined3d_bitmap_set_bits(uint32_t *bitmap, unsigned int start, unsigned int count)
HRESULT CDECL wined3d_stateblock_set_ps_consts_i(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants)
enum wined3d_feature_level CDECL wined3d_state_get_feature_level(const struct wined3d_state *state)
static HRESULT wined3d_light_state_set_light(struct wined3d_light_state *state, unsigned int light_idx, const struct wined3d_light *params, struct wined3d_light_info **light_info)
static int lights_compare(const void *key, const struct rb_entry *entry)
static void stateblock_state_init_default(struct wined3d_stateblock_state *state, const struct wined3d_d3d_info *d3d_info)
static void wined3d_device_set_base_vertex_index(struct wined3d_device *device, int base_index)
HRESULT CDECL wined3d_stateblock_set_light_enable(struct wined3d_stateblock *stateblock, UINT light_idx, BOOL enable)
static bool texture_binding_might_invalidate_fs_settings(const struct wined3d_stateblock *stateblock, const struct wined3d_texture *texture, const struct wined3d_texture *prev, unsigned int stage)
void state_init(struct wined3d_state *state, const struct wined3d_d3d_info *d3d_info, uint32_t flags, enum wined3d_feature_level feature_level)
void CDECL wined3d_stateblock_set_pixel_shader(struct wined3d_stateblock *stateblock, struct wined3d_shader *shader)
void CDECL wined3d_stateblock_primary_dirtify_all_states(struct wined3d_device *device, struct wined3d_stateblock *stateblock)
static void stateblock_savedstates_set_all(struct wined3d_saved_states *states, DWORD vs_consts, DWORD ps_consts)
HRESULT CDECL wined3d_stateblock_get_vs_consts_f(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, struct wined3d_vec4 *constants)
static void init_default_sampler_states(uint32_t states[WINED3D_MAX_COMBINED_SAMPLERS][WINED3D_HIGHEST_SAMPLER_STATE+1])
static void init_default_texture_state(unsigned int i, uint32_t stage[WINED3D_HIGHEST_TEXTURE_STATE+1])
static void wined3d_device_set_ps_consts_b(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const BOOL *constants)
static void 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_stateblock_set_ps_consts_f(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants)
static enum wined3d_texture_address get_texture_address_mode(const struct wined3d_texture *texture, enum wined3d_texture_address t)
static void 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_stateblock_get_ps_consts_i(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, struct wined3d_ivec4 *constants)
static const DWORD pixel_states_sampler[]
ULONG CDECL wined3d_stateblock_incref(struct wined3d_stateblock *stateblock)
void CDECL wined3d_stateblock_set_sampler_state(struct wined3d_stateblock *stateblock, UINT sampler_idx, enum wined3d_sampler_state state, unsigned int value)
static const DWORD vertex_states_texture[]
void CDECL wined3d_stateblock_set_vertex_shader(struct wined3d_stateblock *stateblock, struct wined3d_shader *shader)
const struct wined3d_stateblock_state *CDECL wined3d_stateblock_get_state(const struct wined3d_stateblock *stateblock)
void state_unbind_resources(struct wined3d_state *state)
HRESULT CDECL wined3d_stateblock_get_vs_consts_b(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, BOOL *constants)
static void sampler_desc_from_sampler_states(struct wined3d_sampler_desc *desc, const uint32_t *sampler_states, const struct wined3d_texture *texture)
ULONG CDECL wined3d_stateblock_decref(struct wined3d_stateblock *stateblock)
void CDECL wined3d_stateblock_set_transform(struct wined3d_stateblock *stateblock, enum wined3d_transform_state d3dts, const struct wined3d_matrix *matrix)
static void wined3d_device_set_transform(struct wined3d_device *device, enum wined3d_transform_state state, const struct wined3d_matrix *matrix)
static void wined3d_device_set_vs_consts_f(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants)
void CDECL wined3d_stateblock_multiply_transform(struct wined3d_stateblock *stateblock, enum wined3d_transform_state d3dts, const struct wined3d_matrix *matrix)
void CDECL wined3d_stateblock_set_index_buffer(struct wined3d_stateblock *stateblock, struct wined3d_buffer *buffer, enum wined3d_format_id format_id)
static void wined3d_device_set_vs_consts_i(struct wined3d_device *device, unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants)
bool wined3d_light_state_enable_light(struct wined3d_light_state *state, const struct wined3d_d3d_info *d3d_info, struct wined3d_light_info *light_info, BOOL enable)
void CDECL wined3d_stateblock_set_render_state(struct wined3d_stateblock *stateblock, enum wined3d_render_state state, unsigned int value)
void CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock, struct wined3d_stateblock *device_state)
unsigned int CDECL wined3d_stateblock_set_texture_lod(struct wined3d_stateblock *stateblock, struct wined3d_texture *texture, unsigned int lod)
void CDECL wined3d_stateblock_set_scissor_rect(struct wined3d_stateblock *stateblock, const RECT *rect)
HRESULT CDECL wined3d_stateblock_get_ps_consts_b(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, BOOL *constants)
static void wined3d_device_set_texture_stage_state(struct wined3d_device *device, unsigned int stage, enum wined3d_texture_stage_state state, uint32_t value)
void CDECL wined3d_stateblock_apply_clear_state(struct wined3d_stateblock *stateblock, struct wined3d_device *device)
void CDECL wined3d_stateblock_texture_changed(struct wined3d_stateblock *stateblock, const struct wined3d_texture *texture)
static struct wined3d_shader * get_ffp_vertex_shader(struct wined3d_device *device, const struct wined3d_state *state)
void CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock, const struct wined3d_stateblock *device_state)
static void wined3d_device_set_light_enable(struct wined3d_device *device, unsigned int light_idx, bool enable)
static const DWORD pixel_states_render[]
static void stateblock_savedstates_set_pixel(struct wined3d_saved_states *states, const DWORD num_constants)
HRESULT CDECL wined3d_stateblock_get_ps_consts_f(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, struct wined3d_vec4 *constants)
void CDECL wined3d_stateblock_set_base_vertex_index(struct wined3d_stateblock *stateblock, INT base_index)
static void resolve_depth_buffer(struct wined3d_device *device)
struct wined3d_light_info * wined3d_light_state_get_light(const struct wined3d_light_state *state, unsigned int idx)
HRESULT CDECL wined3d_stateblock_set_stream_source(struct wined3d_stateblock *stateblock, UINT stream_idx, struct wined3d_buffer *buffer, UINT offset, UINT stride)
static void transpose_matrix(struct wined3d_matrix *out, const struct wined3d_matrix *m)
HRESULT CDECL wined3d_stateblock_get_light(const struct wined3d_stateblock *stateblock, UINT light_idx, struct wined3d_light *light, BOOL *enabled)
void CDECL wined3d_stateblock_set_texture_stage_state(struct wined3d_stateblock *stateblock, UINT stage, enum wined3d_texture_stage_state state, unsigned int value)
static void stateblock_savedstates_set_vertex(struct wined3d_saved_states *states, const DWORD num_constants)
void CDECL wined3d_stateblock_set_viewport(struct wined3d_stateblock *stateblock, const struct wined3d_viewport *viewport)
static void stateblock_init_lights(struct wined3d_stateblock *stateblock, const struct rb_tree *src_tree)
void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device, 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)
#define WINED3D_MAX_COMBINED_SAMPLERS
@ WINED3D_RS_TEXTUREFACTOR
@ WINED3D_RS_COLORKEYENABLE
@ WINED3D_RS_NORMALDEGREE
@ WINED3D_RS_SOFTWAREVERTEXPROCESSING
@ WINED3D_RS_STIPPLEDALPHA
@ WINED3D_RS_COLORWRITEENABLE1
@ WINED3D_RS_STENCILENABLE
@ WINED3D_RS_ANTIALIASEDLINEENABLE
@ WINED3D_RS_SPECULARMATERIALSOURCE
@ WINED3D_RS_DEBUGMONITORTOKEN
@ WINED3D_RS_MAXTESSELLATIONLEVEL
@ WINED3D_RS_DITHERENABLE
@ WINED3D_RS_BACK_STENCILPASS
@ 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_TEXTUREPERSPECTIVE
@ WINED3D_RS_ENABLEADAPTIVETESSELLATION
@ WINED3D_RS_COLORWRITEENABLE3
@ WINED3D_RS_ALPHABLENDENABLE
@ WINED3D_RS_ADAPTIVETESS_X
@ WINED3D_RS_ADAPTIVETESS_Z
@ 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_NORMALIZENORMALS
@ WINED3D_RS_TWOSIDEDSTENCILMODE
@ WINED3D_RS_TRANSLUCENTSORTINDEPENDENT
@ WINED3D_RS_EMISSIVEMATERIALSOURCE
@ WINED3D_RS_PATCHSEGMENTS
@ WINED3D_RS_SPECULARENABLE
@ WINED3D_RS_ADAPTIVETESS_W
@ WINED3D_RS_SRCBLENDALPHA
@ WINED3D_RS_COLORKEYBLENDENABLE
@ 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_MIPMAPLODBIAS
@ WINED3D_RS_SEPARATEALPHABLENDENABLE
@ WINED3D_RS_STIPPLEENABLE
@ WINED3D_RS_ADAPTIVETESS_Y
@ WINED3D_RS_ALPHATESTENABLE
static int wined3d_bit_scan(unsigned int *x)
#define WINED3D_RESZ_CODE
@ WINED3D_PATCH_EDGE_DISCRETE
#define WINED3DUSAGE_LEGACY_CUBEMAP
@ 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_PS_CONSTS_F
#define WINED3D_MAX_STREAM_OUTPUT_BUFFERS
#define WINED3D_MAX_VS_CONSTS_F
#define WINED3DSTREAMSOURCE_INSTANCEDATA
#define WINED3D_MAX_CONSTANT_BUFFER_SIZE
@ WINED3D_LIGHT_PARALLELPOINT
@ WINED3D_LIGHT_DIRECTIONAL
@ WINED3D_TEXF_ANISOTROPIC
wined3d_texture_stage_state
@ 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 WINED3D_HIGHEST_SAMPLER_STATE
#define WINED3DSTREAMSOURCE_INDEXEDDATA
#define WINED3D_CKEY_SRC_BLT
@ WINED3D_TADDRESS_MIRROR_ONCE
#define WINED3DTA_CURRENT
#define WINED3D_MAX_STREAMS
#define WINED3D_VERTEX_SAMPLER_OFFSET
@ WINED3D_TOP_SELECT_ARG1
static bool wined3d_bound_range(unsigned int start, unsigned int count, unsigned int limit)
#define WINED3D_MAX_CONSTS_B
#define WINED3D_MAX_CLIP_DISTANCES
@ WINED3D_SHADER_TYPE_PIXEL
@ WINED3D_SHADER_TYPE_VERTEX
@ WINED3D_SHADER_TYPE_COUNT
#define WINED3D_MAX_CONSTS_I
#define WINED3D_HIGHEST_TEXTURE_STATE
#define WINED3D_LEGACY_FFP_LIGHTING
#define WINED3DERR_INVALIDCALL
#define WINED3D_MAX_FFP_TEXTURES
@ WINED3D_STENCIL_OP_KEEP
#define WINED3D_HIGHEST_TRANSFORM_STATE
#define WINEHIGHEST_RENDER_STATE
#define WINED3DTA_TEXTURE
void WINAPI wined3d_mutex_unlock(void)
void WINAPI wined3d_mutex_lock(void)
#define WINED3D_SHADER_CONST_PS_BUMP_ENV
#define MAX_SAMPLER_OBJECTS
@ WINED3D_PUSH_CONSTANTS_PS_FFP
@ WINED3D_PUSH_CONSTANTS_PS_B
@ WINED3D_PUSH_CONSTANTS_VS_B
@ WINED3D_PUSH_CONSTANTS_VS_FFP
@ WINED3D_PUSH_CONSTANTS_VS_I
@ WINED3D_PUSH_CONSTANTS_PS_F
@ WINED3D_PUSH_CONSTANTS_PS_I
@ WINED3D_PUSH_CONSTANTS_VS_F
static BOOL wined3d_bitmap_get_range(const uint32_t *bitmap, unsigned int bit_count, unsigned int start, struct wined3d_range *range)
#define WINED3D_STATE_NO_REF
#define MAX_CONSTANT_BUFFERS
#define WINED3D_ALPHA_TO_COVERAGE_ENABLE
#define WINED3D_BITMAP_SIZE(x)
static void wined3d_vec4_transform(struct wined3d_vec4 *dst, const struct wined3d_vec4 *v, const struct wined3d_matrix *m)
#define WINED3D_SHADER_CONST_PS_F
#define WINED3D_FORMAT_CAP_SHADOW
#define WINED3D_SHADER_CONST_FFP_VERTEXBLEND
#define WINED3D_SHADER_CONST_VS_B
#define WINED3D_STATE_INIT_DEFAULT
#define WINED3D_TEXTURE_COND_NP2
static struct wined3d_texture * wined3d_state_get_ffp_texture(const struct wined3d_state *state, unsigned int idx)
#define MAX_UNORDERED_ACCESS_VIEWS
#define WINED3D_SHADER_CONST_VS_I
#define WINED3D_SHADER_CONST_PS_I
static int wined3d_uint32_compare(uint32_t x, uint32_t y)
#define WINED3D_ALPHA_TO_COVERAGE_DISABLE
#define WINED3D_MAX_ACTIVE_LIGHTS
static BOOL is_same_fixup(struct color_fixup_desc f1, struct color_fixup_desc f2)
#define WINED3D_SHADER_CONST_FFP_COLOR_KEY
static BOOL can_use_texture_swizzle(const struct wined3d_d3d_info *d3d_info, const struct wined3d_format *format)
static uint32_t wined3d_mask_from_size(unsigned int size)
#define WINED3D_FORMAT_CAP_FILTERING
#define WINED3D_SHADER_CONST_VS_F
#define WINED3D_SHADER_CONST_PS_ALPHA_TEST
static void wined3d_srv_bind_count_dec(struct wined3d_shader_resource_view *srv)
#define WINED3D_SHADER_CONST_PS_B
#define WINED3D_SHADER_CONST_FFP_MODELVIEW
#define WINED3D_SHADER_CONST_FFP_PS
#define WINED3D_SHADER_CONST_FFP_LIGHTS
#define WINED3D_SHADER_CONST_FFP_PROJ
#define WINED3D_FFP_CONSTANTS_EXTRA_REGISTER
#define MAX_VERTEX_BLENDS
#define MAX_SHADER_RESOURCE_VIEWS
static BOOL wined3d_bitmap_is_set(const uint32_t *map, unsigned int idx)
static float int_to_float(uint32_t i)
#define WINED3D_SHADER_CONST_FFP_TEXMATRIX
#define WINED3D_SHADER_CONST_VS_POINTSIZE
#define WINED3D_SHADER_CONST_FFP_MATERIAL