need_pipeline |= out->clipmask;
}
+ /*
+ * Transform the vertex position from clip coords to window coords,
+ * if the vertex is unclipped.
+ */
if ((flags & DO_VIEWPORT) && mask == 0)
{
/* divide by w */
position[2] = position[2] * w * scale[2] + trans[2];
position[3] = w;
}
+#ifdef DEBUG
+ /* For debug builds, set the clipped vertex's window coordinate
+ * to NaN to help catch potential errors later.
+ */
+ else {
+ float zero = 0.0f;
+ position[0] =
+ position[1] =
+ position[2] =
+ position[3] = zero / zero; /* MSVC doesn't accept 0.0 / 0.0 */
+ }
+#endif
if ((flags & DO_EDGEFLAG) && ef) {
const float *edgeflag = out->data[ef];