wined3d: Add the general combiner limit to wined3d_gl_info.
authorHenri Verbeet <hverbeet@codeweavers.com>
Thu, 4 Feb 2010 17:30:04 +0000 (18:30 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Fri, 5 Feb 2010 09:06:03 +0000 (10:06 +0100)
dlls/wined3d/directx.c
dlls/wined3d/nvidia_texture_shader.c
dlls/wined3d/wined3d_gl.h

index 8ba33ba52352e427265a03939661af1ebb7f0144..1215414ae27b28e774136834503cfca3de6efd1d 100644 (file)
@@ -1923,7 +1923,9 @@ static BOOL IWineD3DImpl_FillGLCaps(struct wined3d_adapter *adapter)
         {
             GLint tmp;
             glGetIntegerv(GL_MAX_GENERAL_COMBINERS_NV, &tmp);
+            gl_info->limits.general_combiners = tmp;
             gl_info->limits.texture_stages = min(MAX_TEXTURES, tmp);
+            TRACE_(d3d_caps)("Max general combiners: %d.\n", tmp);
         }
         else
         {
index 56e2ee72ceafda379a4b382c90174d0e703d787a..64bb883d6c89fadd6488acdfe8883e0668741503 100644 (file)
@@ -670,7 +670,7 @@ static void nvrc_fragment_get_caps(const struct wined3d_gl_info *gl_info, struct
             WINED3DTEXOPCAPS_PREMODULATE */
 #endif
 
-    pCaps->MaxTextureBlendStages = gl_info->limits.texture_stages;
+    pCaps->MaxTextureBlendStages = min(MAX_TEXTURES, gl_info->limits.general_combiners);
     pCaps->MaxSimultaneousTextures = gl_info->limits.textures;
 
     pCaps->PrimitiveMiscCaps |=  WINED3DPMISCCAPS_TSSARGTEMP;
index 07ce7af5259c216bd43a0371d77590581f5bfa8a..5a3fbb43630fc983c84f6aad168e2c65c9e6f68e 100644 (file)
@@ -4619,6 +4619,7 @@ struct wined3d_gl_limits
     UINT fragment_samplers;
     UINT vertex_samplers;
     UINT combined_samplers;
+    UINT general_combiners;
     UINT sampler_stages;
     UINT clipplanes;
     UINT texture_size;