]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_rsurf.c
reverted to fast version of trianglefacinglight code, as it was found to be a speed...
[xonotic/darkplaces.git] / gl_rsurf.c
index 2318141d5db34f3e81c759c47b234de6f2bd9cb1..0c0c77a65e79f7827c80ae3d0f2d2e10984d840e 100644 (file)
@@ -36,7 +36,7 @@ cvar_t r_drawportals = {0, "r_drawportals", "0"};
 cvar_t r_testvis = {0, "r_testvis", "0"};
 cvar_t r_floatbuildlightmap = {0, "r_floatbuildlightmap", "0"};
 cvar_t r_detailtextures = {CVAR_SAVE, "r_detailtextures", "1"};
-cvar_t r_surfaceworldnode = {0, "r_surfaceworldnode", "0"};
+cvar_t r_surfaceworldnode = {0, "r_surfaceworldnode", "1"};
 
 static int dlightdivtable[32768];
 
@@ -786,9 +786,10 @@ static void RSurfShader_Sky(const entity_render_t *ent, const texture_t *texture
 
 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;
+       float f, colorscale, scroll[2], *v;
        const surfmesh_t *mesh;
        rmeshstate_t m;
        float alpha;
@@ -830,6 +831,13 @@ static void RSurfShader_Water_Callback(const void *calldata1, int calldata2)
                R_Mesh_ResizeCheck(mesh->numverts);
                memcpy(varray_vertex, mesh->verts, mesh->numverts * sizeof(float[4]));
                memcpy(varray_texcoord[0], mesh->str, mesh->numverts * sizeof(float[4]));
+               scroll[0] = sin(cl.time) * 0.125f;
+               scroll[1] = sin(cl.time * 0.8f) * 0.125f;
+               for (i = 0, v = varray_texcoord[0];i < mesh->numverts;i++, v += 4)
+               {
+                       v[0] += scroll[0];
+                       v[1] += scroll[1];
+               }
                f = surf->flags & SURF_DRAWFULLBRIGHT ? 1.0f : ((surf->flags & SURF_LIGHTMAP) ? 0 : 0.5f);
                R_FillColors(varray_color, mesh->numverts, f, f, f, alpha);
                if (!(surf->flags & SURF_DRAWFULLBRIGHT || ent->effects & EF_FULLBRIGHT))
@@ -869,7 +877,7 @@ static void RSurfShader_Water(const entity_render_t *ent, const texture_t *textu
        vec3_t center;
        if (texture->rendertype != SURFRENDER_OPAQUE)
        {
-               for (chain = surfchain;(surf = *chain) != NULL;*chain++)
+               for (chain = surfchain;(surf = *chain) != NULL;chain++)
                {
                        if (surf->visframe == r_framecount)
                        {
@@ -879,7 +887,7 @@ static void RSurfShader_Water(const entity_render_t *ent, const texture_t *textu
                }
        }
        else
-               for (chain = surfchain;(surf = *chain) != NULL;*chain++)
+               for (chain = surfchain;(surf = *chain) != NULL;chain++)
                        if (surf->visframe == r_framecount)
                                RSurfShader_Water_Callback(ent, surf - ent->model->surfaces);
 }