mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 22:11:43 +00:00
- Fix voxel clipping for r_scene_multithreaded
This commit is contained in:
parent
4545539045
commit
6d8281c812
3 changed files with 6 additions and 9 deletions
|
@ -527,8 +527,8 @@ namespace swrenderer
|
|||
|
||||
void RenderPortal::SetMainPortal()
|
||||
{
|
||||
WindowLeft = 0;
|
||||
WindowRight = viewwidth;
|
||||
WindowLeft = Thread->X1;
|
||||
WindowRight = Thread->X2;
|
||||
MirrorFlags = 0;
|
||||
CurrentPortal = nullptr;
|
||||
CurrentPortalUniq = 0;
|
||||
|
|
|
@ -84,10 +84,6 @@ namespace swrenderer
|
|||
if (x1 >= x2)
|
||||
return;
|
||||
|
||||
// Reject sprites outside the slice rendered by the thread
|
||||
if (x2 < thread->X1 || x1 > thread->X2)
|
||||
return;
|
||||
|
||||
// [RH] Sprites split behind a one-sided line can also be discarded.
|
||||
if (spr->sector == nullptr)
|
||||
return;
|
||||
|
|
|
@ -457,10 +457,7 @@ namespace swrenderer
|
|||
if (voxptr >= voxend) continue;
|
||||
|
||||
lx = xs_RoundToInt(nx * centerxwide_f / (ny + y1)) + viewport->viewwindow.centerx;
|
||||
if (lx < 0) lx = 0;
|
||||
rx = xs_RoundToInt((nx + nxoff) * centerxwide_f / (ny + y2)) + viewport->viewwindow.centerx;
|
||||
if (rx > viewwidth) rx = viewwidth;
|
||||
if (rx <= lx) continue;
|
||||
|
||||
if (flags & DVF_MIRRORED)
|
||||
{
|
||||
|
@ -469,6 +466,10 @@ namespace swrenderer
|
|||
rx = t;
|
||||
}
|
||||
|
||||
if (lx < this->x1) lx = this->x1;
|
||||
if (rx > this->x2) rx = this->x2;
|
||||
if (rx <= lx) continue;
|
||||
|
||||
fixed_t l1 = xs_RoundToInt(centerxwidebig_f / (ny - yoff));
|
||||
fixed_t l2 = xs_RoundToInt(centerxwidebig_f / (ny + yoff));
|
||||
for (; voxptr < voxend; voxptr = (kvxslab_t *)((uint8_t *)voxptr + voxptr->zleng + 3))
|
||||
|
|
Loading…
Reference in a new issue