[Scummvm-cvs-logs] scummvm master -> 2242917dda89cfdf2dd9f15748b5bdb1b4bbe1c3

wjp wjp at usecode.org
Sun Sep 29 22:31:05 CEST 2013


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:
2242917dda WINTERMUTE: Do antialiased TT font rendering


Commit: 2242917dda89cfdf2dd9f15748b5bdb1b4bbe1c3
    https://github.com/scummvm/scummvm/commit/2242917dda89cfdf2dd9f15748b5bdb1b4bbe1c3
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2013-09-29T13:27:56-07:00

Commit Message:
WINTERMUTE: Do antialiased TT font rendering

Changed paths:
    engines/wintermute/base/font/base_font_truetype.cpp



diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp
index b6f372f..cc0b9d3 100644
--- a/engines/wintermute/base/font/base_font_truetype.cpp
+++ b/engines/wintermute/base/font/base_font_truetype.cpp
@@ -286,6 +286,26 @@ BaseSurface *BaseFontTT::renderTextToTexture(const WideString &text, int width,
 
 	BaseSurface *retSurface = _gameRef->_renderer->createSurface();
 	Graphics::Surface *convertedSurface = surface->convertTo(_gameRef->_renderer->getPixelFormat());
+
+	if (_deletableFont) {
+		// Reconstruct the alpha channel of the font.
+
+		// Since we painted it with color 0xFFFFFFFF onto a black background,
+		// the alpha channel is gone, but the colour value of each pixel corresponds
+		// to its original alpha value.
+
+		Graphics::PixelFormat format = _gameRef->_renderer->getPixelFormat();
+		uint32 *pixels = (uint32 *)convertedSurface->getPixels();
+
+		// This is a Surface we created ourselves, so no emtpy space between rows.
+		for (int i = 0; i < surface->w * surface->h; ++i) {
+			uint8 a, r, g, b;
+			format.colorToRGB(*pixels, r, g, b);
+			a = r;
+			*pixels++ = format.ARGBToColor(a, r, g, b); 
+		}
+	}
+
 	retSurface->putSurface(*convertedSurface, true);
 	convertedSurface->free();
 	surface->free();






More information about the Scummvm-git-logs mailing list