On Mon, 08 Apr 2013 10:48:53 +0100 Tom Hacohen <[email protected]> said:
in the rest of the code fs->current_size is the current active size for the font instance - since multiple instances share the same source outline. by setting it to 0 we are forcing an evaluation of font size by other font instances sharing the same source. the code does this in several placesto basically "flush the current size and re-eval". somwhere the font code gets this font size tracking wrong, so this seems a good enough solution to that problem. > Could you please provide an example test case that shows how it breaks? > I really don't understand what's going on there. > > I understand your issue, and how it "got fixed", but resetting some of > the fields of a still referenced structure looks wrong to me. > > -- > Tom. > > On 06/04/13 02:05, Jiyoun Park wrote: > > Hello~ Tom. > > > > I modified this because text rendering issue. > > there was an issue text disapeared when we change font style. > > it is becuase evas discard FT_Size object in font int free, but font > > source still get current size, > > so it din't called FT_Activate_Size later. (ex: > > evas_common_font_ascent_get, evas_common_font_descent_get ...) > > > > as I know, font source current size can be changed when we change active > > size so I changed font source current size to 0 in font source free because > > that function always called after destroying font source size object. > > > > _evas_common_font_int_free > > - FT_Done_Size(fi->ft.size); > > - evas_common_font_source_free > > -> change font source current size > > > > > > ..... > > evas_common_font_ascent_get > > - check src current size > > - FT_Activate_Size(fi->ft.size); > > > > > > but if there is more good place to change src current size to 0, plz > > recomend it for me~~ > > thank you~ > > > > 2013/4/5 Tom Hacohen <[email protected]>: > >> Hey Jiyoun, > >> > >> This looks wrong, specifically resetting the current_size before the > >> return instead of after. What made you change that? > >> > >> Cheers, > >> Tom. > >> > >> On 05/04/13 05:07, Jiyoun Park - Enlightenment Git wrote: > >>> jypark pushed a commit to branch master. > >>> > >>> commit 810f1ca9723de19c0ea6d9baa879b91c573a8ba6 > >>> Author: Jiyoun Park <[email protected]> > >>> Date: Fri Apr 5 13:05:25 2013 +0900 > >>> > >>> Evas font: fix font source have wrong current size. > >>> --- > >>> ChangeLog | 4 ++++ > >>> NEWS | 2 ++ > >>> src/lib/evas/common/evas_font_load.c | 3 +++ > >>> 3 files changed, 9 insertions(+) > >>> > >>> diff --git a/ChangeLog b/ChangeLog > >>> index 86a88dd..0191b26 100644 > >>> --- a/ChangeLog > >>> +++ b/ChangeLog > >>> @@ -1,3 +1,7 @@ > >>> +2013-04-04 Jiyoun Park > >>> + > >>> + * Evas font: fix font source have wrong current size. > >>> + > >>> 2013-04-04 Tom Hacohen > >>> > >>> * Evas font: If OS/2 table is available and the font is > >>> demi-bold, diff --git a/NEWS b/NEWS > >>> index a1cda47..8b3fd69 100644 > >>> --- a/NEWS > >>> +++ b/NEWS > >>> @@ -222,3 +222,5 @@ Fixes: > >>> * Fix evas buffer engine allocation with non alpha output > >>> * Evas font: click on left/right half of char does matter now. > >>> * Evas font: If OS/2 table is available and the font is demi-bold, > >>> don't do runtime emboldment. > >>> + * Evas font: fix font source have wrong current size. > >>> + > >>> diff --git a/src/lib/evas/common/evas_font_load.c > >>> b/src/lib/evas/common/evas_font_load.c index 9bdb10f..97dfb17 100644 > >>> --- a/src/lib/evas/common/evas_font_load.c > >>> +++ b/src/lib/evas/common/evas_font_load.c > >>> @@ -75,7 +75,9 @@ _evas_common_font_source_free(RGBA_Font_Source *fs) > >>> static void > >>> _evas_common_font_int_free(RGBA_Font_Int *fi) > >>> { > >>> + FTLOCK(); > >>> FT_Done_Size(fi->ft.size); > >>> + FTUNLOCK(); > >>> > >>> evas_common_font_int_modify_cache_by(fi, -1); > >>> _evas_common_font_int_clear(fi); > >>> @@ -265,6 +267,7 @@ EAPI void > >>> evas_common_font_source_free(RGBA_Font_Source *fs) > >>> { > >>> fs->references--; > >>> + fs->current_size = 0; > >>> if (fs->references > 0) return; > >>> eina_hash_del(fonts_src, fs->name, fs); > >>> } > >>> > >> > >> > >> ------------------------------------------------------------------------------ > >> Minimize network downtime and maximize team effectiveness. > >> Reduce network management and security costs.Learn how to hire > >> the most talented Cisco Certified professionals. Visit the > >> Employer Resources Portal > >> http://www.cisco.com/web/learning/employer_resources/index.html > >> _______________________________________________ > >> enlightenment-devel mailing list > >> [email protected] > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > ------------------------------------------------------------------------------ > > Minimize network downtime and maximize team effectiveness. > > Reduce network management and security costs.Learn how to hire > > the most talented Cisco Certified professionals. Visit the > > Employer Resources Portal > > http://www.cisco.com/web/learning/employer_resources/index.html > > _______________________________________________ > > enlightenment-devel mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > ------------------------------------------------------------------------------ > Minimize network downtime and maximize team effectiveness. > Reduce network management and security costs.Learn how to hire > the most talented Cisco Certified professionals. Visit the > Employer Resources Portal > http://www.cisco.com/web/learning/employer_resources/index.html > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [email protected] ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
