Compare commits

...
7 Commits
4 changed files with 26 additions and 9 deletions
+7 -2
View File
@@ -1,8 +1,8 @@
# Release Notes
## Version 3.2.1
## Version 3.2.2
The MiniGUI development team announces the availability of MiniGUI 3.2.1.
The MiniGUI development team announces the availability of MiniGUI 3.2.2.
All users of MiniGUI are recommended strongly to use this version.
Please report any bugs and incompatibilities in
@@ -43,6 +43,11 @@ Please report any bugs and incompatibilities in
* BUGFIXING:
1. handle `PNG_COLOR_TYPE_GRAY_ALPHA` color type of PNG files.
1. Fix a bug to free a null pointer (ReleaseDC).
1. No need to make the pitch of FT2 monobitmap is single-byte aligned.
This bug may generate dirty dots for monobitmap glyph from TTF.
1. Skip null pixels for SUBPIXEL glyphs. This bug will always show background
pixels of one SUBPIXEL glyph.
1. Fix the bug of wrong bounding box handling for SUBPIXEL rendering of glyph.
* TUNNING:
1. Tune GLYPHINFO structure and GetGlyphInfo to return BIDI glyph type.
+2 -2
View File
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.60)
AC_INIT(libminigui, 3.2.0)
AC_INIT(libminigui, 3.2.2)
AC_CONFIG_SRCDIR(src/main/main.c)
dnl Set various version strings - taken gratefully from the SDL sources
@@ -16,7 +16,7 @@ dnl Set various version strings - taken gratefully from the SDL sources
#
MINIGUI_MAJOR_VERSION=3
MINIGUI_MINOR_VERSION=2
MINIGUI_MICRO_VERSION=1
MINIGUI_MICRO_VERSION=2
MINIGUI_INTERFACE_AGE=0
MINIGUI_BINARY_AGE=1
MINIGUI_VERSION=$MINIGUI_MAJOR_VERSION.$MINIGUI_MINOR_VERSION.$MINIGUI_MICRO_VERSION
+10 -5
View File
@@ -397,11 +397,11 @@ get_glyph_bbox (LOGFONT* logfont, DEVFONT* devfont,
FT_Glyph_Get_CBox (ft_inst_info->glyph, ft_glyph_bbox_pixels, &bbox);
#if 1
//Note: using subpixel filter, the bbox_w is 2 pixel wider than normal.
if (IS_SUBPIXEL(logfont) && (ft_inst_info->ft_lcdfilter != FT_LCD_FILTER_NONE))
bbox.xMax += 2;
#endif
if (IS_SUBPIXEL(logfont) && (ft_inst_info->ft_lcdfilter != FT_LCD_FILTER_NONE)) {
bbox.xMin -= 1;
bbox.xMax += 1;
}
/* We just save the BBOX :). */
memcpy (&ft_inst_info->bbox, &bbox, sizeof(FT_BBox));
@@ -451,6 +451,7 @@ get_glyph_bbox (LOGFONT* logfont, DEVFONT* devfont,
return (int)(bbox.xMax - bbox.xMin);
}
#if 0 // VincentWei: bad implementation
/* press double-byte align to byte align.*/
static void
press_bitmap (void* buffer, int width, int rows, int pitch)
@@ -472,7 +473,7 @@ press_bitmap (void* buffer, int width, int rows, int pitch)
dest_pos += dest_pitch;
}
}
#endif
/* call this function to get the bitmap/pixmap of the char */
static const void*
@@ -547,11 +548,15 @@ char_bitmap_pixmap (LOGFONT* logfont, DEVFONT* devfont,
if (pitch)
*pitch = source->pitch;
#if 0 // VincentWei: bad implementation
if (!is_grey) {
press_bitmap(source->buffer,
source->width, source->rows, source->pitch);
*pitch = (source->width + 7) >> 3;
}
#else
*pitch = source->pitch;
#endif
#ifdef _MGFONT_TTF_CACHE
if (ft_inst_info->cache && (ft_inst_info->rotation == 0)) {
+7
View File
@@ -2927,6 +2927,13 @@ static void _dc_ft2subpixel_scan_line(PDC pdc, int xpos, int ypos,
bits += 3;
continue;
}
// VincentWei: skip null pixel
if (bits[0] == 0 && bits[1] == 0 && bits[2] == 0) {
bits += 3;
continue;
}
_glyph_move_to_pixel (pdc, x+xpos, ypos);
pixel = _mem_get_pixel(pdc->cur_dst, GAL_BytesPerPixel (pdc->surface));