[Scummvm-git-logs] scummvm master -> 470755c12640be8aa13b2c958eee54938719fd4b

OMGPizzaGuy noreply at scummvm.org
Thu Jan 5 00:23:26 UTC 2023


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b63ac203e7 UTLIMA8: Cleanup of soft render surface
470755c126 ULTIMA8: Use rect for render surface fill methods


Commit: b63ac203e756e08ef33df8e05b5e45b3fde587a4
    https://github.com/scummvm/scummvm/commit/b63ac203e756e08ef33df8e05b5e45b3fde587a4
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2023-01-04T18:22:50-06:00

Commit Message:
UTLIMA8: Cleanup of soft render surface

Changed paths:
    engines/ultima/ultima8/graphics/soft_render_surface.cpp
    engines/ultima/ultima8/graphics/texture.h


diff --git a/engines/ultima/ultima8/graphics/soft_render_surface.cpp b/engines/ultima/ultima8/graphics/soft_render_surface.cpp
index 414c7492462..da1eae881bf 100644
--- a/engines/ultima/ultima8/graphics/soft_render_surface.cpp
+++ b/engines/ultima/ultima8/graphics/soft_render_surface.cpp
@@ -68,22 +68,22 @@ template<class uintX> void SoftRenderSurface<uintX>::FillAlpha(uint8 alpha, int3
 		return;
 
 	// An optimization.
-	if ((int)(w * sizeof(uintX)) == _pitch) {
+	if (w * format.bytesPerPixel == _pitch) {
 		w *= h;
 		h = 1;
 	}
 
-	uint8 *pixel = _pixels + sy * _pitch + sx * sizeof(uintX);
+	uint8 *pixel = _pixels + sy * _pitch + sx * format.bytesPerPixel;
 	uint8 *end = pixel + h * _pitch;
 
-	uint8 *line_end = pixel + w * sizeof(uintX);
-	int diff = _pitch - w * sizeof(uintX);
+	uint8 *line_end = pixel + w * format.bytesPerPixel;
+	int diff = _pitch - w * format.bytesPerPixel;
 
-	uintX a = (((uintX)alpha) << format.aShift) & aMask;
+	uint32 a = (((uint32)alpha) << format.aShift) & aMask;
 
 #ifdef CHECK_ALPHA_FILLS
-	uintX c;
-	uintX m;
+	uint32 c;
+	uint32 m;
 	if (a == 0) {
 		c = (format.bMask >> 1)&format.bMask;
 		m = format.bMask;
@@ -100,7 +100,7 @@ template<class uintX> void SoftRenderSurface<uintX>::FillAlpha(uint8 alpha, int3
 #ifdef CHECK_ALPHA_FILLS
 			*dest = (*dest & ~m) | (c + (((*dest & m) >> 1)&m));
 #endif
-			pixel += sizeof(uintX);
+			pixel += format.bytesPerPixel;
 		}
 
 		line_end += _pitch;
@@ -109,10 +109,11 @@ template<class uintX> void SoftRenderSurface<uintX>::FillAlpha(uint8 alpha, int3
 }
 
 template<class uintX> void SoftRenderSurface<uintX>::FillBlended(uint32 rgba, int32 sx, int32 sy, int32 w, int32 h) {
-	if ((rgba & TEX32_A_MASK) == TEX32_A_MASK) {
+	int alpha = TEX32_A(rgba);
+	if (alpha == 0xFF) {
 		Fill32(rgba, sx, sy, w, h);
 		return;
-	} else if (!(rgba & TEX32_A_MASK)) {
+	} else if (!alpha) {
 		return;
 	}
 
@@ -125,29 +126,32 @@ template<class uintX> void SoftRenderSurface<uintX>::FillBlended(uint32 rgba, in
 
 	if (!w || !h) return;
 
+	const Graphics::PixelFormat &format = _surface->format;
+
 	// An optimization.
-	if ((int)(w * sizeof(uintX)) == _pitch) {
+	if (w * format.bytesPerPixel == _pitch) {
 		w *= h;
 		h = 1;
 	}
 
-	uint8 *pixel = _pixels + sy * _pitch + sx * sizeof(uintX);
+	uint8 *pixel = _pixels + sy * _pitch + sx * format.bytesPerPixel;
 	uint8 *end = pixel + h * _pitch;
 
-	uint8 *line_end = pixel + w * sizeof(uintX);
-	int diff = _pitch - w * sizeof(uintX);
+	uint8 *line_end = pixel + w * format.bytesPerPixel;
+	int diff = _pitch - w * format.bytesPerPixel;
 
-	const Graphics::PixelFormat &format = _surface->format;
 	uint32 aMask = format.aMax() << format.aShift;
-	int alpha = TEX32_A(rgba) + 1;
-	rgba = TEX32_PACK_RGBA16(TEX32_R(rgba) * alpha, TEX32_G(rgba) * alpha, TEX32_B(rgba) * alpha, 255 * alpha);
+	rgba = TEX32_PACK_RGBA((TEX32_R(rgba) * alpha) >> 8,
+						   (TEX32_G(rgba) * alpha) >> 8,
+						   (TEX32_B(rgba) * alpha) >> 8,
+						   (255 * alpha) >> 8);
 
 	while (pixel != end) {
 		while (pixel != line_end) {
 			uintX *dest = reinterpret_cast<uintX *>(pixel);
-			uintX d = *dest;
+			uint32 d = *dest;
 			*dest = (d & aMask) | BlendPreModFast(rgba, d, format);
-			pixel += sizeof(uintX);
+			pixel += format.bytesPerPixel;
 		}
 
 		line_end += _pitch;
@@ -191,10 +195,12 @@ template<class uintX> void SoftRenderSurface<uintX>::FadedBlit(const Graphics::M
 	if (px != dx) sx += dx - px;
 	if (py != dy) sy += dy - py;
 
-	uint8 *pixel = _pixels + dy * _pitch + dx * sizeof(uintX);
-	uint8 *line_end = pixel + w * sizeof(uintX);
+	const Graphics::PixelFormat &format = _surface->format;
+
+	uint8 *pixel = _pixels + dy * _pitch + dx * format.bytesPerPixel;
+	uint8 *line_end = pixel + w * format.bytesPerPixel;
 	uint8 *end = pixel + h * _pitch;
-	int diff = _pitch - w * sizeof(uintX);
+	int diff = _pitch - w * format.bytesPerPixel;
 
 	uint32 a = TEX32_A(col32);
 	uint32 ia = 256 - a;
@@ -202,7 +208,6 @@ template<class uintX> void SoftRenderSurface<uintX>::FadedBlit(const Graphics::M
 	uint32 g = (TEX32_G(col32) * a);
 	uint32 b = (TEX32_B(col32) * a);
 
-	const Graphics::PixelFormat &format = _surface->format;
 	const Graphics::PixelFormat &texformat = src.rawSurface().format;
 
 	if (texformat.bpp() == 32) {
@@ -211,18 +216,18 @@ template<class uintX> void SoftRenderSurface<uintX>::FadedBlit(const Graphics::M
 
 		while (pixel != end) {
 			if (!alpha_blend) while (pixel != line_end) {
-					if (*texel & TEX32_A_MASK) {
+					if (TEX32_A(*texel)) {
 						*(reinterpret_cast<uintX *>(pixel)) = static_cast<uintX>(
 							format.RGBToColor(
 								(TEX32_R(*texel) * ia + r) >> 8,
 								(TEX32_G(*texel) * ia + g) >> 8,
 								(TEX32_B(*texel) * ia + b) >> 8));
 					}
-					pixel += sizeof(uintX);
+					pixel += format.bytesPerPixel;
 					texel++;
 			}
 			else while (pixel != line_end) {
-					uint32 alpha = *texel & TEX32_A_MASK;
+					uint32 alpha = TEX32_A(*texel);
 					if (alpha == 0xFF) {
 						*(reinterpret_cast<uintX *>(pixel)) = static_cast<uintX>(
 							format.RGBToColor(
@@ -236,16 +241,16 @@ template<class uintX> void SoftRenderSurface<uintX>::FadedBlit(const Graphics::M
 						uint8 r2, g2, b2;
 						format.colorToRGB(*dest, r2, g2, b2);
 
-						uint32 dr = r2 * (256 - TEX32_A(Tsrc));
-						uint32 dg = g2 * (256 - TEX32_A(Tsrc));
-						uint32 db = b2 * (256 - TEX32_A(Tsrc));
-						dr += TEX32_R(Tsrc) * ia + ((r * TEX32_A(Tsrc)) >> 8);
-						dg += TEX32_G(Tsrc) * ia + ((g * TEX32_A(Tsrc)) >> 8);
-						db += TEX32_B(Tsrc) * ia + ((b * TEX32_A(Tsrc)) >> 8);
+						uint32 dr = r2 * (256 - alpha);
+						uint32 dg = g2 * (256 - alpha);
+						uint32 db = b2 * (256 - alpha);
+						dr += TEX32_R(Tsrc) * ia + ((r * alpha) >> 8);
+						dg += TEX32_G(Tsrc) * ia + ((g * alpha) >> 8);
+						db += TEX32_B(Tsrc) * ia + ((b * alpha) >> 8);
 
 						*dest = format.RGBToColor(dr >> 8, dg >> 8, db >> 8);
 					}
-					pixel += sizeof(uintX);
+					pixel += format.bytesPerPixel;
 					texel++;
 				}
 
@@ -260,11 +265,11 @@ template<class uintX> void SoftRenderSurface<uintX>::FadedBlit(const Graphics::M
 		while (pixel != end) {
 			while (pixel != line_end) {
 				// Uh, not supported right now
-				//if (*texel & RenderSurface::a_mask)
+				//if (TEX32_A(*texel))
 				{
 					*(reinterpret_cast<uintX *>(pixel)) = BlendHighlight(*texel, r, g, b, 1, ia, format);
 				}
-				pixel += sizeof(uintX);
+				pixel += format.bytesPerPixel;
 				texel++;
 			}
 
@@ -316,10 +321,12 @@ template<class uintX> void SoftRenderSurface<uintX>::MaskedBlit(const Graphics::
 	if (px != dx) sx += dx - px;
 	if (py != dy) sy += dy - py;
 
-	uint8 *pixel = _pixels + dy * _pitch + dx * sizeof(uintX);
-	uint8 *line_end = pixel + w * sizeof(uintX);
+	const Graphics::PixelFormat &format = _surface->format;
+
+	uint8 *pixel = _pixels + dy * _pitch + dx * format.bytesPerPixel;
+	uint8 *line_end = pixel + w * format.bytesPerPixel;
 	uint8 *end = pixel + h * _pitch;
-	int diff = _pitch - w * sizeof(uintX);
+	int diff = _pitch - w * format.bytesPerPixel;
 
 	uint32 a = TEX32_A(col32);
 	uint32 ia = 256 - a;
@@ -327,7 +334,6 @@ template<class uintX> void SoftRenderSurface<uintX>::MaskedBlit(const Graphics::
 	uint32 g = (TEX32_G(col32) * a);
 	uint32 b = (TEX32_B(col32) * a);
 
-	const Graphics::PixelFormat &format = _surface->format;
 	uint32 aMask = format.aMax() << format.aShift;
 	int texbpp = src.rawSurface().format.bpp();
 
@@ -340,7 +346,7 @@ template<class uintX> void SoftRenderSurface<uintX>::MaskedBlit(const Graphics::
 				while (pixel != line_end) {
 					uintX *dest = reinterpret_cast<uintX *>(pixel);
 
-					if (*texel & TEX32_A_MASK) {
+					if (TEX32_A(*texel)) {
 						if (!aMask || (*dest & aMask)) {
 							*dest = static_cast<uintX>(
 								format.RGBToColor(
@@ -349,7 +355,7 @@ template<class uintX> void SoftRenderSurface<uintX>::MaskedBlit(const Graphics::
 									(TEX32_B(*texel) * ia + b) >> 8));
 						}
 					}
-					pixel += sizeof(uintX);
+					pixel += format.bytesPerPixel;
 					texel++;
 				}
 			} else {
@@ -357,7 +363,7 @@ template<class uintX> void SoftRenderSurface<uintX>::MaskedBlit(const Graphics::
 					uintX *dest = reinterpret_cast<uintX *>(pixel);
 
 					if (!aMask || (*dest & aMask)) {
-						uint32 alpha = *texel & TEX32_A_MASK;
+						uint32 alpha = TEX32_A(*texel);
 						if (alpha == 0xFF) {
 							*dest = static_cast<uintX>(
 								format.RGBToColor(
@@ -369,17 +375,17 @@ template<class uintX> void SoftRenderSurface<uintX>::MaskedBlit(const Graphics::
 							uint8 r2, g2, b2;
 							format.colorToRGB(*dest, r2, g2, b2);
 
-							uint32 dr = r2 * (256 - TEX32_A(Tsrc));
-							uint32 dg = g2 * (256 - TEX32_A(Tsrc));
-							uint32 db = b2 * (256 - TEX32_A(Tsrc));
-							dr += TEX32_R(Tsrc) * ia + ((r * TEX32_A(Tsrc)) >> 8);
-							dg += TEX32_G(Tsrc) * ia + ((g * TEX32_A(Tsrc)) >> 8);
-							db += TEX32_B(Tsrc) * ia + ((b * TEX32_A(Tsrc)) >> 8);
+							uint32 dr = r2 * (256 - alpha);
+							uint32 dg = g2 * (256 - alpha);
+							uint32 db = b2 * (256 - alpha);
+							dr += TEX32_R(Tsrc) * ia + ((r * alpha) >> 8);
+							dg += TEX32_G(Tsrc) * ia + ((g * alpha) >> 8);
+							db += TEX32_B(Tsrc) * ia + ((b * alpha) >> 8);
 
 							*dest = format.RGBToColor(dr >> 8, dg >> 8, db >> 8);
 						}
 					}
-					pixel += sizeof(uintX);
+					pixel += format.bytesPerPixel;
 					texel++;
 				}
 			}
@@ -401,7 +407,7 @@ template<class uintX> void SoftRenderSurface<uintX>::MaskedBlit(const Graphics::
 				if (*dest & aMask) {
 					*dest = BlendHighlight(*texel, r, g, b, 1, ia, format);
 				}
-				pixel += sizeof(uintX);
+				pixel += format.bytesPerPixel;
 				texel++;
 			}
 
diff --git a/engines/ultima/ultima8/graphics/texture.h b/engines/ultima/ultima8/graphics/texture.h
index fc993e86adc..3d0641e1e2d 100644
--- a/engines/ultima/ultima8/graphics/texture.h
+++ b/engines/ultima/ultima8/graphics/texture.h
@@ -48,11 +48,6 @@ namespace Ultima8 {
 
 #define TEX32_PACK_RGBA(r,g,b,a)    (((a)<<TEX32_A_SHIFT)|((r)<<TEX32_R_SHIFT)|\
 									 ((g)<<TEX32_G_SHIFT)|((b)<<TEX32_B_SHIFT))
-#define TEX32_PACK_RGBA16(r,g,b,a)  ((((a)>>8)<<TEX32_A_SHIFT)|\
-									 (((r)>>8)<<TEX32_R_SHIFT)|\
-									 (((g)>>8)<<TEX32_G_SHIFT)|\
-									 (((b)>>8)<<TEX32_B_SHIFT))
-
 
 } // End of namespace Ultima8
 } // End of namespace Ultima


Commit: 470755c12640be8aa13b2c958eee54938719fd4b
    https://github.com/scummvm/scummvm/commit/470755c12640be8aa13b2c958eee54938719fd4b
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2023-01-04T18:22:51-06:00

Commit Message:
ULTIMA8: Use rect for render surface fill methods

Changed paths:
    engines/ultima/ultima8/graphics/render_surface.cpp
    engines/ultima/ultima8/graphics/render_surface.h
    engines/ultima/ultima8/graphics/soft_render_surface.cpp
    engines/ultima/ultima8/graphics/soft_render_surface.h
    engines/ultima/ultima8/gumps/desktop_gump.cpp
    engines/ultima/ultima8/gumps/message_box_gump.cpp
    engines/ultima/ultima8/gumps/minimap_gump.cpp
    engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
    engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
    engines/ultima/ultima8/gumps/widgets/text_widget.cpp
    engines/ultima/ultima8/ultima8.cpp


diff --git a/engines/ultima/ultima8/graphics/render_surface.cpp b/engines/ultima/ultima8/graphics/render_surface.cpp
index c45977c18db..4616213ea1c 100644
--- a/engines/ultima/ultima8/graphics/render_surface.cpp
+++ b/engines/ultima/ultima8/graphics/render_surface.cpp
@@ -323,8 +323,8 @@ bool RenderSurface::IsFlipped() const {
 //
 // Desc: Fill buffer (using a RGB colour)
 //
-void RenderSurface::Fill32(uint32 rgb, int32 sx, int32 sy, int32 w, int32 h) {
-	Rect rect(sx, sy, sx + w, sy + h);
+void RenderSurface::Fill32(uint32 rgb, const Rect &r) {
+	Rect rect = r;
 	rect.clip(_clipWindow);
 	rgb = _surface->format.RGBToColor((rgb >> 16) & 0xFF, (rgb >> 8) & 0xFF, rgb & 0xFF);
 	_surface->fillRect(Common::Rect(rect.left + _ox, rect.top + _oy, rect.right + _ox, rect.bottom + _oy), rgb);
diff --git a/engines/ultima/ultima8/graphics/render_surface.h b/engines/ultima/ultima8/graphics/render_surface.h
index 95d042e1138..286e5931034 100644
--- a/engines/ultima/ultima8/graphics/render_surface.h
+++ b/engines/ultima/ultima8/graphics/render_surface.h
@@ -149,13 +149,17 @@ public:
 	//
 
 	//! Fill buffer (using a RGB colour)
-	virtual void Fill32(uint32 rgb, int32 sx, int32 sy, int32 w, int32 h);
+	void Fill32(uint32 rgb, int32 sx, int32 sy, int32 w, int32 h) {
+		Fill32(rgb, Rect(sx, sy, sx + w, sy + h));
+	}
+
+	virtual void Fill32(uint32 rgb, const Rect &r);
 
 	//! Fill alpha channel
-	virtual void FillAlpha(uint8 alpha, int32 sx, int32 sy, int32 w, int32 h) = 0;
+	virtual void FillAlpha(uint8 alpha, const Rect &r) = 0;
 
 	//! Fill the region doing alpha blending
-	virtual void FillBlended(uint32 rgba, int32 sx, int32 sy, int32 w, int32 h) = 0;
+	virtual void FillBlended(uint32 rgba, const Rect &r) = 0;
 
 	//
 	// The rule for painting methods:
diff --git a/engines/ultima/ultima8/graphics/soft_render_surface.cpp b/engines/ultima/ultima8/graphics/soft_render_surface.cpp
index da1eae881bf..aadda655ed8 100644
--- a/engines/ultima/ultima8/graphics/soft_render_surface.cpp
+++ b/engines/ultima/ultima8/graphics/soft_render_surface.cpp
@@ -54,15 +54,13 @@ template<class uintX> SoftRenderSurface<uintX>::SoftRenderSurface(Graphics::Mana
 
 //#define CHECK_ALPHA_FILLS
 
-template<class uintX> void SoftRenderSurface<uintX>::FillAlpha(uint8 alpha, int32 sx, int32 sy, int32 w, int32 h) {
+template<class uintX> void SoftRenderSurface<uintX>::FillAlpha(uint8 alpha, const Rect &r) {
 	const Graphics::PixelFormat &format = _surface->format;
 	uint32 aMask = format.aMax() << format.aShift;
-	Rect rect(sx, sy, sx + w, sy + h);
+	Rect rect = r;
 	rect.clip(_clipWindow);
-	sx = rect.left;
-	sy = rect.top;
-	w = rect.width();
-	h = rect.height();
+	int32 w = rect.width();
+	int32 h = rect.height();
 
 	if (!w || !h || !aMask)
 		return;
@@ -73,7 +71,7 @@ template<class uintX> void SoftRenderSurface<uintX>::FillAlpha(uint8 alpha, int3
 		h = 1;
 	}
 
-	uint8 *pixel = _pixels + sy * _pitch + sx * format.bytesPerPixel;
+	uint8 *pixel = _pixels + rect.top * _pitch + rect.left * format.bytesPerPixel;
 	uint8 *end = pixel + h * _pitch;
 
 	uint8 *line_end = pixel + w * format.bytesPerPixel;
@@ -108,21 +106,19 @@ template<class uintX> void SoftRenderSurface<uintX>::FillAlpha(uint8 alpha, int3
 	}
 }
 
-template<class uintX> void SoftRenderSurface<uintX>::FillBlended(uint32 rgba, int32 sx, int32 sy, int32 w, int32 h) {
+template<class uintX> void SoftRenderSurface<uintX>::FillBlended(uint32 rgba, const Rect &r) {
 	int alpha = TEX32_A(rgba);
 	if (alpha == 0xFF) {
-		Fill32(rgba, sx, sy, w, h);
+		Fill32(rgba, r);
 		return;
 	} else if (!alpha) {
 		return;
 	}
 
-	Rect rect(sx, sy, sx + w, sy + h);
+	Rect rect = r;
 	rect.clip(_clipWindow);
-	sx = rect.left;
-	sy = rect.top;
-	w = rect.width();
-	h = rect.height();
+	int32 w = rect.width();
+	int32 h = rect.height();
 
 	if (!w || !h) return;
 
@@ -134,7 +130,7 @@ template<class uintX> void SoftRenderSurface<uintX>::FillBlended(uint32 rgba, in
 		h = 1;
 	}
 
-	uint8 *pixel = _pixels + sy * _pitch + sx * format.bytesPerPixel;
+	uint8 *pixel = _pixels + rect.top * _pitch + rect.left * format.bytesPerPixel;
 	uint8 *end = pixel + h * _pitch;
 
 	uint8 *line_end = pixel + w * format.bytesPerPixel;
diff --git a/engines/ultima/ultima8/graphics/soft_render_surface.h b/engines/ultima/ultima8/graphics/soft_render_surface.h
index 21856bed641..602eb0a8ee4 100644
--- a/engines/ultima/ultima8/graphics/soft_render_surface.h
+++ b/engines/ultima/ultima8/graphics/soft_render_surface.h
@@ -44,10 +44,10 @@ public:
 	//
 
 	//! Fill alpha channel
-	void FillAlpha(uint8 alpha, int32 sx, int32 sy, int32 w, int32 h) override;
+	void FillAlpha(uint8 alpha, const Rect &r) override;
 
 	// Fill the region doing alpha blending
-	void FillBlended(uint32 rgba, int32 sx, int32 sy, int32 w, int32 h) override;
+	void FillBlended(uint32 rgba, const Rect &r) override;
 
 	//
 	// The rule for painting methods:
diff --git a/engines/ultima/ultima8/gumps/desktop_gump.cpp b/engines/ultima/ultima8/gumps/desktop_gump.cpp
index aae3efe1513..09906ad9b55 100644
--- a/engines/ultima/ultima8/gumps/desktop_gump.cpp
+++ b/engines/ultima/ultima8/gumps/desktop_gump.cpp
@@ -60,7 +60,7 @@ void DesktopGump::PaintChildren(RenderSurface *surf, int32 lerp_factor, bool sca
 			// Background is partially transparent
 			if (_fadedModal && dynamic_cast<ModalGump *>(g) &&
 			        !dynamic_cast<TargetGump *>(g) && !g->IsHidden())
-				surf->FillBlended(0x7F000000, 0, 0, _dims.width(), _dims.height());
+				surf->FillBlended(0x7F000000, _dims);
 
 			g->Paint(surf, lerp_factor, scaled);
 		}
diff --git a/engines/ultima/ultima8/gumps/message_box_gump.cpp b/engines/ultima/ultima8/gumps/message_box_gump.cpp
index 95600a99137..dde173cbc9e 100644
--- a/engines/ultima/ultima8/gumps/message_box_gump.cpp
+++ b/engines/ultima/ultima8/gumps/message_box_gump.cpp
@@ -114,7 +114,7 @@ void MessageBoxGump::Close(bool no_del) {
 
 void MessageBoxGump::PaintThis(RenderSurface *surf, int32 lerp_factor, bool /*scaled*/) {
 	// Background is partially transparent
-	surf->FillBlended(0x80000000, 0, 0, _dims.width(), _dims.height());
+	surf->FillBlended(0x80000000, _dims);
 
 	uint32 line_colour = 0xFFFFFFFF;
 	if (!IsFocus()) line_colour = 0xFF7F7F7F;
diff --git a/engines/ultima/ultima8/gumps/minimap_gump.cpp b/engines/ultima/ultima8/gumps/minimap_gump.cpp
index 44b18cc3ab4..734fb1809cd 100644
--- a/engines/ultima/ultima8/gumps/minimap_gump.cpp
+++ b/engines/ultima/ultima8/gumps/minimap_gump.cpp
@@ -116,11 +116,11 @@ void MiniMapGump::PaintThis(RenderSurface *surf, int32 lerp_factor, bool scaled)
 	surf->DrawLine32(color, _dims.right -1, _dims.top, _dims.right - 1, _dims.bottom - 1);
 
 	// Dimensions minus border
-	Common::Rect dims(_dims.left, _dims.top, _dims.right, _dims.bottom);
+	Rect dims = _dims;
 	dims.grow(-1);
 
 	// Fill the background
-	surf->Fill32(0xFF000000, dims.left, dims.top, dims.width(), dims.height());
+	surf->Fill32(0xFF000000, dims);
 
 	// Center on avatar
 	int sx = _ax - dims.width() / 2;
diff --git a/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp b/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
index c4b8e8636c4..25593279e4a 100644
--- a/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
+++ b/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
@@ -87,7 +87,7 @@ void ShapeViewerGump::PaintThis(RenderSurface *surf, int32 lerp_factor, bool /*s
 		return;
 	}
 
-	surf->Fill32(_background, 0, 0, _dims.width(), _dims.height());
+	surf->Fill32(_background, _dims);
 
 	int32 posx = (_dims.width() - _shapeW) / 2 + _shapeX;
 	int32 posy = (_dims.height() - _shapeH) / 2 + _shapeY - 25;
diff --git a/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp b/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
index 22c2f970c3c..b337da34105 100644
--- a/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
+++ b/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
@@ -156,7 +156,7 @@ void EditWidget::PaintThis(RenderSurface *surf, int32 lerp_factor, bool scaled)
 	renderText();
 
 	if (scaled && _gameFont && getFont()->isHighRes()) {
-		surf->FillAlpha(0xFF, _dims.left, _dims.top, _dims.width(), _dims.height());
+		surf->FillAlpha(0xFF, _dims);
 		return;
 	}
 
@@ -176,7 +176,7 @@ void EditWidget::PaintComposited(RenderSurface *surf, int32 lerp_factor, int32 s
 
 	Rect rect(_dims);
 	GumpRectToScreenSpace(rect, ROUND_OUTSIDE);
-	surf->FillAlpha(0x00, rect.left, rect.top, rect.width(), rect.height());
+	surf->FillAlpha(0x00, rect);
 }
 
 // don't handle any mouse motion events, so let parent handle them for us.
diff --git a/engines/ultima/ultima8/gumps/widgets/text_widget.cpp b/engines/ultima/ultima8/gumps/widgets/text_widget.cpp
index d65919c95e6..f0beddded5a 100644
--- a/engines/ultima/ultima8/gumps/widgets/text_widget.cpp
+++ b/engines/ultima/ultima8/gumps/widgets/text_widget.cpp
@@ -164,7 +164,7 @@ void TextWidget::PaintThis(RenderSurface *surf, int32 lerp_factor, bool scaled)
 	renderText();
 
 	if (scaled && _gameFont && getFont()->isHighRes()) {
-		surf->FillAlpha(0xFF, _dims.left, _dims.top, _dims.width(), _dims.height());
+		surf->FillAlpha(0xFF, _dims);
 		return;
 	}
 
@@ -196,7 +196,7 @@ void TextWidget::PaintComposited(RenderSurface *surf, int32 lerp_factor, int32 s
 
 	Rect rect(_dims);
 	GumpRectToScreenSpace(rect, ROUND_OUTSIDE);
-	surf->FillAlpha(0x00, rect.left, rect.top, rect.width(), rect.height());
+	surf->FillAlpha(0x00, rect);
 }
 
 // don't handle any mouse motion events, so let parent handle them for us.
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 152bec22cf7..c2de86104a5 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -623,11 +623,11 @@ void Ultima8Engine::paint() {
 	Rect r;
 	_screen->GetSurfaceDims(r);
 	if (_highRes)
-		_screen->Fill32(0, 0, 0, r.width(), r.height());
+		_screen->Fill32(0, r);
 
 #ifdef DEBUG
 	// Fill the screen with an annoying color so we can see fast area bugs
-	_screen->Fill32(0xFF10FF10, 0, 0, r.width(), r.height());
+	_screen->Fill32(0xFF10FF10, r);
 #endif
 
 	_desktopGump->Paint(_screen, _lerpFactor, false);




More information about the Scummvm-git-logs mailing list