Commit Graph

152 Commits

Author SHA1 Message Date
Tom Hacohen 7a281f0745 Evas font: Disabled word/metric caching due to bugs.
SVN revision: 62547
2011-08-18 07:21:44 +00:00
Tom Hacohen 5f16c0ba14 Evas font: Fixed a compiler warning.
SVN revision: 62537
2011-08-17 15:42:07 +00:00
Tom Hacohen 6858025fce Evas font: Workaround an issue with metric cache.
SVN revision: 62536
2011-08-17 15:42:01 +00:00
Christopher Michael ffc97c3754 Evas: Fix more shadow declarations of 'index' variable.
SVN revision: 59714
2011-05-27 01:44:10 +00:00
Tom Hacohen f3ef64a31e Evas font-engine: Replace deprecated freetype constants.
SVN revision: 59507
2011-05-18 13:47:45 +00:00
Tom Hacohen cd674cb1c6 Evas font-engine: Moved non-draw related from font_draw.c to font_main.c
SVN revision: 59180
2011-05-04 08:27:19 +00:00
Tom Hacohen b186585231 Evas font-engine: Use Eina_Unicode instead of int for unicode codepoints
SVN revision: 59179
2011-05-04 08:27:13 +00:00
Tom Hacohen 2e71b5ab90 Evas font-engine: Fix glyphs not being drawn.
Thanks to Brian Wang for the report.

This happened because we were querying for the index of the wrong fi,
this became especially visible after we started caching fi.

SVN revision: 59152
2011-05-03 14:36:47 +00:00
Tom Hacohen e93f10b8aa Evas font-engine: Remove passing of strings to font_draw.
This is not needed anymore because we have working string objects.

SVN revision: 59133
2011-05-02 15:33:46 +00:00
Tom Hacohen dad49dd1f2 Evas font-draw: Fix word-cache to not need text.
SVN revision: 59132
2011-05-02 15:33:38 +00:00
Tom Hacohen 61e340ec6c Evas textblock: Now that we cache fi, we don't need shaped_text anymore.
SVN revision: 59131
2011-05-02 15:33:35 +00:00
Tom Hacohen 9d23367627 Evas font-engine: Cache fi for all cases (even without harfbuzz).
This is now possible, because we have a script querying function.

SVN revision: 59109
2011-05-02 09:28:00 +00:00
Tom Hacohen 5570891eb3 Evas font-engine: Fixed rendering of empty text.
SVN revision: 59006
2011-04-28 15:02:11 +00:00
Tom Hacohen a3e8da3507 Evas font-engine: Fixes last commit to not seg when not using OT.
SVN revision: 58936
2011-04-26 14:20:45 +00:00
Tom Hacohen 476ac636d5 Revert "BAD TASN!". Yeah, I'm evil.
Following commit includes a fix.

This reverts commit 58933.

SVN revision: 58935
2011-04-26 14:20:41 +00:00
Carsten Haitzler 2d2b2d686e BAD TASN!
ROLL BACK TODAYS CHANGES TO EVAS....

SEGV SEGV EVERYWHERE!

*SPANK*



SVN revision: 58933
2011-04-26 14:05:01 +00:00
Tom Hacohen f0e18f58ff Evas font-engine: Cache fi when using Harfbuzz.
Soon I will also do it for all cases, but it's not possible at the
moment because we depend on harfbuzz for querying unicode properties.

SVN revision: 58924
2011-04-26 09:14:02 +00:00
Tom Hacohen 902d94afb9 Evas textblock: Added a temp fix for repch until implemented nicely.
This fix is just until we finally split to scripts and cache fi all
the time, i.e in all the possible paths (regular, fribidi and harfbuzz).

