static void RSurfShader_Water_Callback(const void *calldata1, int calldata2)
{
- int i;
const entity_render_t *ent = calldata1;
const msurface_t *surf = ent->model->surfaces + calldata2;
- float f, colorscale, scroll[2], *v, *tc;
+ float f, colorscale;
const surfmesh_t *mesh;
rmeshstate_t m;
float alpha;
{
R_Mesh_GetSpace(mesh->numverts);
R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- scroll[0] = sin(cl.time) * 0.125f;
- scroll[1] = sin(cl.time * 0.8f) * 0.125f;
- for (i = 0, v = varray_texcoord2f[0], tc = mesh->texcoordtexture2f;i < mesh->numverts;i++, v += 2, tc += 2)
- {
- v[0] = tc[0] + scroll[0];
- v[1] = tc[1] + scroll[1];
- }
+ R_ScrollTexCoord2f(varray_texcoord2f[0], mesh->texcoordtexture2f, mesh->numverts, sin(cl.time) * 0.125f, sin(cl.time * 0.8f) * 0.125f);
f = surf->flags & SURF_DRAWFULLBRIGHT ? 1.0f : ((surf->flags & SURF_LIGHTMAP) ? 0 : 0.5f);
R_FillColors(varray_color4f, mesh->numverts, f, f, f, alpha);
if (!(surf->flags & SURF_DRAWFULLBRIGHT || ent->effects & EF_FULLBRIGHT))
float base, colorscale;
const surfmesh_t *mesh;
rmeshstate_t m;
+ rcachearrayrequest_t request;
float modelorg[3];
Matrix4x4_Transform(&ent->inversematrix, r_origin, modelorg);
+ memset(&request, 0, sizeof(request));
memset(&m, 0, sizeof(m));
if (rendertype == SURFRENDER_ADD)
{
GL_UseColorArray();
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
- R_FillColors(varray_color4f, mesh->numverts, base, base, base, currentalpha);
- if (!(ent->effects & EF_FULLBRIGHT))
+ if (gl_mesh_copyarrays.integer)
{
- if (surf->dlightframe == r_framecount)
- RSurf_LightSeparate_Vertex3f_Color4f(&ent->inversematrix, surf->dlightbits, mesh->numverts, mesh->vertex3f, varray_color4f, 1);
- if (surf->flags & SURF_LIGHTMAP)
- RSurf_AddLightmapToVertexColors_Color4f(mesh->lightmapoffsets, varray_color4f, mesh->numverts, surf->samples, ((surf->extents[0]>>4)+1)*((surf->extents[1]>>4)+1)*3, surf->styles);
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ R_FillColors(varray_color4f, mesh->numverts, base, base, base, currentalpha);
+ if (!(ent->effects & EF_FULLBRIGHT))
+ {
+ if (surf->dlightframe == r_framecount)
+ RSurf_LightSeparate_Vertex3f_Color4f(&ent->inversematrix, surf->dlightbits, mesh->numverts, mesh->vertex3f, varray_color4f, 1);
+ if (surf->flags & SURF_LIGHTMAP)
+ RSurf_AddLightmapToVertexColors_Color4f(mesh->lightmapoffsets, varray_color4f, mesh->numverts, surf->samples, ((surf->extents[0]>>4)+1)*((surf->extents[1]>>4)+1)*3, surf->styles);
+ }
+ RSurf_FogColors_Vertex3f_Color4f(mesh->vertex3f, varray_color4f, colorscale, mesh->numverts, modelorg);
+ R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ m.pointer_texcoord[0] = mesh->texcoordtexture2f;
+ // LordHavoc: this is not caching at all (difficult to
+ // cache fogging information), it's just (ab)using the
+ // cache system to get some memory
+ request.data_size = mesh->numverts * sizeof(float[4]);
+ request.id_pointer1 = ent;
+ request.id_pointer2 = mesh;
+ request.id_number1 = r_framecount;
+ if (R_Mesh_CacheArray(&request))
+ {
+ R_FillColors(request.data, mesh->numverts, base, base, base, currentalpha);
+ if (!(ent->effects & EF_FULLBRIGHT))
+ {
+ if (surf->dlightframe == r_framecount)
+ RSurf_LightSeparate_Vertex3f_Color4f(&ent->inversematrix, surf->dlightbits, mesh->numverts, mesh->vertex3f, request.data, 1);
+ if (surf->flags & SURF_LIGHTMAP)
+ RSurf_AddLightmapToVertexColors_Color4f(mesh->lightmapoffsets, request.data, mesh->numverts, surf->samples, ((surf->extents[0]>>4)+1)*((surf->extents[1]>>4)+1)*3, surf->styles);
+ }
+ RSurf_FogColors_Vertex3f_Color4f(mesh->vertex3f, request.data, colorscale, mesh->numverts, modelorg);
+ }
+ m.pointer_color = request.data;
+ R_Mesh_State(&m);
}
- RSurf_FogColors_Vertex3f_Color4f(mesh->vertex3f, varray_color4f, colorscale, mesh->numverts, modelorg);
- R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
{
const surfmesh_t *mesh;
rmeshstate_t m;
+ rcachearrayrequest_t request;
float modelorg[3];
Matrix4x4_Transform(&ent->inversematrix, r_origin, modelorg);
+ memset(&request, 0, sizeof(request));
memset(&m, 0, sizeof(m));
m.blendfunc1 = GL_SRC_ALPHA;
m.blendfunc2 = GL_ONE;
GL_UseColorArray();
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
- RSurf_FoggedColors_Vertex3f_Color4f(mesh->vertex3f, varray_color4f, 1, 1, 1, currentalpha, r_colorscale, mesh->numverts, modelorg);
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ RSurf_FoggedColors_Vertex3f_Color4f(mesh->vertex3f, varray_color4f, 1, 1, 1, currentalpha, r_colorscale, mesh->numverts, modelorg);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ if (m.tex[0])
+ m.pointer_texcoord[0] = mesh->texcoordtexture2f;
+ // LordHavoc: this is not caching at all (difficult to
+ // cache fogging information), it's just (ab)using the
+ // cache system to get some memory
+ request.data_size = mesh->numverts * sizeof(float[4]);
+ request.id_pointer1 = ent;
+ request.id_pointer2 = mesh;
+ request.id_number1 = r_framecount;
+ if (R_Mesh_CacheArray(&request))
+ RSurf_FoggedColors_Vertex3f_Color4f(mesh->vertex3f, request.data, 1, 1, 1, currentalpha, r_colorscale, mesh->numverts, modelorg);
+ m.pointer_color = request.data;
+ R_Mesh_State(&m);
+ }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
{
const surfmesh_t *mesh;
rmeshstate_t m;
+ rcachearrayrequest_t request;
float modelorg[3];
Matrix4x4_Transform(&ent->inversematrix, r_origin, modelorg);
+ memset(&request, 0, sizeof(request));
memset(&m, 0, sizeof(m));
m.blendfunc1 = GL_SRC_ALPHA;
m.blendfunc2 = GL_ONE;
GL_UseColorArray();
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- if (m.tex[0])
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
- RSurf_FogPassColors_Vertex3f_Color4f(mesh->vertex3f, varray_color4f, fogcolor[0], fogcolor[1], fogcolor[2], currentalpha, r_colorscale, mesh->numverts, modelorg);
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ if (m.tex[0])
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ RSurf_FogPassColors_Vertex3f_Color4f(mesh->vertex3f, varray_color4f, fogcolor[0], fogcolor[1], fogcolor[2], currentalpha, r_colorscale, mesh->numverts, modelorg);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ if (m.tex[0])
+ m.pointer_texcoord[0] = mesh->texcoordtexture2f;
+ // LordHavoc: this is not caching at all (difficult to
+ // cache fogging information), it's just (ab)using the
+ // cache system to get some memory
+ request.data_size = mesh->numverts * sizeof(float[4]);
+ request.id_pointer1 = ent;
+ request.id_pointer2 = mesh;
+ request.id_number1 = r_framecount;
+ if (R_Mesh_CacheArray(&request))
+ RSurf_FogPassColors_Vertex3f_Color4f(mesh->vertex3f, request.data, fogcolor[0], fogcolor[1], fogcolor[2], currentalpha, r_colorscale, mesh->numverts, modelorg);
+ m.pointer_color = request.data;
+ R_Mesh_State(&m);
+ }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
rmeshstate_t m;
int lightmaptexturenum;
float cl;
- /*
- rcachearrayrequest_t request;
- memset(&request, 0, sizeof(request));
- */
memset(&m, 0, sizeof(m));
m.blendfunc1 = GL_ONE;
m.blendfunc2 = GL_ZERO;
R_Mesh_State(&m);
cl = (float) (1 << r_lightmapscalebit) * r_colorscale;
GL_Color(cl, cl, cl, 1);
- if (!gl_mesh_copyarrays.integer)
- R_Mesh_EndBatch();
while((surf = *surfchain++) != NULL)
{
}
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- if (!gl_mesh_copyarrays.integer)
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(1, mesh->texcoordlightmap2f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(2, mesh->texcoorddetail2f, mesh->numverts);
+ }
+ else
{
m.pointervertexcount = mesh->numverts;
m.pointer_vertex = mesh->vertex3f;
m.pointer_texcoord[0] = mesh->texcoordtexture2f;
m.pointer_texcoord[1] = mesh->texcoordlightmap2f;
m.pointer_texcoord[2] = mesh->texcoorddetail2f;
- /*
- request.id_pointer1 = ent->model;
- request.id_pointer2 = mesh->texcoorddetail2f;
- request.data_size = sizeof(float[2]) * mesh->numverts;
- if (R_Mesh_CacheArray(&request))
- memcpy(request.data, mesh->texcoorddetail2f, request.data_size);
- m.pointer_texcoord[2] = request.data;
- */
R_Mesh_State(&m);
}
- else
- {
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(1, mesh->texcoordlightmap2f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(2, mesh->texcoorddetail2f, mesh->numverts);
- }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
}
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(1, mesh->texcoordlightmap2f, mesh->numverts);
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(1, mesh->texcoordlightmap2f, mesh->numverts);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ m.pointer_texcoord[0] = mesh->texcoordtexture2f;
+ m.pointer_texcoord[1] = mesh->texcoordlightmap2f;
+ R_Mesh_State(&m);
+ }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
{
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ m.pointer_texcoord[0] = mesh->texcoordtexture2f;
+ R_Mesh_State(&m);
+ }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
}
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordlightmap2f, mesh->numverts);
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordlightmap2f, mesh->numverts);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ m.pointer_texcoord[0] = mesh->texcoordlightmap2f;
+ R_Mesh_State(&m);
+ }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
const msurface_t *surf;
const surfmesh_t *mesh;
float colorscale;
+ rcachearrayrequest_t request;
rmeshstate_t m;
+ memset(&request, 0, sizeof(request));
memset(&m, 0, sizeof(m));
m.blendfunc1 = GL_SRC_ALPHA;
m.blendfunc2 = GL_ONE;
{
if (RSurf_LightCheck(&ent->inversematrix, surf->dlightbits, mesh))
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
- R_FillColors(varray_color4f, mesh->numverts, 0, 0, 0, 1);
- RSurf_LightSeparate_Vertex3f_Color4f(&ent->inversematrix, surf->dlightbits, mesh->numverts, mesh->vertex3f, varray_color4f, colorscale);
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ R_FillColors(varray_color4f, mesh->numverts, 0, 0, 0, 1);
+ RSurf_LightSeparate_Vertex3f_Color4f(&ent->inversematrix, surf->dlightbits, mesh->numverts, mesh->vertex3f, varray_color4f, colorscale);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ m.pointer_texcoord[0] = mesh->texcoordtexture2f;
+ // LordHavoc: this is not caching at all (difficult to
+ // cache lighting information), it's just (ab)using the
+ // cache system to get some memory
+ request.data_size = mesh->numverts * sizeof(float[4]);
+ request.id_pointer1 = ent;
+ request.id_pointer2 = mesh;
+ request.id_number1 = r_framecount;
+ if (R_Mesh_CacheArray(&request))
+ {
+ R_FillColors(request.data, mesh->numverts, 0, 0, 0, 1);
+ RSurf_LightSeparate_Vertex3f_Color4f(&ent->inversematrix, surf->dlightbits, mesh->numverts, mesh->vertex3f, request.data, colorscale);
+ }
+ m.pointer_color = request.data;
+ R_Mesh_State(&m);
+ }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
{
const msurface_t *surf;
const surfmesh_t *mesh;
+ rcachearrayrequest_t request;
rmeshstate_t m;
float modelorg[3];
Matrix4x4_Transform(&ent->inversematrix, r_origin, modelorg);
+ memset(&request, 0, sizeof(request));
memset(&m, 0, sizeof(m));
m.blendfunc1 = GL_SRC_ALPHA;
m.blendfunc2 = GL_ONE_MINUS_SRC_ALPHA;
{
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- if (m.tex[0])
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
- RSurf_FogPassColors_Vertex3f_Color4f(mesh->vertex3f, varray_color4f, fogcolor[0], fogcolor[1], fogcolor[2], 1, r_colorscale, mesh->numverts, modelorg);
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ if (m.tex[0])
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ RSurf_FogPassColors_Vertex3f_Color4f(mesh->vertex3f, varray_color4f, fogcolor[0], fogcolor[1], fogcolor[2], 1, r_colorscale, mesh->numverts, modelorg);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ if (m.tex[0])
+ m.pointer_texcoord[0] = mesh->texcoordtexture2f;
+ // LordHavoc: this is not caching at all (difficult to
+ // cache fogging information), it's just (ab)using the
+ // cache system to get some memory
+ request.data_size = mesh->numverts * sizeof(float[4]);
+ request.id_pointer1 = ent;
+ request.id_pointer2 = mesh;
+ request.id_number1 = r_framecount;
+ if (R_Mesh_CacheArray(&request))
+ RSurf_FogPassColors_Vertex3f_Color4f(mesh->vertex3f, request.data, fogcolor[0], fogcolor[1], fogcolor[2], 1, r_colorscale, mesh->numverts, modelorg);
+ m.pointer_color = request.data;
+ R_Mesh_State(&m);
+ }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
{
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(0, mesh->texcoorddetail2f, mesh->numverts);
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoorddetail2f, mesh->numverts);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ m.pointer_texcoord[0] = mesh->texcoorddetail2f;
+ R_Mesh_State(&m);
+ }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
{
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ m.pointer_texcoord[0] = mesh->texcoordtexture2f;
+ R_Mesh_State(&m);
+ }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}
{
for (mesh = surf->mesh;mesh;mesh = mesh->chain)
{
- R_Mesh_GetSpace(mesh->numverts);
- R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
- R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ if (gl_mesh_copyarrays.integer)
+ {
+ R_Mesh_GetSpace(mesh->numverts);
+ R_Mesh_CopyVertex3f(mesh->vertex3f, mesh->numverts);
+ R_Mesh_CopyTexCoord2f(0, mesh->texcoordtexture2f, mesh->numverts);
+ }
+ else
+ {
+ m.pointervertexcount = mesh->numverts;
+ m.pointer_vertex = mesh->vertex3f;
+ m.pointer_texcoord[0] = mesh->texcoordtexture2f;
+ R_Mesh_State(&m);
+ }
R_Mesh_Draw(mesh->numverts, mesh->numtriangles, mesh->element3i);
}
}