[Scummvm-git-logs] scummvm branch-2-5 -> 724a4f24f2a943a8667eb9df11e35430832e4d9c
mgerhardy
noreply at scummvm.org
Mon Nov 29 15:27:11 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
724a4f24f2 TWINE: fixed polygon clipping issue
Commit: 724a4f24f2a943a8667eb9df11e35430832e4d9c
https://github.com/scummvm/scummvm/commit/724a4f24f2a943a8667eb9df11e35430832e4d9c
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-11-29T16:27:03+01:00
Commit Message:
TWINE: fixed polygon clipping issue
https://bugs.scummvm.org/ticket/12020
Changed paths:
engines/twine/renderer/renderer.cpp
diff --git a/engines/twine/renderer/renderer.cpp b/engines/twine/renderer/renderer.cpp
index 7389f1aea4..fa4c98c667 100644
--- a/engines/twine/renderer/renderer.cpp
+++ b/engines/twine/renderer/renderer.cpp
@@ -417,7 +417,7 @@ bool Renderer::computePolygons(int16 polyRenderType, const Vertex *vertices, int
if (vtop > vbottom) {
return false;
}
- if (vright < clip.left - 1 || vleft > clip.right + 1 || vbottom < clip.top - 1 || vtop > clip.bottom + 1) {
+ if (vright <= clip.left || vleft >= clip.right || vbottom <= clip.top || vtop >= clip.bottom) {
debug(10, "Clipped %i:%i:%i:%i, clip rect(%i:%i:%i:%i)", vleft, vtop, vright, vbottom, clip.left, clip.top, clip.right, clip.bottom);
return false;
}
@@ -467,7 +467,7 @@ bool Renderer::computePolygons(int16 polyRenderType, const Vertex *vertices, int
float slope = (float)hsize / (float)vsize;
slope = up ? -slope : slope;
- for (int16 i = 0; i < vsize + 2; i++) {
+ for (int16 i = 0; i <= vsize; i++) {
if (outPtr >= polyTabBegin && outPtr <= polyTabEnd) {
*outPtr = xpos;
}
@@ -478,7 +478,7 @@ bool Renderer::computePolygons(int16 polyRenderType, const Vertex *vertices, int
if (polyRenderType >= POLYGONTYPE_GOURAUD) { // we must compute the color progression
int16 *outPtr2 = &_colorProgressionBuffer[polyTabIndex];
- for (int16 i = 0; i < vsize + 2; i++) {
+ for (int16 i = 0; i <= vsize; i++) {
if (outPtr2 >= colProgressBufStart && outPtr2 <= colProgressBufEnd) {
*outPtr2 = cvalue;
}
More information about the Scummvm-git-logs
mailing list