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

Reply via email to