48 TRACE(
"%p increasing refcount to %u.\n",
state, refcount);
63 TRACE(
"%p decreasing refcount to %u.\n",
state, refcount);
67 state->parent_ops->wined3d_object_destroyed(
state->parent);
87 TRACE(
"device %p, desc %p, parent %p, parent_ops %p, state %p.\n",
90 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
99 TRACE(
"Created blend state %p.\n",
object);
124 TRACE(
"%p decreasing refcount to %u.\n",
state, refcount);
128 state->parent_ops->wined3d_object_destroyed(
state->parent);
139 return state->parent;
148 TRACE(
"device %p, desc %p, parent %p, parent_ops %p, state %p.\n",
151 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
154 object->refcount = 1;
155 object->desc = *
desc;
160 TRACE(
"Created rasterizer state %p.\n",
object);
187 checkGLcall(
"glPolygonMode(GL_FRONT_AND_BACK, GL_POINT)");
191 checkGLcall(
"glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)");
195 checkGLcall(
"glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)");
198 FIXME(
"Unrecognized fill mode %#x.\n",
mode);
215 && !
context->stream_info.position_transformed)
233 if (!
state->fb->depth_stencil)
235 TRACE(
"No Z buffer - disabling depth test\n");
252 FIXME(
"W buffer is not well handled\n");
255 FIXME(
"Unrecognized depth buffer type %#x.\n", zenable);
288 FIXME(
"Unrecognized cull mode %#x.\n",
311 FIXME(
"Unrecognized shade mode %#x.\n",
338 gl_info->
gl_ops.gl.p_glDepthMask(1);
343 gl_info->
gl_ops.gl.p_glDepthMask(0);
370 WARN(
"Unrecognized compare function %#x.\n",
f);
372 FIXME(
"Unrecognized compare function %#x.\n",
f);
382 if (!depth_func)
return;
384 gl_info->
gl_ops.gl.p_glDepthFunc(depth_func);
401 WARN(
"Unsupported in local OpenGL implementation: glBlendEquation\n");
420 WARN(
"Unhandled blend op %#x.\n",
op);
422 FIXME(
"Unhandled blend op %#x.\n",
op);
437 WARN(
"Unsupported in local OpenGL implementation: glBlendEquationSeparate.\n");
443 TRACE(
"blend_equation %#x, blend_equation_alpha %#x.\n", blend_equation, blend_equation_alpha);
447 GL_EXTCALL(glBlendEquationSeparate(blend_equation, blend_equation_alpha));
503 WARN(
"Unhandled blend factor %#x.\n",
factor);
538 GLenum src_blend, dst_blend;
539 unsigned int rt_fmt_flags;
540 BOOL enable_dual_blend;
546 if (enable_blend && !enable_dual_blend)
548 rt_fmt_flags =
state->fb->render_targets[0]->format_flags;
554 enable_blend =
FALSE;
558 if (
context->last_was_dual_blend != enable_dual_blend)
561 context->last_was_dual_blend = enable_dual_blend;
574 rt_format =
state->fb->render_targets[0]->format;
585 GLenum src_blend_alpha, dst_blend_alpha;
590 WARN(
"Unsupported in local OpenGL implementation: glBlendFuncSeparate.\n");
598 GL_EXTCALL(glBlendFuncSeparate(src_blend, dst_blend, src_blend_alpha, dst_blend_alpha));
603 TRACE(
"glBlendFunc src=%x, dst=%x.\n", src_blend, dst_blend);
604 gl_info->
gl_ops.gl.p_glBlendFunc(src_blend, dst_blend);
616 WARN(
"Unsupported in local OpenGL implementation: glBlendColor.\n");
639 if (
state->blend_state)
672 if (enable_ckey ||
context->last_was_ckey)
674 context->last_was_ckey = enable_ckey;
704 gl_info->
gl_ops.gl.p_glAlphaFunc(glParm,
ref);
711 unsigned int enable_mask;
724 FIXME(
"Clipping not supported with vertex shaders.\n");
775 TRACE(
"Setting specular enable state and materials\n");
781 if (
state->material.power > gl_info->
limits.shininess)
789 WARN(
"Material power = %.8e, limit %.8e\n",
state->material.power, gl_info->
limits.shininess);
801 TRACE(
"Specular colors cannot be enabled in this version of opengl\n");
810 static const GLfloat black[] = {0.0f, 0.0f, 0.0f, 0.0f};
820 TRACE(
"Specular colors cannot be disabled in this version of opengl\n");
854 for (
i = 0;
i <
context->d3d_info->limits.ffp_blend_stages; ++
i)
861 checkGLcall(
"glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, color);");
871 checkGLcall(
"glEnable(GL_STENCIL_TEST_TWO_SIDE_EXT)");
876 gl_info->
gl_ops.gl.p_glStencilOp(stencilFail, depthFail, stencilPass);
902 WARN(
"Unrecognized stencil op %#x.\n",
op);
904 FIXME(
"Unrecognized stencil op %#x.\n",
op);
912 DWORD onesided_enable;
913 DWORD twosided_enable;
919 GLint stencilFail_back;
921 GLint stencilPass_back;
923 GLint depthFail_back;
926 if (!
state->fb->depth_stencil)
948 TRACE(
"(onesided %d, twosided %d, ref %x, mask %x, "
949 "GL_FRONT: func: %x, fail %x, zfail %x, zpass %x "
950 "GL_BACK: func: %x, fail %x, zfail %x, zpass %x)\n",
951 onesided_enable, twosided_enable,
ref,
mask,
952 func, stencilFail, depthFail, stencilPass,
953 func_back, stencilFail_back, depthFail_back, stencilPass_back);
955 if (twosided_enable && onesided_enable)
965 GL_EXTCALL(glStencilOpSeparate(
GL_BACK, stencilFail_back, depthFail_back, stencilPass_back));
977 func_back,
ref,
mask, stencilFail_back, depthFail_back, stencilPass_back);
979 func,
ref,
mask, stencilFail, depthFail, stencilPass);
986 checkGLcall(
"glStencilOpSeparateATI(GL_FRONT, ...)");
987 GL_EXTCALL(glStencilOpSeparateATI(
GL_BACK, stencilFail_back, depthFail_back, stencilPass_back));
988 checkGLcall(
"glStencilOpSeparateATI(GL_BACK, ...)");
992 FIXME(
"Separate (two sided) stencil not supported on this version of OpenGL. Caps weren't honored?\n");
995 else if(onesided_enable)
1000 checkGLcall(
"glDisable(GL_STENCIL_TEST_TWO_SIDE_EXT)");
1010 gl_info->
gl_ops.gl.p_glStencilOp(stencilFail, depthFail, stencilPass);
1059 checkGLcall(
"glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT)");
1067 checkGLcall(
"glFogi(GL_FOG_DISTANCE_MODE_NV, GL_EYE_PLANE_ABSOLUTE_NV)");
1081 checkGLcall(
"glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT)");
1091 checkGLcall(
"glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT)");
1100 checkGLcall(
"glFogi(GL_FOG_DISTANCE_MODE_NV, GL_EYE_RADIAL_NV)");
1104 WARN(
"Range fog enabled, but not supported by this GL implementation.\n");
1110 checkGLcall(
"glFogi(GL_FOG_DISTANCE_MODE_NV, GL_EYE_PLANE_ABSOLUTE_NV)");
1118 float fogstart, fogend;
1124 TRACE(
"Fog Start == %f\n", fogstart);
1128 TRACE(
"Fog End == %f\n", fogend);
1248 FIXME(
"Unexpected WINED3D_RS_FOGVERTEXMODE %#x.\n",
1275 FIXME(
"Unexpected WINED3D_RS_FOGTABLEMODE %#x.\n",
1282 if (new_source !=
context->fog_source || fogstart == fogend)
1284 context->fog_source = new_source;
1309 checkGLcall(
"glFogf(GL_FOG_DENSITY, (float) Value)");
1325 context->num_untracked_materials = 0;
1329 TRACE(
"diff %d, amb %d, emis %d, spec %d\n",
1344 context->num_untracked_materials++;
1349 context->num_untracked_materials++;
1358 context->num_untracked_materials++;
1363 context->num_untracked_materials++;
1372 context->num_untracked_materials++;
1382 if (Parm ==
context->tracking_parm)
return;
1392 checkGLcall(
"glColorMaterial(GL_FRONT_AND_BACK, Parm)");
1399 switch (
context->tracking_parm)
1431 static const GLfloat black[] = {0.0f, 0.0f, 0.0f, 0.0f};
1438 context->tracking_parm = Parm;
1451 TRACE(
"Line pattern: repeat %d bits %x.\n", tmppattern.lp.repeat_factor, tmppattern.lp.line_pattern);
1453 if (tmppattern.lp.repeat_factor)
1455 gl_info->
gl_ops.gl.p_glLineStipple(tmppattern.lp.repeat_factor, tmppattern.lp.line_pattern);
1456 checkGLcall(
"glLineStipple(repeat, linepattern)");
1469 static unsigned int once;
1472 FIXME(
"Setting line patterns is not supported in OpenGL core contexts.\n");
1506 FIXME(
"WINED3D_RS_POINTSIZE_MIN value %.8e not supported on this OpenGL implementation.\n",
min);
1508 FIXME(
"WINED3D_RS_POINTSIZE_MAX value %.8e not supported on this OpenGL implementation.\n",
max);
1548 checkGLcall(
"glPointParameterfvARB(GL_DISTANCE_ATTENUATION_ARB, ...)");
1553 checkGLcall(
"glPointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT, ...)");
1557 WARN(
"POINT_PARAMETERS not supported in this version of opengl\n");
1574 TRACE(
"Color mask: r(%d) g(%d) b(%d) a(%d)\n",
1609 WARN(
"Ignoring color write value for index %d, because gpu only supports %d render targets\n",
index, gl_info->
limits.buffers);
1621 checkGLcall(
"glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1)");
1626 checkGLcall(
"glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 0)");
1634 TRACE(
"Last Pixel Drawing Enabled\n");
1640 FIXME(
"Last Pixel Drawing Disabled, not handled yet\n");
1643 TRACE(
"Last Pixel Drawing Disabled, not handled yet\n");
1656 FIXME(
"Point sprites not supported\n");
1679 static unsigned int once;
1698 FIXME(
"(WINED3D_RS_WRAP0) Texture wrapping not yet supported.\n");
1704 WARN(
"Multisample antialiasing not supported by GL.\n");
1785 } scale_bias, const_bias, bias_clamp;
1801 TRACE(
"Depth format %s, using depthbias scale of %.8e.\n",
1807 TRACE(
"No depth stencil, using depth bias scale of 0.0.\n");
1824 WARN(
"EXT_polygon_offset_clamp extension missing, no support for depth bias clamping.\n");
1856 FIXME(
"Depth clamping not supported by GL.\n");
1862 FIXME(
"WINED3D_RS_ZVISIBLE not implemented.\n");
1868 FIXME(
"Stippled Alpha not supported yet.\n");
1874 FIXME(
"Antialias not supported yet.\n");
1880 FIXME(
"WINED3D_RS_MULTISAMPLEMASK %#x not yet implemented.\n",
1887 FIXME(
"WINED3D_RS_PATCHEDGESTYLE %#x not yet implemented.\n",
1905 FIXME(
"(WINED3D_RS_PATCHSEGMENTS,%f) not yet implemented\n", tmpvalue.f);
1914 FIXME(
"WINED3D_RS_POSITIONDEGREE %#x not yet implemented.\n",
1921 FIXME(
"WINED3D_RS_NORMALDEGREE %#x not yet implemented.\n",
1928 FIXME(
"WINED3D_RS_ENABLEADAPTIVETESSELLATION %#x not yet implemented.\n",
1948 if (zmin.f <=
zmax.f)
1951 checkGLcall(
"glEnable(GL_DEPTH_BOUNDS_TEST_EXT)");
1958 checkGLcall(
"glDisable(GL_DEPTH_BOUNDS_TEST_EXT)");
1964 checkGLcall(
"glDisable(GL_DEPTH_BOUNDS_TEST_EXT)");
1973 FIXME(
"Render state WINED3D_RS_WRAPU not implemented yet.\n");
1979 FIXME(
"Render state WINED3D_RS_WRAPV not implemented yet.\n");
1985 FIXME(
"Render state WINED3D_RS_MONOENABLE not implemented yet.\n");
1991 FIXME(
"Render state WINED3D_RS_ROP2 not implemented yet.\n");
1997 FIXME(
"Render state WINED3D_RS_PLANEMASK not implemented yet.\n");
2003 FIXME(
"Render state WINED3D_RS_SUBPIXEL not implemented yet.\n");
2009 FIXME(
"Render state WINED3D_RS_SUBPIXELX not implemented yet.\n");
2015 FIXME(
"Render state WINED3D_RS_STIPPLEENABLE not implemented yet.\n");
2021 FIXME(
"Render state WINED3D_RS_MIPMAPLODBIAS not implemented yet.\n");
2027 FIXME(
"Render state WINED3D_RS_ANISOTROPY not implemented yet.\n");
2033 FIXME(
"Render state WINED3D_RS_FLUSHBATCH not implemented yet.\n");
2039 FIXME(
"Render state WINED3D_RS_TRANSLUCENTSORTINDEPENDENT not implemented yet.\n");
2045 FIXME(
"Render state WINED3D_RS_EXTENTS not implemented yet.\n");
2051 FIXME(
"Render state WINED3D_RS_COLORKEYBLENDENABLE not implemented yet.\n");
2060 FIXME(
"Software vertex processing not implemented.\n");
2092 FIXME(
"Unhandled texture arg WINED3DTA_SPECULAR\n");
2096 FIXME(
"Unrecognized texture arg %#x\n",
arg);
2109 GLenum src0_target, src1_target, src2_target;
2110 GLenum opr0_target, opr1_target, opr2_target;
2112 GLenum opr=0, invopr, src3_target, opr3_target;
2115 TRACE(
"Alpha?(%d), Stage:%d Op(%s), a1(%d), a2(%d), a3(%d)\n", isAlpha, Stage,
debug_d3dtop(
op),
arg1,
arg2,
arg3);
2169 TRACE(
"ct(%x), 1:(%x,%x), 2:(%x,%x), 3:(%x,%x)\n", comb_target, src1, opr1, src2, opr2, src3, opr3);
2191 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_REPLACE");
2197 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2199 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2201 checkGLcall(
"GL_TEXTURE_ENV, src2_target, GL_ZERO");
2205 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_ZERO");
2213 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2229 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2231 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2233 checkGLcall(
"GL_TEXTURE_ENV, src2_target, GL_ZERO");
2237 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_ZERO");
2244 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2250 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2252 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2258 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_ZERO");
2266 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2272 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2274 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2280 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_ZERO");
2288 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2294 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2296 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2302 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_ZERO");
2311 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2317 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2319 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2325 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_ZERO");
2327 checkGLcall(
"GL_TEXTURE_ENV, opr3_target, invopr");
2334 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD_SIGNED");
2340 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2342 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2348 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_ZERO");
2350 checkGLcall(
"GL_TEXTURE_ENV, opr3_target, invopr");
2357 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD_SIGNED");
2363 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2365 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2371 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_ZERO");
2373 checkGLcall(
"GL_TEXTURE_ENV, opr3_target, invopr");
2380 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2386 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2388 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2409 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2415 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_PRIMARY_COLOR");
2417 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2423 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_PRIMARY_COLOR");
2425 checkGLcall(
"GL_TEXTURE_ENV, opr3_target, GL_ONE_MINUS_SRC_ALPHA");
2431 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2437 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_TEXTURE");
2439 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2445 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_TEXTURE");
2447 checkGLcall(
"GL_TEXTURE_ENV, opr3_target, GL_ONE_MINUS_SRC_ALPHA");
2453 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2459 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_CONSTANT");
2461 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2467 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_CONSTANT");
2469 checkGLcall(
"GL_TEXTURE_ENV, opr3_target, GL_ONE_MINUS_SRC_ALPHA");
2475 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2481 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2483 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2489 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_TEXTURE");
2491 checkGLcall(
"GL_TEXTURE_ENV, opr3_target, GL_ONE_MINUS_SRC_ALPHA");
2497 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2503 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2505 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2523 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2541 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_ZERO");
2543 checkGLcall(
"GL_TEXTURE_ENV, opr3_target, invopr");
2549 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2555 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2557 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2577 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2601 checkGLcall(
"GL_TEXTURE_ENV, src3_target, GL_ZERO");
2603 checkGLcall(
"GL_TEXTURE_ENV, opr3_target, invopr");
2609 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2615 checkGLcall(
"GL_TEXTURE_ENV, src1_target, GL_ZERO");
2617 checkGLcall(
"GL_TEXTURE_ENV, opr1_target, invopr");
2632 FIXME(
"Implement bump environment mapping in GL_NV_texture_env_combine4 path\n");
2642 checkGLcall(
"GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE4_NV");
2652 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_REPLACE");
2654 checkGLcall(
"GL_TEXTURE_ENV, src0_target, GL_PREVIOUS_EXT");
2656 checkGLcall(
"GL_TEXTURE_ENV, opr0_target, GL_SRC_ALPHA");
2662 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_REPLACE");
2672 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_REPLACE");
2682 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_MODULATE");
2696 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_MODULATE");
2710 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_MODULATE");
2724 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD");
2738 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD_SIGNED");
2752 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_ADD_SIGNED");
2768 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_SUBTRACT");
2780 FIXME(
"This version of opengl does not support GL_SUBTRACT\n");
2786 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_INTERPOLATE");
2796 checkGLcall(
"GL_TEXTURE_ENV, src2_target, GL_PRIMARY_COLOR");
2798 checkGLcall(
"GL_TEXTURE_ENV, opr2_target, GL_SRC_ALPHA");
2804 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_INTERPOLATE");
2814 checkGLcall(
"GL_TEXTURE_ENV, src2_target, GL_TEXTURE");
2816 checkGLcall(
"GL_TEXTURE_ENV, opr2_target, GL_SRC_ALPHA");
2822 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_INTERPOLATE");
2832 checkGLcall(
"GL_TEXTURE_ENV, src2_target, GL_CONSTANT");
2834 checkGLcall(
"GL_TEXTURE_ENV, opr2_target, GL_SRC_ALPHA");
2840 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_INTERPOLATE");
2850 checkGLcall(
"GL_TEXTURE_ENV, src2_target, GL_PREVIOUS");
2852 checkGLcall(
"GL_TEXTURE_ENV, opr2_target, GL_SRC_ALPHA");
2860 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_DOT3_RGBA_ARB");
2865 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_DOT3_RGBA_EXT");
2867 FIXME(
"This version of opengl does not support GL_DOT3\n");
2882 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_INTERPOLATE");
2902 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_MODULATE_ADD_ATI");
2930 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_MODULATE_ADD_ATI");
2932 checkGLcall(
"GL_TEXTURE_ENV, src0_target, GL_TEXTURE");
2934 checkGLcall(
"GL_TEXTURE_ENV, opr0_target, GL_ONE_MINUS_SRC_APHA");
2952 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_MODULATE_ADD_ATI");
2980 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_MODULATE_ADD_ATI");
3008 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_MODULATE_ADD_ATI");
3036 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_MODULATE_ADD_ATI");
3070 checkGLcall(
"GL_TEXTURE_ENV, comb_target, GL_MODULATE_ADD_ATI");
3095 FIXME(
"Implement bump mapping with GL_NV_texture_shader in non register combiner path\n");
3143 checkGLcall(
"GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE");
3157 BOOL tex_used =
context->fixed_function_usage_map & (1u << stage);
3161 TRACE(
"Setting color op for stage %d\n", stage);
3166 if (stage != mapped_stage)
WARN(
"Using non 1:1 mapping: %d -> %d!\n", stage, mapped_stage);
3170 if (tex_used && mapped_stage >= gl_info->
limits.textures)
3172 FIXME(
"Attempt to enable unsupported stage!\n");
3178 if (stage >=
context->lowest_disabled_stage)
3180 TRACE(
"Stage disabled\n");
3191 checkGLcall(
"glDisable(GL_TEXTURE_CUBE_MAP_ARB)");
3196 checkGLcall(
"glDisable(GL_TEXTURE_RECTANGLE_ARB)");
3218 BOOL tex_used =
context->fixed_function_usage_map & (1u << stage);
3223 TRACE(
"Setting alpha op for stage %d\n", stage);
3227 if (tex_used && mapped_stage >= gl_info->
limits.textures)
3229 FIXME(
"Attempt to enable unsupported stage!\n");
3301 TRACE(
"Setting alpha op for stage %d\n", stage);
3317 unsigned int mapped_stage =
context->tex_unit_map[tex];
3323 TRACE(
"Using a vertex shader, or stream sources not sorted out yet, skipping\n");
3328 if (mapped_stage >= gl_info->
limits.textures)
return;
3336 gl_info->
gl_ops.gl.p_glLoadMatrixf(&
mat._11);
3342 unsigned int texture_idx;
3344 for (texture_idx = 0; texture_idx < gl_info->
limits.texture_coords; ++texture_idx)
3355 unsigned int mapped_stage = 0;
3356 unsigned int textureNo;
3358 for (textureNo = 0; textureNo <
context->d3d_info->limits.ffp_blend_stages; ++textureNo)
3362 mapped_stage =
context->tex_unit_map[textureNo];
3365 if (mapped_stage >= gl_info->
limits.texture_coords)
3367 FIXME(
"Attempted to load unsupported texture coordinate %u\n", mapped_stage);
3375 TRACE(
"Setting up texture %u, idx %d, coordindx %u, data {%#x:%p}.\n",
3376 textureNo, mapped_stage, coordIdx,
e->data.buffer_object,
e->data.addr);
3378 if (*curVBO !=
e->data.buffer_object)
3382 *curVBO =
e->data.buffer_object;
3389 gl_info->
gl_ops.gl.p_glTexCoordPointer(
e->format->gl_vtx_format,
e->format->gl_vtx_type,
e->stride,
3390 e->data.addr +
state->load_base_vertex_index *
e->stride);
3401 for (textureNo = mapped_stage + 1; textureNo < gl_info->
limits.textures; ++textureNo)
3413 static const GLfloat s_plane[] = { 1.0f, 0.0f, 0.0f, 0.0f };
3414 static const GLfloat t_plane[] = { 0.0f, 1.0f, 0.0f, 0.0f };
3415 static const GLfloat r_plane[] = { 0.0f, 0.0f, 1.0f, 0.0f };
3416 static const GLfloat q_plane[] = { 0.0f, 0.0f, 0.0f, 1.0f };
3422 TRACE(
"No texture unit mapped to stage %d. Skipping texture coordinates.\n", stage);
3428 WARN(
"stage %u not mapped to a valid texture unit (%u)\n", stage, mapped_stage);
3451 checkGLcall(
"WINED3DTSS_TCI_PASSTHRU - Disable texgen.");
3460 gl_info->
gl_ops.gl.p_glPushMatrix();
3461 gl_info->
gl_ops.gl.p_glLoadIdentity();
3466 gl_info->
gl_ops.gl.p_glPopMatrix();
3467 checkGLcall(
"WINED3DTSS_TCI_CAMERASPACEPOSITION - Set eye plane.");
3472 checkGLcall(
"WINED3DTSS_TCI_CAMERASPACEPOSITION - Set texgen mode.");
3477 checkGLcall(
"WINED3DTSS_TCI_CAMERASPACEPOSITION - Enable texgen.");
3486 FIXME(
"WINED3DTSS_TCI_CAMERASPACENORMAL not supported.\n");
3491 gl_info->
gl_ops.gl.p_glPushMatrix();
3492 gl_info->
gl_ops.gl.p_glLoadIdentity();
3497 gl_info->
gl_ops.gl.p_glPopMatrix();
3498 checkGLcall(
"WINED3DTSS_TCI_CAMERASPACENORMAL - Set eye plane.");
3503 checkGLcall(
"WINED3DTSS_TCI_CAMERASPACENORMAL - Set texgen mode.");
3508 checkGLcall(
"WINED3DTSS_TCI_CAMERASPACENORMAL - Enable texgen.");
3517 FIXME(
"WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR not supported.\n");
3522 gl_info->
gl_ops.gl.p_glPushMatrix();
3523 gl_info->
gl_ops.gl.p_glLoadIdentity();
3528 gl_info->
gl_ops.gl.p_glPopMatrix();
3529 checkGLcall(
"WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR - Set eye plane.");
3534 checkGLcall(
"WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR - Set texgen mode.");
3539 checkGLcall(
"WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR - Enable texgen.");
3546 checkGLcall(
"WINED3DTSS_TCI_SPHEREMAP - Set texgen mode.");
3551 checkGLcall(
"WINED3DTSS_TCI_SPHEREMAP - Enable texgen.");
3556 FIXME(
"Unhandled WINED3D_TSS_TEXCOORD_INDEX %#x.\n",
3603 if (tex_is_pow2 || (
context->lastWasPow2Texture & (1u <<
sampler)))
3620 FIXME(
"Unrecognized or unsupported texture address mode %#x.\n",
t);
3647 FIXME(
"Unrecognized or unsupported WINED3D_SAMP_MAG_FILTER %#x.\n",
3651 FIXME(
"Unrecognized or unsupported WINED3D_SAMP_MIN_FILTER %#x.\n",
3655 FIXME(
"Unrecognized or unsupported WINED3D_SAMP_MIP_FILTER %#x.\n",
3659 desc->lod_bias = lod_bias.f;
3660 desc->min_lod = -1000.0f;
3661 desc->max_lod = 1000.0f;
3668 desc->max_anisotropy = 1;
3694 DWORD mapped_stage =
context->tex_unit_map[sampler_idx];
3697 TRACE(
"Sampler %u.\n", sampler_idx);
3701 TRACE(
"No sampler mapped to stage %u. Returning.\n", sampler_idx);
3705 if (mapped_stage >= gl_info->
limits.graphics_samplers)
3709 if (
state->textures[sampler_idx])
3712 const DWORD *sampler_states =
state->sampler_states[sampler_idx];
3731 ERR(
"Failed to create sampler.\n");
3736 ERR(
"Failed to insert sampler.\n");
3765 if (!
context->last_was_pshader)
3788 for (
i = 0;
i <
context->d3d_info->limits.ffp_blend_stages; ++
i)
3846 gl_info->
gl_ops.gl.p_glPushMatrix();
3854 gl_info->
gl_ops.gl.p_glLoadIdentity();
3861 TRACE(
"Clipplane [%.8e, %.8e, %.8e, %.8e]\n",
3866 gl_info->
gl_ops.gl.p_glPopMatrix();
3879 WARN(
"Unsupported blend matrix set\n");
3896 gl_info->
gl_ops.gl.p_glMatrixMode(glMat);
3911 static unsigned int once;
3916 if (!once++)
FIXME(
"Vertex blend flags %#x not supported.\n",
f);
3917 else WARN(
"Vertex blend flags %#x not supported.\n",
f);
3925 static unsigned int once;
3940 if (!
device->vertexBlendUsed)
3943 for (
i = 1;
i < gl_info->
limits.blends; ++
i)
3954 if (!once++)
FIXME(
"Vertex blend flags %#x not supported.\n",
val);
3955 else WARN(
"Vertex blend flags %#x not supported.\n",
val);
3982 for (
k = 0;
k < gl_info->
limits.lights; ++
k)
3996 for (
k = 0;
k < gl_info->
limits.user_clip_distances; ++
k)
4004 gl_info->
gl_ops.gl.p_glLoadIdentity();
4016 if (
context->device->vertexBlendUsed)
4018 for (
k = 1;
k < gl_info->
limits.blends; ++
k)
4035 gl_info->
gl_ops.gl.p_glLoadMatrixf(&projection.
_11);
4062 context->numbered_array_mask &= ~(1u <<
i);
4072 for (
i = 0;
i <
context->gl_info->limits.vertex_attribs; ++
i) {
4095 if (
context->numbered_array_mask & (1u <<
i))
4098 GL_EXTCALL(glVertexAttrib4f(
i, 1.0f, 1.0f, 1.0f, 1.0f));
4100 GL_EXTCALL(glVertexAttrib4f(
i, 0.0f, 0.0f, 0.0f, 0.0f));
4107 context->instance_count =
state->streams[0].frequency ?
state->streams[0].frequency : 1;
4117 if (
context->numbered_array_mask & (1u <<
i))
4122 TRACE_(d3d_shader)(
"Loading array %u [VBO=%u].\n",
i,
element->data.buffer_object);
4126 if (curVBO !=
element->data.buffer_object)
4130 curVBO =
element->data.buffer_object;
4136 if (
vs &&
vs->reg_maps.shader_version.major >= 4
4149 if (!(
context->numbered_array_mask & (1u <<
i)))
4152 context->numbered_array_mask |= (1u <<
i);
4162 if (
element->data.buffer_object)
4165 if (
context->numbered_array_mask & (1u <<
i))
4191 c |= (*
src & 0xff0000u) >> 16;
4192 c |= (*
src & 0xffu) << 16;
4228 FIXME(
"Unsure about WINED3DDECLTYPE_UDEC3.\n");
4232 FIXME(
"Unsure about WINED3DDECLTYPE_DEC3N.\n");
4266 ERR(
"Unexpected declaration in stride 0 attributes.\n");
4282 TRACE(
"Using fast vertex array code\n");
4295 TRACE(
"Blend %u %p %u\n",
e->format->component_count,
4296 e->data.addr +
state->load_base_vertex_index *
e->stride,
e->stride);
4299 checkGLcall(
"glEnableClientState(GL_WEIGHT_ARRAY_ARB)");
4301 GL_EXTCALL(glVertexBlendARB(
e->format->component_count + 1));
4303 if (curVBO !=
e->data.buffer_object)
4307 curVBO =
e->data.buffer_object;
4310 TRACE(
"glWeightPointerARB(%#x, %#x, %#x, %p);\n",
4311 e->format->gl_vtx_format,
4312 e->format->gl_vtx_type,
4314 e->data.addr +
state->load_base_vertex_index *
e->stride);
4315 GL_EXTCALL(glWeightPointerARB(
e->format->gl_vtx_format,
e->format->gl_vtx_type,
e->stride,
4316 e->data.addr +
state->load_base_vertex_index *
e->stride));
4325 FIXME(
"blendMatrixIndices support\n");
4335 WARN(
"Vertex blending not supported.\n");
4344 checkGLcall(
"glWeightbvARB(gl_info->max_blends, weights)");
4352 TRACE(
"Cannot change ptSize here in openGl\n");
4361 if (curVBO !=
e->data.buffer_object)
4365 curVBO =
e->data.buffer_object;
4368 TRACE(
"glVertexPointer(%#x, %#x, %#x, %p);\n",
4369 e->format->gl_vtx_format,
e->format->gl_vtx_type,
e->stride,
4370 e->data.addr +
state->load_base_vertex_index *
e->stride);
4371 gl_info->
gl_ops.gl.p_glVertexPointer(
e->format->gl_vtx_format,
e->format->gl_vtx_type,
e->stride,
4372 e->data.addr +
state->load_base_vertex_index *
e->stride);
4375 checkGLcall(
"glEnableClientState(GL_VERTEX_ARRAY)");
4383 if (curVBO !=
e->data.buffer_object)
4387 curVBO =
e->data.buffer_object;
4390 TRACE(
"glNormalPointer(%#x, %#x, %p);\n",
e->format->gl_vtx_type,
e->stride,
4391 e->data.addr +
state->load_base_vertex_index *
e->stride);
4392 gl_info->
gl_ops.gl.p_glNormalPointer(
e->format->gl_vtx_type,
e->stride,
4393 e->data.addr +
state->load_base_vertex_index *
e->stride);
4396 checkGLcall(
"glEnableClientState(GL_NORMAL_ARRAY)");
4401 gl_info->
gl_ops.gl.p_glNormal3f(0, 0, 0);
4410 if (curVBO !=
e->data.buffer_object)
4414 curVBO =
e->data.buffer_object;
4417 TRACE(
"glColorPointer(%#x, %#x %#x, %p);\n",
4418 e->format->gl_vtx_format,
e->format->gl_vtx_type,
e->stride,
4419 e->data.addr +
state->load_base_vertex_index *
e->stride);
4420 gl_info->
gl_ops.gl.p_glColorPointer(
e->format->gl_vtx_format,
e->format->gl_vtx_type,
e->stride,
4421 e->data.addr +
state->load_base_vertex_index *
e->stride);
4422 checkGLcall(
"glColorPointer(4, GL_UNSIGNED_BYTE, ...)");
4424 checkGLcall(
"glEnableClientState(GL_COLOR_ARRAY)");
4429 gl_info->
gl_ops.gl.p_glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
4436 TRACE(
"setting specular colour\n");
4445 if (curVBO !=
e->data.buffer_object)
4449 curVBO =
e->data.buffer_object;
4459 TRACE(
"glSecondaryColorPointer(%#x, %#x, %#x, %p);\n",
format,
type,
e->stride,
4460 e->data.addr +
state->load_base_vertex_index *
e->stride);
4462 e->data.addr +
state->load_base_vertex_index *
e->stride));
4463 checkGLcall(
"glSecondaryColorPointerEXT(format, type, ...)");
4470 TRACE(
"glSecondaryColorPointer(3, GL_UNSIGNED_BYTE, %#x, %p);\n",
e->stride,
4471 e->data.addr +
state->load_base_vertex_index *
e->stride);
4473 e->data.addr +
state->load_base_vertex_index *
e->stride));
4474 checkGLcall(
"glSecondaryColorPointerEXT(3, GL_UNSIGNED_BYTE, ...)");
4478 FIXME(
"Add 4 component specular color pointers for type %x\n",
type);
4480 TRACE(
"glSecondaryColorPointer(3, %#x, %#x, %p);\n",
type,
e->stride,
4481 e->data.addr +
state->load_base_vertex_index *
e->stride);
4483 e->data.addr +
state->load_base_vertex_index *
e->stride));
4484 checkGLcall(
"glSecondaryColorPointerEXT(3, type, ...)");
4488 checkGLcall(
"glEnableClientState(GL_SECONDARY_COLOR_ARRAY_EXT)");
4492 WARN(
"Specular colour is not supported in this GL implementation.\n");
4504 WARN(
"Specular colour is not supported in this GL implementation.\n");
4514 BOOL load_numbered =
context->d3d_info->ffp_generic_attributes
4516 BOOL load_named = !
context->d3d_info->ffp_generic_attributes
4520 if (
context->numberedArraysLoaded && !load_numbered)
4524 context->numbered_array_mask = 0;
4526 else if (
context->namedArraysLoaded)
4534 TRACE(
"Loading numbered arrays\n");
4538 else if (load_named)
4540 TRACE(
"Loading vertex data\n");
4562 transformed =
context->stream_info.position_transformed;
4563 if (transformed !=
context->last_was_rhw && !useVertexShaderFunction)
4566 context->last_was_rhw = transformed;
4568 if (
context->stream_info.swizzle_map !=
context->last_swizzle_map)
4576 if (!useVertexShaderFunction)
4580 if (wasrhw !=
context->last_was_rhw
4603 if (
context->last_was_vshader)
4607 if (!
context->d3d_info->vs_clipping
4613 for (
i = 0;
i < gl_info->
limits.user_clip_distances; ++
i)
4623 if (!
context->last_was_vshader)
4626 if (!
context->d3d_info->vs_clipping)
4635 FIXME(
"Clipping not supported with vertex shaders.\n");
4659 for (
i = 0;
i < gl_info->
limits.user_clip_distances; ++
i)
4666 context->last_was_vshader = useVertexShaderFunction;
4672 if (!useVertexShaderFunction)
4695 *viewport =
state->viewport;
4712 if (
context->render_offscreen)
4719 else if (depth_stencil)
4725 FIXME(
"Could not get the height of render targets.\n");
4752 float pixel_center_offset =
context->d3d_info->wined3d_creation_flags
4758 vp.
x += pixel_center_offset;
4759 vp.
y += pixel_center_offset;
4793 float colRGBA[] = {0.0f, 0.0f, 0.0f, 0.0f};
4797 gl_info->
gl_ops.gl.p_glPushMatrix();
4895 gl_info->
gl_ops.gl.p_glPopMatrix();
4912 if (
context->render_offscreen)
4914 gl_info->
gl_ops.gl.p_glScissor(
r->left,
r->top,
r->right -
r->left,
r->bottom -
r->top);
4923 gl_info->
gl_ops.gl.p_glScissor(
r->left,
height -
r->bottom,
r->right -
r->left,
r->bottom -
r->top);
4950 if (
context->render_offscreen)
4974 WARN(
"Point sprite coordinate origin switching not supported.\n");
4985 checkGLcall(
"glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN, ...)");
5035 context->update_shader_resource_bindings = 1;
5042 context->update_compute_shader_resource_bindings = 1;
5049 context->update_unordered_access_view_bindings = 1;
5056 context->update_compute_unordered_access_view_bindings = 1;
5061 WARN(
"ARB_image_load_store is not supported by OpenGL implementation.\n");
5085 FIXME(
"Appending to stream output buffers not implemented.\n");
5097 WARN(
"Transform feedback not supported.\n");
5944 memset(caps, 0,
sizeof(*caps));
5964 memset(caps, 0,
sizeof(*caps));
6062 static const DWORD simple_states[] =
6113 ERR(
"State %s (%#x) should have a representative.\n",
6124 ERR(
"State %s (%#x) has invalid representative %s (%#x).\n",
6152 memset(multistate_funcs, 0,
sizeof(multistate_funcs));
6162 case 0:
cur = misc;
break;
6174 for(
i = 0;
cur[
i].state;
i++) {
6208 dev_multistate_funcs[
cur[
i].state][0] = multistate_funcs[
cur[
i].state][0];
6209 dev_multistate_funcs[
cur[
i].state][1] = multistate_funcs[
cur[
i].state][1];
6214 sizeof(**dev_multistate_funcs) * 3)))
6217 dev_multistate_funcs[
cur[
i].state] = funcs_array;
6218 dev_multistate_funcs[
cur[
i].state][2] = multistate_funcs[
cur[
i].state][2];
6221 ERR(
"Unexpected amount of state handlers for state %u: %u\n",
6225 if (StateTable[
cur[
i].
state].representative
6228 FIXME(
"State %s (%#x) has different representatives in different pipeline parts.\n",
static BOOL heap_free(void *mem)
static void * heap_realloc(void *mem, size_t len)
#define InterlockedIncrement
#define InterlockedDecrement
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void wined3d_cs_destroy_object(struct wined3d_cs *cs, void(*callback)(void *object), void *object)
float float_16_to_32(const unsigned short in) DECLSPEC_HIDDEN
static const struct @264 state_table[]
BYTE * wined3d_buffer_load_sysmem(struct wined3d_buffer *buffer, struct wined3d_context *context)
void context_enable_clip_distances(struct wined3d_context *context, unsigned int enable_mask)
void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info, unsigned int unit)
void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint name)
void context_state_fb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void context_end_transform_feedback(struct wined3d_context *context)
void context_state_drawbuf(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void vdecl_miscpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_blendfactor(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_colormat(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_cullmode(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_zenable(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_cb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_msaa_w(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_depthclip(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void state_nop(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void none_free(struct wined3d_device *device)
static void state_stencilwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
const struct wined3d_vertex_pipe_ops none_vertex_pipe
void apply_pixelshader(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void viewport_miscpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_msaa(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_blendfactor_w(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
ULONG CDECL wined3d_blend_state_incref(struct wined3d_blend_state *state)
static void fp_none_get_caps(const struct wined3d_gl_info *gl_info, struct fragment_caps *caps)
static GLenum gl_blend_op(const struct wined3d_gl_info *gl_info, enum wined3d_blend_op op)
static void unload_tex_coords(const struct wined3d_gl_info *gl_info)
static void state_lighting(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_ambient(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void state_fogstartend(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void * ffp_alloc(const struct wined3d_shader_backend_ops *shader_backend, void *shader_priv)
static void state_colorwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void validate_state_table(struct StateEntry *state_table)
static void frontface(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static DWORD fp_none_get_emul_mask(const struct wined3d_gl_info *gl_info)
static void wined3d_blend_state_destroy_object(void *object)
void state_pointsprite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_rop2(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
const struct wined3d_vertex_pipe_ops ffp_vertex_pipe
static void state_depthclip_w(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_patchsegments(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_line_antialias(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void transform_view(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_uav_warn(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_translucentsi(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_flushbatch(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_cs_resource_binding(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
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)
static void multistate_apply_2(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_vertexblend(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_stencil(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_scissor(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_psizemin_ext(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void psorigin(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void get_viewport(struct wined3d_context *context, const struct wined3d_state *state, struct wined3d_viewport *viewport)
static void get_src_and_opr(DWORD arg, BOOL is_alpha, GLenum *source, GLenum *operand)
static void set_tex_op(const struct wined3d_gl_info *gl_info, const struct wined3d_state *state, BOOL isAlpha, int Stage, enum wined3d_texture_op op, DWORD arg1, DWORD arg2, DWORD arg3)
static void load_numbered_arrays(struct wined3d_context *context, const struct wined3d_stream_info *stream_info, const struct wined3d_state *state)
void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_swvp(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static DWORD vp_none_get_emul_mask(const struct wined3d_gl_info *gl_info)
const struct StateEntryTemplate misc_state_template[]
static void state_shader_resource_binding(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void state_fogcolor(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_normalize(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_subpixelx(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_stippledalpha(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_lastpixel(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static const struct StateEntryTemplate ffp_fragmentstate_template[]
static void state_ditherenable(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_psizemin_w(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void *CDECL wined3d_blend_state_get_parent(const struct wined3d_blend_state *state)
static void wined3d_sampler_desc_from_sampler_states(struct wined3d_sampler_desc *desc, const struct wined3d_context *context, const DWORD *sampler_states, const struct wined3d_texture *texture)
static void state_blend_object(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_subpixel(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static DWORD vp_ffp_get_emul_mask(const struct wined3d_gl_info *gl_info)
static void load_tex_coords(const struct wined3d_context *context, const struct wined3d_stream_info *si, GLuint *curVBO, const struct wined3d_state *state)
static void state_undefined(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void shader_bumpenv(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void scissorrect(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void vp_none_get_caps(const struct wined3d_gl_info *gl_info, struct wined3d_vertex_caps *caps)
static const struct StateEntryTemplate vp_ffp_states[]
static void state_cs_uav_binding(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void set_color_mask(const struct wined3d_gl_info *gl_info, UINT index, DWORD mask)
static void * none_alloc(const struct wined3d_shader_backend_ops *shader_backend, void *shader_priv)
static void ffp_fragment_get_caps(const struct wined3d_gl_info *gl_info, struct fragment_caps *caps)
static void psorigin_w(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_wrapu(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void indexbuffer(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void transform_world(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static BOOL ffp_none_context_alloc(struct wined3d_context *context)
static void state_wrap(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void state_fog_fragpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_multisampmask(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_so_warn(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_nvdb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_tessellation(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void frontface_cc(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_monoenable(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void load_vertex_data(struct wined3d_context *context, const struct wined3d_stream_info *si, const struct wined3d_state *state)
static void state_stencilwrite2s(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void wined3d_rasterizer_state_destroy_object(void *object)
static BOOL fp_none_color_fixup_supported(struct color_fixup_desc fixup)
static void multistate_apply_3(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_wrapv(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void viewport_miscpart_cc(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_texfactor(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void gl_blend_from_d3d(GLenum *src_blend, GLenum *dst_blend, enum wined3d_blend d3d_src_blend, enum wined3d_blend d3d_dst_blend, const struct wined3d_format *rt_format)
static void tex_coordindex(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void ffp_free(struct wined3d_device *device)
ULONG CDECL wined3d_blend_state_decref(struct wined3d_blend_state *state)
const struct fragment_pipeline none_fragment_pipe
const struct fragment_pipeline ffp_fragment_pipeline
static void transform_texture(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_depthbias(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_blendop(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_patchedgestyle(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_specularenable(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static enum wined3d_texture_address wined3d_texture_address_mode(const struct wined3d_texture *texture, enum wined3d_texture_address t)
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)
ULONG CDECL wined3d_rasterizer_state_incref(struct wined3d_rasterizer_state *state)
static void state_blendop_w(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void streamsrc(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_compute_shader(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void renderstate_stencil_twosided(struct wined3d_context *context, GLint face, GLint func, GLint ref, GLuint mask, GLint stencilFail, GLint depthFail, GLint stencilPass)
static void state_localviewer(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void tex_alphaop(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void sampler_texmatrix(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_mipmaplodbias(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_anisotropy(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_ckeyblend(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
ULONG CDECL wined3d_rasterizer_state_decref(struct wined3d_rasterizer_state *state)
static void state_uav_binding(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_zvisible(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static GLenum gl_blend_factor(enum wined3d_blend factor, const struct wined3d_format *dst_format)
static void ffp_none_context_free(struct wined3d_context *context)
static void none_enable(const struct wined3d_gl_info *gl_info, BOOL enable)
void state_clipping(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_linepattern(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_stippleenable(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void transform_worldex(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void prune_invalid_states(struct StateEntry *state_table, const struct wined3d_gl_info *gl_info, const struct wined3d_d3d_info *d3d_info)
void state_pointsprite_w(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void tex_colorop(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void vp_ffp_get_caps(const struct wined3d_gl_info *gl_info, struct wined3d_vertex_caps *caps)
static void state_cb_warn(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void transform_projection(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_extents(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_zfunc(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void state_alpha_test(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_normaldegree(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static BOOL ffp_color_fixup_supported(struct color_fixup_desc fixup)
HRESULT compile_state_table(struct StateEntry *StateTable, APPLYSTATEFUNC **dev_multistate_funcs, const struct wined3d_gl_info *gl_info, const struct wined3d_d3d_info *d3d_info, const struct wined3d_vertex_pipe_ops *vertex, const struct fragment_pipeline *fragment, const struct StateEntryTemplate *misc)
void *CDECL wined3d_rasterizer_state_get_parent(const struct wined3d_rasterizer_state *state)
static void state_vertexblend_w(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_fillmode(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_psizemin_arb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_pscale(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_shader(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void state_fogdensity(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void clipplane(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_debug_monitor(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static unsigned int num_handlers(const APPLYSTATEFUNC *funcs)
static void unload_numbered_array(struct wined3d_context *context, int i)
static void unload_numbered_arrays(struct wined3d_context *context)
static void unload_vertex_data(const struct wined3d_gl_info *gl_info)
static void state_antialias(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_so(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_linepattern_w(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
GLenum wined3d_gl_compare_func(enum wined3d_cmp_func f)
static void state_colorwrite_i(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_fog_vertexpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void vertexdeclaration(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_planemask(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static GLenum gl_stencil_op(enum wined3d_stencil_op op)
static void ffp_enable(const struct wined3d_gl_info *gl_info, BOOL enable)
static DWORD ffp_fragment_get_emul_mask(const struct wined3d_gl_info *gl_info)
static void viewport_vertexpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_zwriteenable(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_positiondegree(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
static void state_blend(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void state_shademode(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void wined3d_texture_bind(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb)
void texture_activate_dimensions(const struct wined3d_texture *texture, const struct wined3d_gl_info *gl_info)
void get_modelview_matrix(const struct wined3d_context *context, const struct wined3d_state *state, unsigned int index, struct wined3d_matrix *mat)
const char * debug_d3dformat(enum wined3d_format_id format_id)
void get_fog_start_end(const struct wined3d_context *context, const struct wined3d_state *state, float *start, float *end)
BOOL is_invalid_op(const struct wined3d_state *state, int stage, enum wined3d_texture_op op, DWORD arg1, DWORD arg2, DWORD arg3)
const char * debug_d3dstate(DWORD state)
void get_pointsize_minmax(const struct wined3d_context *context, const struct wined3d_state *state, float *out_min, float *out_max)
void get_pointsize(const struct wined3d_context *context, const struct wined3d_state *state, float *out_pointsize, float *out_att)
const char * debug_d3dtop(enum wined3d_texture_op d3dtop)
void sampler_texdim(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
void wined3d_gl_limits_get_uniform_block_range(const struct wined3d_gl_limits *gl_limits, enum wined3d_shader_type shader_type, unsigned int *base, unsigned int *count)
void get_texture_matrix(const struct wined3d_context *context, const struct wined3d_state *state, unsigned int tex, struct wined3d_matrix *mat)
void get_projection_matrix(const struct wined3d_context *context, const struct wined3d_state *state, struct wined3d_matrix *mat)
const char * debug_color(const struct wined3d_color *color)
void wined3d_rendertarget_view_get_drawable_size(const struct wined3d_rendertarget_view *view, const struct wined3d_context *context, unsigned int *width, unsigned int *height)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
static xmlCharEncodingHandlerPtr * handlers
#define GL_TEXTURE_COORD_ARRAY
GLint GLint GLsizei GLsizei GLsizei depth
GLAPI void GLAPIENTRY glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
#define GL_AMBIENT_AND_DIFFUSE
#define GL_FRONT_AND_BACK
GLint GLint GLint GLint GLint x
#define GL_SRC_ALPHA_SATURATE
#define GL_POLYGON_OFFSET_FILL
#define GL_ONE_MINUS_DST_ALPHA
GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture)
#define GL_TEXTURE_GEN_MODE
GLuint GLuint GLsizei count
#define GL_OPERAND0_ALPHA
#define GL_QUADRATIC_ATTENUATION
#define GL_ONE_MINUS_DST_COLOR
GLuint GLuint GLsizei GLenum type
GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
GLint GLint GLint GLint GLint GLint y
#define GL_FUNC_REVERSE_SUBTRACT
#define GL_LIGHT_MODEL_LOCAL_VIEWER
#define GL_OPERAND2_ALPHA
#define GL_TEXTURE_ENV_MODE
#define GL_SAMPLE_ALPHA_TO_COVERAGE
#define GL_OPERAND1_ALPHA
#define GL_COLOR_MATERIAL
#define GL_LINEAR_ATTENUATION
#define GL_ONE_MINUS_SRC_ALPHA
GLint GLint GLsizei GLsizei height
#define GL_SPOT_DIRECTION
GLAPI void GLAPIENTRY glBlendEquation(GLenum mode)
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
#define GL_TEXTURE_ENV_COLOR
#define GL_CONSTANT_ATTENUATION
#define GL_ONE_MINUS_SRC_COLOR
#define GL_LIGHT_MODEL_AMBIENT
#define GL_POINT_SIZE_MAX_ARB
#define GL_OPERAND3_ALPHA_NV
#define GL_POINT_SPRITE_ARB
#define GL_VERTEX_BLEND_ARB
#define GL_UNIFORM_BUFFER
#define GL_FOG_COORDINATE_SOURCE_EXT
GLenum GLenum GLenum GLenum GLenum scale
#define GL_EYE_PLANE_ABSOLUTE_NV
#define GL_CONSTANT_COLOR_EXT
#define GL_WEIGHT_ARRAY_ARB
#define GL_ONE_MINUS_CONSTANT_COLOR_EXT
#define GL_POINT_SIZE_MIN_ARB
#define GL_FRAGMENT_DEPTH_EXT
#define GL_FRAMEBUFFER_SRGB
GLuint GLuint GLuint GLuint arg1
GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg3
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
#define GL_TEXTURE_CUBE_MAP_ARB
#define GL_PRIMARY_COLOR_EXT
GLenum GLuint GLint GLenum face
#define GL_MODELVIEW1_ARB
#define GL_ONE_MINUS_SRC1_COLOR
#define GL_FOG_COORDINATE_EXT
#define GL_UNSIGNED_IDENTITY_NV
#define GL_STENCIL_TEST_TWO_SIDE_EXT
#define GL_POINT_SIZE_MAX_EXT
#define GL_POINT_DISTANCE_ATTENUATION_ARB
#define GL_MODELVIEW2_ARB
#define GL_TRANSFORM_FEEDBACK_BUFFER
#define GL_FOG_DISTANCE_MODE_NV
#define GL_ONE_MINUS_SRC1_ALPHA
#define GL_MODULATE_ADD_ATI
#define GL_DISTANCE_ATTENUATION_EXT
#define GL_OPERAND3_RGB_NV
#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV
#define GL_SOURCE3_ALPHA_NV
#define GL_TEXTURE_RECTANGLE_ARB
#define GL_ELEMENT_ARRAY_BUFFER
#define GL_REFLECTION_MAP_NV
GLubyte GLubyte GLubyte GLubyte w
#define GL_SOURCE3_RGB_NV
#define GL_SECONDARY_COLOR_ARRAY_EXT
#define GL_POINT_SPRITE_COORD_ORIGIN
#define GL_MULTISAMPLE_ARB
#define GL_POINT_SIZE_MIN_EXT
#define GL_DEPTH_BOUNDS_TEST_EXT
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 factor
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 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
struct task_struct * current
static const WCHAR desc[]
static const char * dst_format
static void stream_info(IStream *stream, HGLOBAL *hmem, int *size, int *pos)
static float(__cdecl *square_half_float)(float x
void set_tex_op_nvrc(const struct wined3d_gl_info *gl_info, const struct wined3d_state *state, BOOL is_alpha, int stage, enum wined3d_texture_op op, DWORD arg1, DWORD arg2, DWORD arg3, INT texture_idx, DWORD dst)
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)
void wined3d_sampler_bind(struct wined3d_sampler *sampler, unsigned int unit, struct wined3d_texture *texture, const struct wined3d_context *context)
ULONG CDECL wined3d_sampler_decref(struct wined3d_sampler *sampler)
static void * heap_calloc(SIZE_T count, SIZE_T size)
#define WINE_RB_ENTRY_VALUE(element, type, field)
static struct wine_rb_entry * wine_rb_get(const struct wine_rb_tree *tree, const void *key)
static int wine_rb_put(struct wine_rb_tree *tree, const void *key, struct wine_rb_entry *entry)
static struct __wine_debug_functions funcs
DWORD MaxSimultaneousTextures
DWORD MaxTextureBlendStages
const struct StateEntryTemplate * states
struct wined3d_device * device
const struct wined3d_parent_ops * parent_ops
struct wined3d_d3d_limits limits
BOOL supported[WINED3D_GL_EXT_COUNT]
struct opengl_funcs gl_ops
struct wined3d_gl_limits limits
struct wined3d_vec4 position
struct wined3d_light OriginalParms
struct wined3d_vec4 direction
struct wined3d_device * device
const struct wined3d_parent_ops * parent_ops
struct wined3d_stream_info_element elements[MAX_ATTRIBS]
DWORD vertex_processing_caps
DWORD max_user_clip_planes
BOOL ffp_generic_attributes
DWORD max_vertex_blend_matrix_index
DWORD max_vertex_blend_matrices
_In_ WDFCOLLECTION _In_ ULONG Index
const struct wined3d_parent_ops wined3d_null_parent_ops
#define WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR
#define WINED3DPRASTERCAPS_FOGRANGE
#define WINED3DVTXPCAPS_LOCALVIEWER
#define WINED3DTEXOPCAPS_ADD
#define WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA
#define WINED3DTA_SPECULAR
@ WINED3D_BLEND_OP_SUBTRACT
@ WINED3D_BLEND_OP_REVSUBTRACT
#define WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA
#define WINED3D_TS_WORLD_MATRIX(index)
#define WINED3DTA_COMPLEMENT
#define WINED3DVTXPCAPS_POSITIONALLIGHTS
@ WINED3D_RS_TEXTUREFACTOR
@ WINED3D_RS_COLORKEYENABLE
@ WINED3D_RS_NORMALDEGREE
@ WINED3D_RS_SOFTWAREVERTEXPROCESSING
@ WINED3D_RS_COLORWRITEENABLE7
@ WINED3D_RS_STIPPLEDALPHA
@ 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_TEXTUREPERSPECTIVE
@ 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_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
@ WINED3D_RS_EDGEANTIALIAS
#define WINED3DVTXPCAPS_TEXGEN
@ WINED3D_PATCH_EDGE_DISCRETE
#define WINED3D_LIMIT_VIEWPORT
#define WINED3DVTXPCAPS_MATERIALSOURCE7
#define WINED3DTEXOPCAPS_BLENDTEXTUREALPHA
#define WINED3DTEXOPCAPS_MODULATE2X
@ WINED3D_SAMP_MAX_ANISOTROPY
@ WINED3D_SAMP_MIPMAP_LOD_BIAS
@ WINED3D_SAMP_MIN_FILTER
@ WINED3D_SAMP_SRGB_TEXTURE
@ WINED3D_SAMP_MIP_FILTER
@ WINED3D_SAMP_MAG_FILTER
@ WINED3D_SAMP_BORDER_COLOR
@ WINED3D_SAMP_MAX_MIP_LEVEL
#define WINED3DCOLORWRITEENABLE_RED
#define WINED3DVTXPCAPS_VERTEXFOG
#define WINED3DCOLORWRITEENABLE_BLUE
#define WINED3DTA_SELECTMASK
#define WINED3DTEXOPCAPS_DISABLE
#define WINED3DSTREAMSOURCE_INSTANCEDATA
@ WINED3D_LIGHT_DIRECTIONAL
#define WINED3DTEXOPCAPS_SELECTARG1
#define WINED3DTA_TFACTOR
#define WINED3DTSS_TCI_PASSTHRU
#define WINED3DTEXOPCAPS_SUBTRACT
@ WINED3D_TEXF_ANISOTROPIC
@ 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 WINED3DFVFCAPS_PSIZE
#define WINED3D_CKEY_SRC_BLT
@ WINED3D_TADDRESS_MIRROR_ONCE
#define WINED3DTA_CURRENT
#define WINED3DTEXOPCAPS_ADDSIGNED2X
@ WINED3DFMT_R16G16_UNORM
@ WINED3DFMT_R10G10B10X2_UINT
@ WINED3DFMT_R32G32_FLOAT
@ WINED3DFMT_R16G16_SNORM
@ WINED3DFMT_B8G8R8A8_UNORM
@ WINED3DFMT_R16G16B16A16_SINT
@ WINED3DFMT_R32G32B32_FLOAT
@ WINED3DFMT_R16G16B16A16_FLOAT
@ WINED3DFMT_R8G8B8A8_UNORM
@ WINED3DFMT_R16G16B16A16_UNORM
@ WINED3DFMT_R16G16_FLOAT
@ WINED3DFMT_R8G8B8A8_UINT
@ WINED3DFMT_R10G10B10X2_SNORM
@ WINED3DFMT_R32G32B32A32_FLOAT
@ WINED3DFMT_R16G16B16A16_SNORM
#define WINED3DTEXOPCAPS_MODULATE4X
#define WINED3DTSS_TCI_CAMERASPACENORMAL
@ WINED3D_TOP_SELECT_ARG1
@ WINED3D_TOP_BLEND_DIFFUSE_ALPHA
@ WINED3D_TOP_BLEND_TEXTURE_ALPHA_PM
@ WINED3D_TOP_BLEND_CURRENT_ALPHA
@ WINED3D_TOP_ADD_SIGNED_2X
@ WINED3D_TOP_MODULATE_INVCOLOR_ADD_ALPHA
@ WINED3D_TOP_MULTIPLY_ADD
@ WINED3D_TOP_MODULATE_INVALPHA_ADD_COLOR
@ WINED3D_TOP_BUMPENVMAP_LUMINANCE
@ WINED3D_TOP_MODULATE_COLOR_ADD_ALPHA
@ WINED3D_TOP_MODULATE_4X
@ WINED3D_TOP_SELECT_ARG2
@ WINED3D_TOP_MODULATE_ALPHA_ADD_COLOR
@ WINED3D_TOP_BLEND_TEXTURE_ALPHA
@ WINED3D_TOP_DOTPRODUCT3
@ WINED3D_TOP_MODULATE_2X
@ WINED3D_TOP_BLEND_FACTOR_ALPHA
#define WINED3DTEXOPCAPS_ADDSMOOTH
@ WINED3D_CMP_GREATEREQUAL
#define WINED3DTA_ALPHAREPLICATE
wined3d_vertex_blend_flags
#define WINED3DTSS_TCI_SPHEREMAP
#define WINED3DVTXPCAPS_TEXGEN_SPHEREMAP
@ WINED3D_BLEND_INVDESTCOLOR
@ WINED3D_BLEND_DESTCOLOR
@ WINED3D_BLEND_INVSRCALPHA
@ WINED3D_BLEND_INVSRCCOLOR
@ WINED3D_BLEND_INVDESTALPHA
@ WINED3D_BLEND_INVBLENDFACTOR
@ WINED3D_BLEND_INVSRC1COLOR
@ WINED3D_BLEND_SRC1ALPHA
@ WINED3D_BLEND_SRC1COLOR
@ WINED3D_BLEND_BOTHINVSRCALPHA
@ WINED3D_BLEND_BOTHSRCALPHA
@ WINED3D_BLEND_SRCALPHASAT
@ WINED3D_BLEND_BLENDFACTOR
@ WINED3D_BLEND_INVSRC1ALPHA
@ WINED3D_BLEND_DESTALPHA
wined3d_depth_buffer_type
#define WINED3D_LEGACY_DEPTH_BIAS
#define WINED3DCOLORWRITEENABLE_ALPHA
#define WINED3DTEXOPCAPS_MULTIPLYADD
#define WINED3D_HIGHEST_TEXTURE_STATE
#define WINED3DTEXOPCAPS_BLENDFACTORALPHA
#define WINED3DTA_DIFFUSE
#define WINED3DTEXOPCAPS_ADDSIGNED
@ WINED3D_STENCIL_OP_INCR
@ WINED3D_STENCIL_OP_KEEP
@ WINED3D_STENCIL_OP_REPLACE
@ WINED3D_STENCIL_OP_INVERT
@ WINED3D_STENCIL_OP_DECR_SAT
@ WINED3D_STENCIL_OP_DECR
@ WINED3D_STENCIL_OP_ZERO
@ WINED3D_STENCIL_OP_INCR_SAT
#define WINED3DCOLORWRITEENABLE_GREEN
#define WINED3D_PIXEL_CENTER_INTEGER
#define WINED3DTEXOPCAPS_DOTPRODUCT3
#define WINED3DTEXOPCAPS_LERP
#define WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM
#define WINED3DTEXOPCAPS_SELECTARG2
#define WINED3DTEXOPCAPS_MODULATE
#define WINEHIGHEST_RENDER_STATE
#define WINED3DTA_TEXTURE
#define WINED3DTSS_TCI_CAMERASPACEPOSITION
#define WINED3DVTXPCAPS_DIRECTIONALLIGHTS
#define WINED3DTEXOPCAPS_BLENDCURRENTALPHA
#define WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR
@ EXT_BLEND_EQUATION_SEPARATE
@ ARB_DRAW_ELEMENTS_BASE_VERTEX
@ WINED3D_GL_BLEND_EQUATION
@ ARB_TEXTURE_ENV_COMBINE
@ ARB_VERTEX_BUFFER_OBJECT
@ EXT_BLEND_FUNC_SEPARATE
@ NV_TEXTURE_ENV_COMBINE4
@ ARB_UNIFORM_BUFFER_OBJECT
@ WINED3D_GL_NORMALIZED_TEXRECT
@ ATI_TEXTURE_ENV_COMBINE3
@ ARB_TEXTURE_NON_POWER_OF_TWO
@ WINED3D_GL_LEGACY_CONTEXT
@ ARB_SHADER_IMAGE_LOAD_STORE
@ EXT_POLYGON_OFFSET_CLAMP
@ EXT_TEXTURE_ENV_COMBINE
#define WINED3D_SHADER_CONST_PS_BUMP_ENV
static void context_apply_state(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
#define STATE_BASEVERTEXINDEX
#define STATE_IS_GRAPHICS_CONSTANT_BUFFER(a)
#define STATE_CLIPPLANE(a)
#define STATE_CONSTANT_BUFFER(a)
#define MAX_FRAGMENT_SAMPLERS
@ WINED3D_FFP_BLENDWEIGHT
@ WINED3D_FFP_BLENDINDICES
#define STATE_GRAPHICS_SHADER_RESOURCE_BINDING
#define STATE_TRANSFORM(a)
#define STATE_STREAM_OUTPUT
#define WINED3DFMT_FLAG_SHADOW
static BOOL use_vs(const struct wined3d_state *state)
#define STATE_POINT_ENABLE
#define WINED3DFMT_FLAG_INTEGER
#define WINED3D_TEXTURE_POW2_MAT_IDENT
static BOOL wined3d_dualblend_enabled(const struct wined3d_state *state, const struct wined3d_gl_info *gl_info)
#define WINED3D_TEXTURE_COND_NP2
#define STATE_ACTIVELIGHT(a)
#define WINED3D_QUIRK_ALLOWS_SPECULAR_ALPHA
#define STATE_SCISSORRECT
#define WINED3D_SHADER_CONST_PS_NP2_FIXUP
#define GL_EXT_EMUL_EXT_FOG_COORD
#define GL_EXT_EMUL_ARB_MULTITEXTURE
#define STATE_SAMPLER(num)
static void wined3d_color_from_d3dcolor(struct wined3d_color *wined3d_color, DWORD d3d_color)
static BOOL is_identity_fixup(struct color_fixup_desc fixup)
static BOOL needs_srgb_write(const struct wined3d_context *context, const struct wined3d_state *state, const struct wined3d_fb_state *fb)
#define STATE_COMPUTE_SHADER_RESOURCE_BINDING
@ WINED3D_GL_RES_TYPE_BUFFER
#define STATE_COMPUTE_UNORDERED_ACCESS_VIEW_BINDING
#define STATE_POINTSPRITECOORDORIGIN
@ WINED3D_SHADER_TYPE_HULL
@ WINED3D_SHADER_TYPE_PIXEL
@ WINED3D_SHADER_TYPE_GEOMETRY
@ WINED3D_SHADER_TYPE_DOMAIN
@ WINED3D_SHADER_TYPE_COMPUTE
@ WINED3D_SHADER_TYPE_VERTEX
static BOOL use_ps(const struct wined3d_state *state)
#define STATE_TEXTURESTAGE(stage, num)
#define STATE_GRAPHICS_CONSTANT_BUFFER(a)
#define STATE_INDEXBUFFER
void(* APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id)
#define WINED3DFMT_FLAG_FILTERING
#define WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
#define WINED3D_SHADER_CONST_POS_FIXUP
static BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
#define STATE_FRAMEBUFFER
#define WINED3D_UNMAPPED_STAGE
#define STATE_GRAPHICS_UNORDERED_ACCESS_VIEW_BINDING