summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_private.h
diff options
context:
space:
mode:
authorZack Rusin <zackr@vmware.com>2013-05-25 01:02:46 -0400
committerZack Rusin <zackr@vmware.com>2013-05-25 09:49:20 -0400
commitd7d676252d2ae1fd6d3dd76d4e205251ad7c6152 (patch)
treeee2de4e74375ddb379c1da9f440231eb557216a3 /src/gallium/auxiliary/draw/draw_private.h
parent26fe24c47975f1484c193617a18cd2a9cdb65eb4 (diff)
downloadexternal_mesa3d-d7d676252d2ae1fd6d3dd76d4e205251ad7c6152.zip
external_mesa3d-d7d676252d2ae1fd6d3dd76d4e205251ad7c6152.tar.gz
external_mesa3d-d7d676252d2ae1fd6d3dd76d4e205251ad7c6152.tar.bz2
draw: clamp the viewports to always be between 0 and max
If the viewport index is larger than the PIPE_MAX_VIEWPORTS, then the first (0-th) viewport should be used. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: José Fonseca<jfonseca@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_private.h')
-rw-r--r--src/gallium/auxiliary/draw/draw_private.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_private.h b/src/gallium/auxiliary/draw/draw_private.h
index e5f192b..f30f9af 100644
--- a/src/gallium/auxiliary/draw/draw_private.h
+++ b/src/gallium/auxiliary/draw/draw_private.h
@@ -469,4 +469,15 @@ draw_get_rasterizer_no_cull( struct draw_context *draw,
#define DRAW_GET_IDX(_elts, _i) \
(((_i) >= draw->pt.user.eltMax) ? 0 : (_elts)[_i])
+/**
+ * Return index of the given viewport clamping it
+ * to be between 0 <= and < PIPE_MAX_VIEWPORTS
+ */
+static INLINE unsigned
+draw_clamp_viewport_idx(int idx)
+{
+ return ((PIPE_MAX_VIEWPORTS > idx || idx < 0) ? idx : 0);
+}
+
+
#endif /* DRAW_PRIVATE_H */