SVN revision: 58806
2011-04-21 15:34:44 +00:00
Tom Hacohen 6609b1d7ba Evas font: Removed LOGICAL_WALK and updated last_up_to_pos accondingly.
SVN revision: 58758
2011-04-20 14:20:57 +00:00
Tom Hacohen 2f86580227 Evas font-engine: Fix drawing of replacement char when not using Harfbuzz.
SVN revision: 58755
2011-04-20 14:20:48 +00:00
Tom Hacohen fd4203a682 Evas font-engine: fix a segfault with empty strings.
Thanks to Nicolas Aguirre (captainigloo) for the catch.

SVN revision: 58734
2011-04-19 20:27:34 +00:00
Tom Hacohen 1dac813ace Evas font-engine: Fix the fallback fribidi shaper.
Just keep the shaped string in the string object if fribidi is used
without harfbuzz.

SVN revision: 58620
2011-04-13 08:37:01 +00:00
Tom Hacohen 680c4354ba Evas font-engine: Use len in font_draw instead of \0
SVN revision: 58617
2011-04-13 08:36:51 +00:00
Tom Hacohen ad3b167e88 Evas font-engine: Added support for runtime-italic/bold.
Now when setting :style=Oblique/Italic/Cursiva/Bold and etc and there's
no matching font found in the system, adjustments will be done on
runtime to support that feature.

Patch by Myoungwoon Roy Kim (roy_kim).

SVN revision: 58584
2011-04-12 09:05:47 +00:00
Tom Hacohen 71372d9c65 Evas font-engine: Removed "use-kerning" from draw code.
It hasn't been used for a while. Everything is already calculated in
content_create.

SVN revision: 58215
2011-03-30 15:55:10 +00:00
Tom Hacohen 6c29ea29fb Evas font-engine: Fix font size updating.
This commit fixes two types of misupdate of the font size.
1. Not updating all the fonts when not using Harfbuzz.
2. In rare cases update the wrong font when using Harfbuzz.

SVN revision: 58114
2011-03-27 12:22:13 +00:00
Tom Hacohen 6b2d04c4e0 Evas font: Added a comment to a confusing magic number.
SVN revision: 57913
2011-03-20 08:51:41 +00:00
Tom Hacohen 0f77f14ccc Evas font-engine: Fixed walking to use ptrs instead of indexes.
I.e walk using a ptr instead of arr[i] all the time. This should make
things faster. Also as part of the change, fixed char_index to be
an offset inside the string object, and not a general offset which was
bad.

SVN revision: 57241
2011-02-22 13:00:02 +00:00
Tom Hacohen 211400d1f6 Evas font: Fixed word_prerender now that we cache everything. Do we really need it now?.
SVN revision: 56630
2011-02-01 12:18:01 +00:00
Tom Hacohen 94b5a536f0 Evas font/textblock/text: Started using string objects instead of
strings in most of the font engine (everywhere except draw).
Haven't removed the paramteres yet, but did mark them as UNUSED.
Removing them will be part of a future change.
Removed run-time OT toggling support, OT is now fast, no need for that.
Renamed all of the intl_props->text_props (because it really changed purpose now)
Fixed spliting/merging of text_props to be fast and good, not hacky and
complex like before.
Note to reviewers: Most of the changes are indentation related, sorry
for the mess, but I had to do it all in one commit, splitting was not
trivial (at least not in retrospect). The important parts are
evas_font_default_walk.x and text_utils.c. query and draw were just
adjusted a bit and the rest were only adjusted to conform to renaming or
were renaming on their own.

SVN revision: 56629
2011-02-01 12:17:52 +00:00
Tom Hacohen cdb54ed92d Revert "Snapshot." - didn't mean to commit this :(
This reverts commit 521198281e4ac616fee48d27aae9e6983d5950c3.

SVN revision: 56556
2011-01-30 13:58:06 +00:00
Tom Hacohen ead10d70f7 Revert "Snap 2" - didn't mean to commit it. :(
This reverts commit 66c113787b440a282b6cc2cab6d35f5c700627f4.

