mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-11 15:21:51 +00:00
- Fix depth values when screenblocks less than 11
This commit is contained in:
parent
b1355d472c
commit
1a5f679d43
2 changed files with 6 additions and 1 deletions
|
@ -225,6 +225,7 @@ namespace swrenderer
|
||||||
if (rendertarget->IsBgra())
|
if (rendertarget->IsBgra())
|
||||||
{
|
{
|
||||||
uint32_t *destorg = (uint32_t*)rendertarget->GetBuffer();
|
uint32_t *destorg = (uint32_t*)rendertarget->GetBuffer();
|
||||||
|
destorg += viewwindowx + viewwindowy * rendertarget->GetPitch();
|
||||||
uint32_t *dest = (uint32_t*)args.Dest();
|
uint32_t *dest = (uint32_t*)args.Dest();
|
||||||
int offset = (int)(ptrdiff_t)(dest - destorg);
|
int offset = (int)(ptrdiff_t)(dest - destorg);
|
||||||
x = offset % rendertarget->GetPitch();
|
x = offset % rendertarget->GetPitch();
|
||||||
|
@ -233,6 +234,7 @@ namespace swrenderer
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uint8_t *destorg = rendertarget->GetBuffer();
|
uint8_t *destorg = rendertarget->GetBuffer();
|
||||||
|
destorg += viewwindowx + viewwindowy * rendertarget->GetPitch();
|
||||||
uint8_t *dest = (uint8_t*)args.Dest();
|
uint8_t *dest = (uint8_t*)args.Dest();
|
||||||
int offset = (int)(ptrdiff_t)(dest - destorg);
|
int offset = (int)(ptrdiff_t)(dest - destorg);
|
||||||
x = offset % rendertarget->GetPitch();
|
x = offset % rendertarget->GetPitch();
|
||||||
|
@ -247,6 +249,7 @@ namespace swrenderer
|
||||||
if (rendertarget->IsBgra())
|
if (rendertarget->IsBgra())
|
||||||
{
|
{
|
||||||
uint32_t *destorg = (uint32_t*)rendertarget->GetBuffer();
|
uint32_t *destorg = (uint32_t*)rendertarget->GetBuffer();
|
||||||
|
destorg += viewwindowx + viewwindowy * rendertarget->GetPitch();
|
||||||
uint32_t *dest = (uint32_t*)args.Dest();
|
uint32_t *dest = (uint32_t*)args.Dest();
|
||||||
int offset = (int)(ptrdiff_t)(dest - destorg);
|
int offset = (int)(ptrdiff_t)(dest - destorg);
|
||||||
x = offset % rendertarget->GetPitch();
|
x = offset % rendertarget->GetPitch();
|
||||||
|
@ -255,6 +258,7 @@ namespace swrenderer
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uint8_t *destorg = rendertarget->GetBuffer();
|
uint8_t *destorg = rendertarget->GetBuffer();
|
||||||
|
destorg += viewwindowx + viewwindowy * rendertarget->GetPitch();
|
||||||
uint8_t *dest = (uint8_t*)args.Dest();
|
uint8_t *dest = (uint8_t*)args.Dest();
|
||||||
int offset = (int)(ptrdiff_t)(dest - destorg);
|
int offset = (int)(ptrdiff_t)(dest - destorg);
|
||||||
x = offset % rendertarget->GetPitch();
|
x = offset % rendertarget->GetPitch();
|
||||||
|
|
|
@ -178,7 +178,8 @@ namespace swrenderer
|
||||||
double curyfrac = baseyfrac + ystepscale * (x1 - minx);
|
double curyfrac = baseyfrac + ystepscale * (x1 - minx);
|
||||||
|
|
||||||
double distance = viewport->PlaneDepth(y, planeheight);
|
double distance = viewport->PlaneDepth(y, planeheight);
|
||||||
float zbufferdepth = 1.0f / (distance * Thread->Viewport->viewwindow.FocalTangent);
|
|
||||||
|
float zbufferdepth = (float)(1.0 / fabs(planeheight / Thread->Viewport->ScreenToViewY(y, 1.0)));
|
||||||
|
|
||||||
drawerargs.SetTextureUStep(distance * xstepscale / drawerargs.TextureWidth());
|
drawerargs.SetTextureUStep(distance * xstepscale / drawerargs.TextureWidth());
|
||||||
drawerargs.SetTextureUPos((distance * curxfrac + pviewx) / drawerargs.TextureWidth());
|
drawerargs.SetTextureUPos((distance * curxfrac + pviewx) / drawerargs.TextureWidth());
|
||||||
|
|
Loading…
Reference in a new issue