mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-28 14:52:01 +00:00
Fix frame buffer bounds and access errors
This commit is contained in:
parent
cb4b74e0c3
commit
6620d99fbb
2 changed files with 5 additions and 4 deletions
|
@ -67,6 +67,7 @@ void RenderPolyBsp::Render()
|
||||||
RenderSubsector(*it);
|
RenderSubsector(*it);
|
||||||
|
|
||||||
RenderPlayerSprites();
|
RenderPlayerSprites();
|
||||||
|
DrawerCommandQueue::WaitForWorkers();
|
||||||
RenderScreenSprites(); // To do: should be called by FSoftwareRenderer::DrawRemainingPlayerSprites instead of here
|
RenderScreenSprites(); // To do: should be called by FSoftwareRenderer::DrawRemainingPlayerSprites instead of here
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -425,7 +425,7 @@ void ScreenPolyTriangleDrawer::draw(const ScreenPolyTriangleDrawerArgs *args, Dr
|
||||||
|
|
||||||
for (int ix = x; ix < x + q; ix++)
|
for (int ix = x; ix < x + q; ix++)
|
||||||
{
|
{
|
||||||
bool visible = ix >= clipleft && ix <= clipright && (cliptop <= y + iy) && (clipbottom > y + iy);
|
bool visible = ix >= clipleft && ix < clipright && (cliptop <= y + iy) && (clipbottom > y + iy);
|
||||||
|
|
||||||
if (CX1 > 0 && CX2 > 0 && CX3 > 0 && visible)
|
if (CX1 > 0 && CX2 > 0 && CX3 > 0 && visible)
|
||||||
{
|
{
|
||||||
|
@ -594,7 +594,7 @@ void ScreenPolyTriangleDrawer::fill(const ScreenPolyTriangleDrawerArgs *args, Dr
|
||||||
|
|
||||||
for (int ix = x; ix < x + q; ix++)
|
for (int ix = x; ix < x + q; ix++)
|
||||||
{
|
{
|
||||||
bool visible = ix >= clipleft && ix <= clipright && (cliptop <= y + iy) && (clipbottom > y + iy);
|
bool visible = ix >= clipleft && ix < clipright && (cliptop <= y + iy) && (clipbottom > y + iy);
|
||||||
|
|
||||||
if (CX1 > 0 && CX2 > 0 && CX3 > 0 && visible)
|
if (CX1 > 0 && CX2 > 0 && CX3 > 0 && visible)
|
||||||
{
|
{
|
||||||
|
@ -819,7 +819,7 @@ void ScreenPolyTriangleDrawer::draw32(const ScreenPolyTriangleDrawerArgs *args,
|
||||||
|
|
||||||
for (int ix = x; ix < x + q; ix++)
|
for (int ix = x; ix < x + q; ix++)
|
||||||
{
|
{
|
||||||
bool visible = ix >= clipleft && ix <= clipright && (cliptop <= y + iy) && (clipbottom > y + iy);
|
bool visible = ix >= clipleft && ix < clipright && (cliptop <= y + iy) && (clipbottom > y + iy);
|
||||||
|
|
||||||
if (CX1 > 0 && CX2 > 0 && CX3 > 0 && visible)
|
if (CX1 > 0 && CX2 > 0 && CX3 > 0 && visible)
|
||||||
{
|
{
|
||||||
|
@ -995,7 +995,7 @@ void ScreenPolyTriangleDrawer::fill32(const ScreenPolyTriangleDrawerArgs *args,
|
||||||
|
|
||||||
for (int ix = x; ix < x + q; ix++)
|
for (int ix = x; ix < x + q; ix++)
|
||||||
{
|
{
|
||||||
bool visible = ix >= clipleft && ix <= clipright && (cliptop <= y + iy) && (clipbottom > y + iy);
|
bool visible = ix >= clipleft && ix < clipright && (cliptop <= y + iy) && (clipbottom > y + iy);
|
||||||
|
|
||||||
if (CX1 > 0 && CX2 > 0 && CX3 > 0 && visible)
|
if (CX1 > 0 && CX2 > 0 && CX3 > 0 && visible)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue