mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 03:38:06 +02:00
i965: Introduce an is_drawing_lines() helper.
Similar to is_drawing_points(). v2: Account for isoline tessellation output topology. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
parent
757674e8d0
commit
47be5a64c7
1 changed files with 30 additions and 0 deletions
|
|
@ -430,6 +430,36 @@ is_drawing_points(const struct brw_context *brw)
|
|||
}
|
||||
}
|
||||
|
||||
static inline bool
|
||||
is_drawing_lines(const struct brw_context *brw)
|
||||
{
|
||||
/* Determine if the primitives *reaching the SF* are points */
|
||||
/* _NEW_POLYGON */
|
||||
if (brw->ctx.Polygon.FrontMode == GL_LINE ||
|
||||
brw->ctx.Polygon.BackMode == GL_LINE) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (brw->geometry_program) {
|
||||
/* BRW_NEW_GEOMETRY_PROGRAM */
|
||||
return brw->geometry_program->OutputType == GL_LINE_STRIP;
|
||||
} else if (brw->tes.prog_data) {
|
||||
/* BRW_NEW_TES_PROG_DATA */
|
||||
return brw->tes.prog_data->output_topology ==
|
||||
BRW_TESS_OUTPUT_TOPOLOGY_LINE;
|
||||
} else {
|
||||
/* BRW_NEW_PRIMITIVE */
|
||||
switch (brw->primitive) {
|
||||
case _3DPRIM_LINELIST:
|
||||
case _3DPRIM_LINESTRIP:
|
||||
case _3DPRIM_LINELOOP:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue