Changeset 406
- Timestamp:
- 07/21/08 15:25:56 (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
r405 r406 1 2008-07-21 Olivier DOLE <odole@pleyo.com> 2 3 Reviewed by Mario Bensi. 4 Fix huge leak in freetype font implementation. 5 6 * WKAL/Concretizations/Fonts/Freetype/BCFontFreetype.cpp: 7 (WKAL::Font::drawGlyphs): 8 1 9 2008-07-21 Mario Bensi <mbensi@pleyo.com> 2 10 trunk/BAL/WKAL/Concretizations/Fonts/Freetype/BCFontFreetype.cpp
r403 r406 197 197 if (ftBitmapGlyph[0]->bitmap.pixel_mode == FT_PIXEL_MODE_MONO) { 198 198 unsigned pixelColor = (penColor.alpha() << 24) | (penColor.red() << 16) | (penColor.green() << 8) | penColor.blue(); 199 unsigned char* bitmapAddr = ftBitmapGlyph[i]->bitmap.buffer; 199 200 for (int j = 0; j < ftBitmapGlyph[i]->bitmap.rows; j++) { 200 201 unsigned char *bufferAddr = ftBitmapGlyph[i]->bitmap.buffer; … … 205 206 (*glyphRGBABuffer)[(yOffset + j) * width + glyphBoxX[i].x() + k] = 0; 206 207 if (k > 0 && (k % 8) == 0) 207 * ftBitmapGlyph[i]->bitmap.buffer++;208 *bitmapAddr++; 208 209 } 209 ftBitmapGlyph[i]->bitmap.buffer = bufferAddr + ftBitmapGlyph[i]->bitmap.pitch;210 bitmapAddr = bufferAddr + ftBitmapGlyph[i]->bitmap.pitch; 210 211 } 211 212 } else { 213 unsigned char* bitmapAddr = ftBitmapGlyph[i]->bitmap.buffer; 212 214 for (int j = 0; j < ftBitmapGlyph[i]->bitmap.rows; j++) { 213 215 for (int k = 0; k < ftBitmapGlyph[i]->bitmap.width; k++) { 214 (*glyphRGBABuffer)[(yOffset + j) * width + glyphBoxX[i].x() + k] = ((penColor.alpha()/255 * * ftBitmapGlyph[i]->bitmap.buffer++) << 24) | (penColor.red() << 16) | (penColor.green() << 8) | penColor.blue();216 (*glyphRGBABuffer)[(yOffset + j) * width + glyphBoxX[i].x() + k] = ((penColor.alpha()/255 * *bitmapAddr++) << 24) | (penColor.red() << 16) | (penColor.green() << 8) | penColor.blue(); 215 217 } 216 218 } 217 219 } 220 FT_Done_Glyph((FT_Glyph) ftBitmapGlyph[i]); 218 221 } 219 222 SDL_Surface* img;
