From f1a6345d2083eda48652e8e78dbf71d50633c511 Mon Sep 17 00:00:00 2001 From: Lee Salzman Date: Sun, 4 Jan 2009 23:27:46 +0000 Subject: [PATCH] render_seg_new optimizations git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4116 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/worldrender.cpp | 42 ++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/source/src/worldrender.cpp b/source/src/worldrender.cpp index 156fcb56..6d6bb5a5 100644 --- a/source/src/worldrender.cpp +++ b/source/src/worldrender.cpp @@ -147,6 +147,7 @@ void render_seg_new(float vx, float vy, float vh, int mip, int x, int y, int xs, sqr *u = SWS(s,1,1,mfactor); \ sqr *v = SWS(s,0,1,mfactor); + int rendered = 0; LOOPH // floors { int start = xx; @@ -155,26 +156,41 @@ void render_seg_new(float vx, float vy, float vh, int mip, int x, int y, int xs, render_seg_new(vx, vy, vh, mip-1, start*2, yy*2, xx*2+2, yy*2+2); continue; } - stats[mip]++; + rendered++; LOOPD - if((s->type==SPACE || s->type==CHF) && s->floor<=vh && render_floor) + switch(s->type) { - render_flat(s->ftex, xx<floor, s, t, u, v, false); - if(s->floortype==FHF) - { - render_flatdelta(s->ftex, xx<floor-s->vdelta/4.0ffloor<=vh && render_floor) + { + render_flat(s->ftex, xx<floor, s, t, u, v, false); + if(s->floorftex, xx<floor-s->vdelta/4.0ftype==SPACE || s->type==FHF) && s->ceil>=vh && render_ceil) - render_flat(s->ctex, xx<ceil, s, t, u, v, true); - if(s->type==CHF) //if(s->ceil>=vh) - render_flatdelta(s->ctex, xx<type) + { + case SPACE: + case FHF: + if(s->ceil>=vh && render_ceil) + render_flat(s->ctex, xx<ceil, s, t, u, v, true); + break; + case CHF: + render_flatdelta(s->ctex, xx<