77 bool oldblend =
r_state.blend_enabled;
84 glDisable(GL_DEPTH_TEST);
95 vec3_t right, up, upright, downright;
96 float dot, dist,
scale, alpha;
106 if (
f->image != image) {
117 if (
refdef.time -
f->time > 0.02) {
118 if (
refdef.time -
f->time > 0.5)
122 bool visible =
refdef.trace.fraction == 1.0;
124 f->alpha += (visible ? 0.03 : -0.15);
128 else if (
f->alpha < 0)
142 alpha = 0.1 + -dot *
r_flares->value;
147 alpha =
f->alpha * alpha;
150 scale =
f->radius + (
f->radius * dist * .0005);
163 for (
int m = 0;
m < 4;
m++) {
165 r_state.color_array[j + 3] = alpha;
174 memcpy(&
r_state.vertex_array_3d[l], verts,
sizeof(
vec3_t) * 4);
184 glEnable(GL_DEPTH_TEST);
memPool_t * vid_modelPool
void R_Color(const vec4_t rgba)
Change the color to given value.
void getDiagonal(vec3_t diagonal) const
vec_t VectorNormalize(vec3_t v)
Calculate unit vector for a given vec3_t.
vec_t VectorLength(const vec3_t v)
Calculate the length of a vector.
void VectorMA(const vec3_t veca, const float scale, const vec3_t vecb, vec3_t outVector)
Sets vector_out (vc) to vevtor1 (va) + scale * vector2 (vb).
#define Mem_PoolAllocType(type, pool)
void R_ResetArrayState(void)
void R_CreateSurfaceFlare(mBspSurface_t *surf)
void R_DrawFlareSurfaces(const mBspSurfaces_t *surfs, glElementIndex_t *indexPtr)
Flares are batched by their texture. Usually, this means one draw operation for all flares in view....
void R_DrawArrays(GLint first, GLsizei count)
image_t * r_flaretextures[NUM_FLARETEXTURES]
void R_Trace(const Line &trLine, float size, int contentmask)
Moves the given mins/maxs volume through the world from start to end.
local graphics definitions
void R_BlendFunc(GLenum src, GLenum dest)
void R_EnableBlend(bool enable)
const vec2_t default_texcoords[4]
void R_EnableColorArray(bool enable)
#define R_BindTexture(tn)
surfaces are assigned to arrays based on their primary rendering type and then sorted by world textur...
mBspSurface_t ** surfaces
struct materialStage_s * next
static const vec3_t scale
#define VectorSubtract(a, b, dest)
#define VectorCopy(src, dest)
#define VectorAdd(a, b, dest)
#define DotProduct(x, y)
Returns the distance between two 3-dimensional vectors.
#define VectorScale(in, scale, out)