/* ================ R_AliasPrepareUnclippedPoints ================ */ void R_AliasPrepareUnclippedPoints (void) { stvert_t *pstverts; finalvert_t *fv; GpError("R_AliasPrepareUnliccpedPoints A",12); pstverts = (stvert_t *)((byte *)paliashdr + paliashdr->stverts); r_anumverts = pmdl->numverts; // FIXME: just use pfinalverts directly? fv = pfinalverts; GpError("R_AliasPrepareUnliccpedPoints B",12); R_AliasTransformAndProjectFinalVerts (fv, pstverts); if (r_affinetridesc.drawtype){ GpError("R_AliasPrepareUnliccpedPoints B",13); D_PolysetDrawFinalVerts (fv, r_anumverts); } r_affinetridesc.pfinalverts = pfinalverts; r_affinetridesc.ptriangles = (mtriangle_t *) ((byte *)paliashdr + paliashdr->triangles); r_affinetridesc.numtriangles = pmdl->numtris; GpError("R_AliasPrepareUnliccpedPoints C",13); D_PolysetDraw (); GpError("R_AliasPrepareUnliccpedPoints end",13); }
/* ================ R_AliasPrepareUnclippedPoints ================ */ void R_AliasPrepareUnclippedPoints (void) { stvert_t *pstverts; finalvert_t *fv; pstverts = (stvert_t *)((byte *)paliashdr + paliashdr->stverts); r_anumverts = pmdl->numverts; // FIXME: just use pfinalverts directly? fv = pfinalverts; #ifdef INTERPOL7 R_AliasTransformAndProjectFinalVertsLerp (fv, pstverts); #else R_AliasTransformAndProjectFinalVerts (fv, pstverts); #endif if (r_affinetridesc.drawtype) D_PolysetDrawFinalVerts (fv, r_anumverts); r_affinetridesc.pfinalverts = pfinalverts; r_affinetridesc.ptriangles = (mtriangle_t *) ((byte *)paliashdr + paliashdr->triangles); r_affinetridesc.numtriangles = pmdl->numtris; D_PolysetDraw (); }
/* ================ R_AliasPrepareUnclippedPoints ================ */ void R_AliasPrepareUnclippedPoints (void) { stvert_t *pstverts; finalvert_t *fv; mtriangle_t *ptri; int i; pstverts = (stvert_t *)((byte *)paliashdr + paliashdr->stverts); r_anumverts = pmdl->numverts; // FIXME: just use pfinalverts directly? fv = pfinalverts; R_AliasTransformAndProjectFinalVerts (fv, pstverts); r_affinetridesc.pfinalverts = pfinalverts; r_affinetridesc.ptriangles = (mtriangle_t *) ((byte *)paliashdr + paliashdr->triangles); r_affinetridesc.numtriangles = 1;//pmdl->numtris; ptri = (mtriangle_t *)((byte *)paliashdr + paliashdr->triangles); for (i = 0 ; i < pmdl->numtris ; i++, ptri++) { finalvert_t *pfv[3]; pfv[0] = &pfinalverts[ptri->vertindex[0]]; pfv[1] = &pfinalverts[ptri->vertindex[1]]; pfv[2] = &pfinalverts[ptri->vertindex[2]]; //jfm: fill in the triangles s and t into the finalvert pfv[0]->v[2] = pstverts[ptri->stindex[0]].s; pfv[0]->v[3] = pstverts[ptri->stindex[0]].t; pfv[0]->flags = pstverts[ptri->stindex[0]].onseam; pfv[1]->v[2] = pstverts[ptri->stindex[1]].s; pfv[1]->v[3] = pstverts[ptri->stindex[1]].t; pfv[1]->flags = pstverts[ptri->stindex[1]].onseam; pfv[2]->v[2] = pstverts[ptri->stindex[2]].s; pfv[2]->v[3] = pstverts[ptri->stindex[2]].t; pfv[2]->flags = pstverts[ptri->stindex[2]].onseam; r_affinetridesc.ptriangles = ptri; if (r_affinetridesc.drawtype) { if ((currententity->model->flags & EF_SPECIAL_TRANS)) { D_PolysetDrawFinalVertsT5 (pfv[0],pfv[1],pfv[2]); D_PolysetDrawT5 (); } else if (currententity->drawflags & DRF_TRANSLUCENT) { D_PolysetDrawFinalVertsT (pfv[0],pfv[1],pfv[2]); D_PolysetDrawT (); } else if ((currententity->model->flags & EF_TRANSPARENT)) { D_PolysetDrawFinalVertsT2 (pfv[0],pfv[1],pfv[2]); D_PolysetDrawT2 (); } else if ((currententity->model->flags & EF_HOLEY)) { D_PolysetDrawFinalVertsT3 (pfv[0],pfv[1],pfv[2]); D_PolysetDrawT3 (); } else { D_PolysetDrawFinalVerts (pfv[0],pfv[1],pfv[2]); D_PolysetDraw (); } } else { if ((currententity->model->flags & EF_SPECIAL_TRANS)) D_PolysetDrawT5 (); else if (currententity->drawflags & DRF_TRANSLUCENT) D_PolysetDrawT (); else if ((currententity->model->flags & EF_TRANSPARENT)) D_PolysetDrawT2 (); else if ((currententity->model->flags & EF_HOLEY)) D_PolysetDrawT3 (); else D_PolysetDraw (); } } }