mirror of
https://github.com/jndean/IPUDOOM.git
synced 2026-08-18 16:28:53 +00:00
Improve culling of off-tile walls -> improve performance in multi-tile rendering
This commit is contained in:
+10
-2
@@ -211,8 +211,10 @@ void R_ClipPassWallSegment(int first, int last) {
|
||||
//
|
||||
void R_ClearClipSegs(void) {
|
||||
solidsegs[0].first = -0x7fffffff;
|
||||
solidsegs[0].last = -1;
|
||||
solidsegs[1].first = viewwidth;
|
||||
// solidsegs[0].last = -1; // JOSEF
|
||||
// solidsegs[1].first = viewwidth; // JOSEF
|
||||
solidsegs[0].last = tileLeftClip - 1; // JOSEF
|
||||
solidsegs[1].first = tileRightClip; // JOSEF
|
||||
solidsegs[1].last = 0x7fffffff;
|
||||
newend = solidsegs + 2;
|
||||
}
|
||||
@@ -276,6 +278,12 @@ void R_AddLine(seg_t *line) {
|
||||
x1 = viewangletox[angle1];
|
||||
x2 = viewangletox[angle2];
|
||||
|
||||
// JOSEF: extra clipping for multi-tile rendering
|
||||
if (x1 < tileLeftClip) x1 = tileLeftClip;
|
||||
if (x2 < tileLeftClip) x2 = tileLeftClip;
|
||||
if (x1 > tileRightClip) x1 = tileRightClip;
|
||||
if (x2 > tileRightClip) x2 = tileRightClip;
|
||||
|
||||
// Does not cross a pixel?
|
||||
if (x1 == x2)
|
||||
return;
|
||||
|
||||
+3
-1
@@ -43,7 +43,9 @@
|
||||
#define SIL_TOP 2
|
||||
#define SIL_BOTH 3
|
||||
|
||||
#define MAXDRAWSEGS 256
|
||||
// JOSEF: Fewer drawsegs needed for multitile rendering?
|
||||
// #define MAXDRAWSEGS 256
|
||||
#define MAXDRAWSEGS 64 // JOSEF: Random choice, refine later
|
||||
|
||||
//
|
||||
// INTERNAL MAP TYPES
|
||||
|
||||
@@ -627,6 +627,8 @@ void R_ExecuteSetViewSize(void) {
|
||||
// JOSEF
|
||||
tileLeftClip = tileID * IPUCOLSPERRENDERTILE;
|
||||
tileRightClip = tileLeftClip + IPUCOLSPERRENDERTILE;
|
||||
// tileLeftClip += 1; // Helps visualise multitil rendering :)
|
||||
// tileRightClip -= 1;
|
||||
|
||||
R_InitBuffer(scaledviewwidth, viewheight);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user