Changeset 407
- Timestamp:
- 07/21/08 17:40:06 (2 years ago)
- Files:
-
- trunk/BAL/ChangeLogOWB (modified) (1 diff)
- trunk/BAL/WKAL/Concretizations/Fonts/Freetype/BCFontFreetype.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/BAL/ChangeLogOWB
r406 r407 1 2008-07-21 Olivier DOLE <odole@pleyo.com> 2 3 Reviewed by Mario Bensi. 4 fix a regression in freetype with FT_PIXEL_MODE_MONO. 5 6 * WKAL/Concretizations/Fonts/Freetype/BCFontFreetype.cpp: 7 (WKAL::Font::drawGlyphs): 8 1 9 2008-07-21 Olivier DOLE <odole@pleyo.com> 2 10 trunk/BAL/WKAL/Concretizations/Fonts/Freetype/BCFontFreetype.cpp
r406 r407 192 192 Vector<unsigned> *glyphRGBABuffer = new Vector<unsigned>(width * height); 193 193 glyphRGBABuffer->fill(0); 194 bool isMono = (ftBitmapGlyph[0]->bitmap.pixel_mode == FT_PIXEL_MODE_MONO); 194 195 for (int i = 0; i < numGlyphs; i++) { 195 196 int yOffset = height - glyphBoxY[i].y() + yMin; 196 197 if (ftBitmapGlyph[0]->bitmap.pixel_mode == FT_PIXEL_MODE_MONO) { 197 unsigned char* bitmapAddr = ftBitmapGlyph[i]->bitmap.buffer; 198 199 if (isMono) { 198 200 unsigned pixelColor = (penColor.alpha() << 24) | (penColor.red() << 16) | (penColor.green() << 8) | penColor.blue(); 199 unsigned char* bitmapAddr = ftBitmapGlyph[i]->bitmap.buffer;200 201 for (int j = 0; j < ftBitmapGlyph[i]->bitmap.rows; j++) { 201 unsigned char *bufferAddr = ftBitmapGlyph[i]->bitmap.buffer;202 unsigned char *bufferAddr = bitmapAddr; 202 203 for (int k = 0; k < ftBitmapGlyph[i]->bitmap.width; k++) { 203 if ((* ftBitmapGlyph[i]->bitmap.buffer) & (1 << (7 - k % 8)))204 if ((*bitmapAddr) & (1 << (7 - k % 8))) 204 205 (*glyphRGBABuffer)[(yOffset + j) * width + glyphBoxX[i].x() + k] = pixelColor; 205 206 else … … 211 212 } 212 213 } else { 213 unsigned char* bitmapAddr = ftBitmapGlyph[i]->bitmap.buffer;214 214 for (int j = 0; j < ftBitmapGlyph[i]->bitmap.rows; j++) { 215 215 for (int k = 0; k < ftBitmapGlyph[i]->bitmap.width; k++) {
