/* ================ 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 (); }
void R_AliasPrepareUnclippedPointsFPM (void) { stvert_t *pstverts; finalvert_t *fv; pstverts = (stvert_t *)((byte *)paliashdr + paliashdr->stverts); r_anumverts = pmdlFPM->numverts; // FIXME: just use pfinalverts directly? fv = pfinalverts; R_AliasTransformAndProjectFinalVertsFPM (fv, pstverts); if (r_affinetridesc.drawtype) // D_PolysetDrawFinalVertsFPM (fv, r_anumverts); // FPM doesn't exist D_PolysetDrawFinalVerts (fv, r_anumverts); r_affinetridesc.pfinalverts = pfinalverts; r_affinetridesc.ptriangles = (mtriangle_t *) ((byte *)paliashdr + paliashdr->triangles); r_affinetridesc.numtriangles = pmdlFPM->numtris; D_PolysetDraw (); }
static void R_IQMPrepareUnclippedPoints (iqm_t *iqm, swiqm_t *sw, iqmframe_t *frame) { int i; R_IQMTransformAndProjectFinalVerts (iqm, sw, frame); if (r_affinetridesc.drawtype) D_PolysetDrawFinalVerts (pfinalverts, iqm->num_verts); r_affinetridesc.pfinalverts = pfinalverts; for (i = 0; i < iqm->num_meshes; i++) { iqmmesh *mesh = &iqm->meshes[i]; uint16_t *tris; iqm_setup_skin (sw, i); tris = iqm->elements + mesh->first_triangle; r_affinetridesc.ptriangles = (mtriangle_t *) tris; r_affinetridesc.numtriangles = mesh->num_triangles; 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 (); } } }