mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-12-11 05:01:09 +00:00
- fixed: The scissor rectangle must be clipped to the upper left edge of the screen.
Negative coordinates are treated as "disable scissor", so if some transformation results in something off-screen it needs to be handled before passing it to the backend.
This commit is contained in:
parent
3e7061036a
commit
95c232d31a
2 changed files with 3 additions and 1 deletions
|
@ -150,6 +150,9 @@ void Draw2D(F2DDrawer *drawer, FRenderState &state)
|
||||||
sciY = screen->ScreenToWindowY(cmd.mScissor[3]);
|
sciY = screen->ScreenToWindowY(cmd.mScissor[3]);
|
||||||
sciW = screen->ScreenToWindowX(cmd.mScissor[2]) - sciX;
|
sciW = screen->ScreenToWindowX(cmd.mScissor[2]) - sciX;
|
||||||
sciH = screen->ScreenToWindowY(cmd.mScissor[1]) - sciY;
|
sciH = screen->ScreenToWindowY(cmd.mScissor[1]) - sciY;
|
||||||
|
// If coordinates turn out negative, clip to sceen here to avoid undefined behavior.
|
||||||
|
if (sciX < 0) sciW += sciX, sciX = 0;
|
||||||
|
if (sciY < 0) sciH += sciY, sciY = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,7 +11,6 @@ class FxAddSub;
|
||||||
struct BuildInfo;
|
struct BuildInfo;
|
||||||
class FMultipatchTextureBuilder;
|
class FMultipatchTextureBuilder;
|
||||||
class FScanner;
|
class FScanner;
|
||||||
int PalCheck(int tex);
|
|
||||||
|
|
||||||
// Texture manager
|
// Texture manager
|
||||||
class FTextureManager
|
class FTextureManager
|
||||||
|
|
Loading…
Reference in a new issue