SVN revision: 56555
2011-01-30 13:57:55 +00:00
Tom Hacohen 13dce619f1 Snap 2
SVN revision: 56553
2011-01-30 13:55:12 +00:00
Tom Hacohen d6feccdebb Snapshot.
SVN revision: 56552
2011-01-30 13:55:04 +00:00
Tom Hacohen b7cd0dbabb Evas textblock: Fixed word prerender, it now compiles and even mostly works, there are still some glitches (haven't benchmarked it though).
SVN revision: 56517
2011-01-30 10:43:09 +00:00
Tom Hacohen e809000965 Evas font-engine: Exposed PEN_Y in the walker functions and started using it instead of the hackish _pen_y.
SVN revision: 56516
2011-01-30 10:43:03 +00:00
Tom Hacohen f7dfb4d8fb Evas font-engine: pen_x is now calculated with fractional pixels (inside each item, not the case with cross-items which still use integral pixels).
SVN revision: 56509
2011-01-30 10:42:13 +00:00
Tom Hacohen 3b88692aa7 Evas font-engine: Fixed invisible character handling in the OT walker. Renamed internal var gl in the default walker to _gl, a less common var name.
SVN revision: 56458
2011-01-30 10:36:59 +00:00
Tom Hacohen ff18fa8399 Evas: Multiple changes that all relate to the Harfbuzz integration:
1. Started feeding Evas_Text_Props to the font engine instead of Evas_BiDi_Props because no we have more general text properties as well - i.e, OpenType stuff.
2. Full Harfbuzz integration which gets compiled in by default (if harfbuzz is present) but only works if the environment variable EVAS_USE_OT is set to 1 (because OT is way slower than regular text rendering).
3. Cleaned the font querying/drawing functions.
4. Added font_shaped function to all of the engines, which by default calls teh harfbuzz stuff (default on linux that is).
5. Moved some source files around a bit to make more sense.

SVN revision: 56455
2011-01-30 10:36:39 +00:00
Tom Hacohen e7b2a13aa1 Evas text: Wrote item layouting and splitting of items to script runs, this is essential for correct shaping/bidi handling.
SVN revision: 56450
2011-01-30 10:36:02 +00:00
Tom Hacohen 7e376019b7 Evas font-engine: Moved bidi utils (and added script utils) to a subdir language that collects all the language specific adjustments to font handling.
SVN revision: 56446
2011-01-30 10:35:37 +00:00
Tom Hacohen 01850cf816 Evas font-engine: Fixed kerning handling and fixed a bug in query_char_coords and in query_pen_coords taking the wrong string into account.
SVN revision: 56444
2011-01-30 10:35:24 +00:00
Tom Hacohen 99a7eff130 Evas bidi + font-engine + everything affected: Changed Evas_BiDi_Props to only include the direction of the text and reverse when needed. We don't need to do full processing at this stage, because we should have split to bidi runs before.
SVN revision: 56443
2011-01-30 10:35:17 +00:00
Tom Hacohen ca2a3eb5a6 Evas font-engine: remove an usued variable in the font drawing functions.
SVN revision: 56438
2011-01-30 10:34:42 +00:00
Tom Hacohen 509e7bed98 Evas font-engine: handle invisible chars in font query.
SVN revision: 56429
2011-01-30 10:33:43 +00:00
Tom Hacohen 34d5f9141d Evas font engine: Merge text walking to a couple of macros, this is more consistent, and the code is smaller and easier to handle.
SVN revision: 56426
2011-01-30 10:33:24 +00:00
Tom Hacohen d7c2187c1f Evas font engine: Added skipping of invisible chars to the font drawing function - this means we can't draw them until we add a specil "draw inivisble" mode.
SVN revision: 56424
2011-01-30 10:33:14 +00:00
Tom Hacohen a92826ae5e Evas textblock: Fixed mixed format and text item reordering.
SVN revision: 56404
2011-01-30 10:31:08 +00:00
Mike Blumenkrantz 4f5e4e0765 sighhh add more calloc checks
SVN revision: 56100
2011-01-14 06:35:41 +00:00
Mike Blumenkrantz 39eb62a758 add calloc check to avoid null deref
SVN revision: 56098
2011-01-14 06:28:40 +00:00