diff options
| author | Zack Rusin <zackr@vmware.com> | 2013-06-06 09:07:33 -0400 |
|---|---|---|
| committer | Zack Rusin <zackr@vmware.com> | 2013-06-10 22:04:28 -0400 |
| commit | babe35a067d1610d9032cc28eec8e16b18685621 (patch) | |
| tree | 9c84b9f48f59e563e3bf5162ee5bb24998129320 /src/gallium/auxiliary/draw/draw_context.c | |
| parent | 3d08eada3450aa8801aed194afea99c816dd71f0 (diff) | |
| download | external_mesa3d-babe35a067d1610d9032cc28eec8e16b18685621.tar.gz external_mesa3d-babe35a067d1610d9032cc28eec8e16b18685621.tar.bz2 external_mesa3d-babe35a067d1610d9032cc28eec8e16b18685621.zip | |
draw: implement distance culling
Works similarly to clip distance. If the cull distance is negative
for all vertices against a specific plane then the primitive
is culled.
Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_context.c')
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_context.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c index 81b3068553..0dbddb4511 100644 --- a/src/gallium/auxiliary/draw/draw_context.c +++ b/src/gallium/auxiliary/draw/draw_context.c @@ -752,6 +752,23 @@ draw_current_shader_num_written_clipdistances(const struct draw_context *draw) return draw->vs.vertex_shader->info.num_written_clipdistance; } + +uint +draw_current_shader_culldistance_output(const struct draw_context *draw, int index) +{ + if (draw->gs.geometry_shader) + return draw->gs.geometry_shader->culldistance_output[index]; + return draw->vs.vertex_shader->culldistance_output[index]; +} + +uint +draw_current_shader_num_written_culldistances(const struct draw_context *draw) +{ + if (draw->gs.geometry_shader) + return draw->gs.geometry_shader->info.num_written_culldistance; + return draw->vs.vertex_shader->info.num_written_culldistance; +} + /** * Return a pointer/handle for a driver/CSO rasterizer object which * disabled culling, stippling, unfilled tris, etc. |
