[PATCH 5/5] wined3d: Store max_clip_distances in struct d3d_info.

Józef Kucia jkucia at codeweavers.com
Thu Sep 20 02:02:02 CDT 2018


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 dlls/wined3d/adapter_gl.c      | 1 +
 dlls/wined3d/device.c          | 4 ++--
 dlls/wined3d/wined3d_private.h | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c
index 0198a97d6022..e0c1954f69d1 100644
--- a/dlls/wined3d/adapter_gl.c
+++ b/dlls/wined3d/adapter_gl.c
@@ -3651,6 +3651,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
     adapter->fragment_pipe = select_fragment_implementation(gl_info, adapter->shader_backend);
 
     d3d_info->limits.max_rt_count = gl_info->limits.buffers;
+    d3d_info->limits.max_clip_distances = gl_info->limits.user_clip_distances;
     d3d_info->limits.pointsize_max = gl_info->limits.pointsize_max;
 
     adapter->shader_backend->shader_get_caps(gl_info, &shader_caps);
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 96e7a3dbfaa6..3fc3ae557dc6 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1762,7 +1762,7 @@ HRESULT CDECL wined3d_device_set_clip_plane(struct wined3d_device *device,
 {
     TRACE("device %p, plane_idx %u, plane %p.\n", device, plane_idx, plane);
 
-    if (plane_idx >= device->adapter->gl_info.limits.user_clip_distances)
+    if (plane_idx >= device->adapter->d3d_info.limits.max_clip_distances)
     {
         TRACE("Application has requested clipplane this device doesn't support.\n");
         return WINED3DERR_INVALIDCALL;
@@ -1790,7 +1790,7 @@ HRESULT CDECL wined3d_device_get_clip_plane(const struct wined3d_device *device,
 {
     TRACE("device %p, plane_idx %u, plane %p.\n", device, plane_idx, plane);
 
-    if (plane_idx >= device->adapter->gl_info.limits.user_clip_distances)
+    if (plane_idx >= device->adapter->d3d_info.limits.max_clip_distances)
     {
         TRACE("Application has requested clipplane this device doesn't support.\n");
         return WINED3DERR_INVALIDCALL;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 2a5a0eceeb98..122d4c7825de 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -165,6 +165,7 @@ struct wined3d_d3d_limits
     unsigned int active_light_count;
 
     unsigned int max_rt_count;
+    unsigned int max_clip_distances;
     float pointsize_max;
 };
 
-- 
2.16.4




More information about the wine-devel mailing list