[PATCH] WineD3D: Make the texture stage mapping nvrc independent=0A=

Stefan Doesinger stefan at codeweavers.com
Thu Aug 21 13:23:38 CDT 2008


=0A=
---=0A=
 dlls/wined3d/device.c          |    3 ++-=0A=
 dlls/wined3d/directx.c         |    1 +=0A=
 dlls/wined3d/wined3d_private.h |    2 +-=0A=
 3 files changed, 4 insertions(+), 2 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c=0A=
index 98b1910..a569e96 100644=0A=
--- a/dlls/wined3d/device.c=0A=
+++ b/dlls/wined3d/device.c=0A=
@@ -3750,7 +3750,8 @@ static void =
device_map_fixed_function_samplers(IWineD3DDeviceImpl *This) {=0A=
 =0A=
     device_update_fixed_function_usage_map(This);=0A=
 =0A=
-    if (!GL_SUPPORT(NV_REGISTER_COMBINERS) || =
This->stateBlock->lowest_disabled_stage <=3D This->max_ffp_textures) {=0A=
+    if (This->max_ffp_textures =3D=3D This->max_ffp_texture_stages ||=0A=
+        This->stateBlock->lowest_disabled_stage <=3D =
This->max_ffp_textures) {=0A=
         for (i =3D 0; i < This->stateBlock->lowest_disabled_stage; ++i) =
{=0A=
             if (!This->fixed_function_usage_map[i]) continue;=0A=
 =0A=
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c=0A=
index c897e70..53ea543 100644=0A=
--- a/dlls/wined3d/directx.c=0A=
+++ b/dlls/wined3d/directx.c=0A=
@@ -3608,6 +3608,7 @@ static HRESULT  WINAPI =
IWineD3DImpl_CreateDevice(IWineD3D *iface, UINT Adapter,=0A=
     object->frag_pipe =3D frag_pipeline;=0A=
     frag_pipeline->get_caps(DeviceType, &GLINFO_LOCATION, &ffp_caps);=0A=
     object->max_ffp_textures =3D ffp_caps.MaxSimultaneousTextures;=0A=
+    object->max_ffp_texture_stages =3D ffp_caps.MaxTextureBlendStages;=0A=
     compile_state_table(object->StateTable, object->multistate_funcs, =
&GLINFO_LOCATION,=0A=
                         ffp_vertexstate_template, frag_pipeline, =
misc_state_template);=0A=
 =0A=
diff --git a/dlls/wined3d/wined3d_private.h =
b/dlls/wined3d/wined3d_private.h=0A=
index 8daee2d..fdb56b5 100644=0A=
--- a/dlls/wined3d/wined3d_private.h=0A=
+++ b/dlls/wined3d/wined3d_private.h=0A=
@@ -859,7 +859,7 @@ struct IWineD3DDeviceImpl=0A=
     const struct fragment_pipeline *frag_pipe;=0A=
     const struct blit_shader *blitter;=0A=
 =0A=
-    unsigned int max_ffp_textures;=0A=
+    unsigned int max_ffp_textures, max_ffp_texture_stages;=0A=
 =0A=
     /* To store */=0A=
     BOOL                    view_ident;        /* true iff view matrix =
is identity                */=0A=
-- =0A=
1.5.6.4=0A=
=0A=

------=_NextPart_000_01E5_01C90793.B81EC120--




More information about the wine-patches mailing list