extern "C" void R_DrawMasked() { R_SortVisSprites(); for (Link <vissprite_t> *it = Vissprites.Front;it;it = it->Next) { R_DrawSprite(&it->Value); } for (drawseg_t *ds = ds_p - 1;ds >= drawsegs;ds--) { if (ds->maskedtexturecol) { R_RenderMaskedSegRange(ds,ds->x1,ds->x2); } } if (!viewangleoffset) { R_DrawPlayerSprites(); } }
/** * @note No need to reset the blend mode - R_Setup2D will do this * @sa R_Setup2D */ void R_DrawParticles (void) { ptl_t *p; int i; if (!r_particles->integer) return; for (i = 0, p = r_particleArray; i < r_numParticles; i++, p++) if (p->inuse && !p->invis) { /* test for visibility */ if (p->levelFlags && !((1 << refdef.worldlevel) & p->levelFlags)) continue; if (p->program != NULL) R_UseProgram(p->program); /* set blend mode and draw gfx */ R_SetBlendMode(p->blend); switch (p->style) { case STYLE_LINE: R_DrawPtlLine(p); break; case STYLE_CIRCLE: R_DrawPtlCircle(p); break; default: break; } if (p->pic) R_DrawSprite(p); if (p->model) R_DrawParticleModel(p); R_TexEnv(GL_MODULATE); R_UseProgram(NULL); } R_BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); R_Color(NULL); }