pixels[y][x][3] = 255;
}
}
- lightcorona = R_LoadTexture (lighttexturepool, "lightcorona", 32, 32, &pixels[0][0][0], TEXTYPE_RGBA, TEXF_PRECACHE);
+ lightcorona = R_LoadTexture2D(lighttexturepool, "lightcorona", 32, 32, &pixels[0][0][0], TEXTYPE_RGBA, TEXF_PRECACHE, NULL);
}
void r_light_shutdown(void)
rd->cullradius2 = (2048.0f * 2048.0f);
rd->cullradius = sqrt(rd->cullradius2);
rd->subtract = 1.0f / rd->cullradius2;
- //rd->ent = cd->ent;
+ rd->ent = cd->ent;
c_dlights++; // count every dlight in use
}
}
R_Mesh_Matrix(&r_identitymatrix);
R_Mesh_State(&m);
viewdist = DotProduct(r_origin, vpn);
+ varray_texcoord[0][ 0] = 0;varray_texcoord[0][ 1] = 0;
+ varray_texcoord[0][ 4] = 0;varray_texcoord[0][ 5] = 1;
+ varray_texcoord[0][ 8] = 1;varray_texcoord[0][ 9] = 1;
+ varray_texcoord[0][12] = 1;varray_texcoord[0][13] = 0;
for (i = 0;i < r_numdlights;i++)
{
rd = r_dlight + i;
VectorSubtract(rd->origin, r_origin, diff);
scale *= 1 - exp(fogdensity/DotProduct(diff,diff));
}
- varray_color[ 0] = varray_color[ 4] = varray_color[ 8] = varray_color[12] = rd->light[0] * scale;
- varray_color[ 1] = varray_color[ 5] = varray_color[ 9] = varray_color[13] = rd->light[1] * scale;
- varray_color[ 2] = varray_color[ 6] = varray_color[10] = varray_color[14] = rd->light[2] * scale;
- varray_color[ 3] = varray_color[ 7] = varray_color[11] = varray_color[15] = 1;
- varray_texcoord[0][0] = 0;
- varray_texcoord[0][1] = 0;
- varray_texcoord[0][2] = 0;
- varray_texcoord[0][3] = 1;
- varray_texcoord[0][4] = 1;
- varray_texcoord[0][5] = 1;
- varray_texcoord[0][6] = 1;
- varray_texcoord[0][7] = 0;
+ GL_Color(rd->light[0] * scale, rd->light[1] * scale, rd->light[2] * scale, 1);
scale = rd->cullradius * 0.25f;
if (gl_flashblend.integer)
scale *= 2.0f;
R_MarkLights
=============
*/
-extern int r_pvsframecount;
static void R_OldMarkLights (entity_render_t *ent, vec3_t lightorigin, rdlight_t *rd, int bit, int bitindex, mnode_t *node)
{
float ndist, maxdist;
surf = ent->model->surfaces + node->firstsurface;
for (i = 0;i < node->numsurfaces;i++, surf++)
{
- if (surfacepvsframes[surf->number] != r_pvsframecount)
+ if (surfacepvsframes[surf->number] != ent->model->pvsframecount)
continue;
dist = ndist;
if (surf->flags & SURF_PLANEBACK)
if (surf->lightframe == lightframe)
continue;
surf->lightframe = lightframe;
- if (surfacepvsframes[surf->number] != r_pvsframecount)
+ if (surfacepvsframes[surf->number] != model->pvsframecount)
continue;
dist = PlaneDiff(lightorigin, surf->plane);
if (surf->flags & SURF_PLANEBACK)
RecursiveLightPoint (color, cl.worldmodel->nodes, p[0], p[1], p[2], p[2] - 65536);
}
-void R_LightModel(const entity_render_t *ent, int numverts, float colorr, float colorg, float colorb, int worldcoords)
+void R_LightModel(const entity_render_t *ent, int numverts, float *vertices, float *normals, float *colors, float colorr, float colorg, float colorb, int worldcoords)
{
int i, j, nearlights = 0, maxnearlights = r_modellights.integer;
float color[3], basecolor[3], v[3], t, *av, *avn, *avc, a, f, dist2, mscale, dot, stylescale, intensity, ambientcolor[3];
basecolor[0] *= colorr;
basecolor[1] *= colorg;
basecolor[2] *= colorb;
- avc = aliasvertcolor;
+ avc = colors;
if (nearlights)
{
- av = aliasvert;
- avn = aliasvertnorm;
+ av = vertices;
+ avn = normals;
for (i = 0;i < numverts;i++)
{
VectorCopy(basecolor, color);
avc[3] = a;
avc += 4;
av += 4;
- avn += 3;
+ avn += 4;
}
}
else