Commit Graph

813 Commits

Author SHA1 Message Date
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 198da9e2af Evas font: Fix indentation.
SVN revision: 56544
2011-01-30 10:45:56 +00:00
Tom Hacohen a7e2bbabae Evas font: Fixed memory leak when reloading an already-loaded face.
SVN revision: 56538
2011-01-30 10:45:23 +00:00
Tom Hacohen 8119efadda Evas font-engine: Fixed query size when not using OT to take the last char's width on RTL mode, instead of the first.
SVN revision: 56529
2011-01-30 10:44:31 +00:00
Tom Hacohen 379eb8f660 Evas font-engine: Fixed ot face loading when loading fonts from memory.
SVN revision: 56523
2011-01-30 10:43:50 +00:00
Tom Hacohen 7924eef840 Evas bidi: Fixed visibility issue with evas_bidi_shape_string which is supposed to be visible to extrenal moduels as well.
SVN revision: 56522
2011-01-30 10:43:42 +00:00
Tom Hacohen 34c6617e5a Evas font-engine: add a function to just ref text props.
SVN revision: 56521
2011-01-30 10:43:34 +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 ba6f9c99e7 Evas bidi: remove the bidi reverse string, it's old and not needed.
SVN revision: 56511
2011-01-30 10:42:28 +00:00
Tom Hacohen f1749eaaa4 Evas font-engine: simplify 26_6 round to int.
SVN revision: 56510
2011-01-30 10:42:20 +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 99c8c7bb2f Evas font-engine: Round the fractional coords (instead of floor).
SVN revision: 56508
2011-01-30 10:42:07 +00:00
Tom Hacohen f63e8256ff Evas textblock: Fixed async rendering support.
SVN revision: 56506
2011-01-30 10:41:57 +00:00
Tom Hacohen b46c83aeac Evas textblock: split the visual layouting to two stages:
1. Split to logical layout units.
2. Order the logical layout units in a visual way.
This lets us cache the results of the first part (unless the text changes), which makes everything a lot faster in the OT case, and quite faster in the regular case.
There are still some issues unresolved in this commit that will be resolved in future commits:
1. No support for async rendering - yes, I forgot I'm supposed to support that.
2. native_size should probably be calculated in another way because the current one is slow and if we already have the logical items it should be a piece of cake...

SVN revision: 56504
2011-01-30 10:41:42 +00:00
Tom Hacohen a2fc127e8c Evas font-engine: Fixed a puny memory leak.
SVN revision: 56503
2011-01-30 10:41:35 +00:00
Tom Hacohen d632d526c0 Split logical layouting and visual layouting completely. There are still some bugs, but this includes the major change.
SVN revision: 56492
2011-01-30 10:40:30 +00:00
Tom Hacohen 48c9b3781e Evas font-engine: A couple of major fixes:
1. Worked around a fribid behavior that broke some stuff - we should handle it better in the future, this workaround is only temporary.
2. Fixed a bug with textblock's last_up_to_pos.
3. Fixed a bug with ot_shaping not reloading the font and activating the size in the wrong place.

SVN revision: 56491
2011-01-30 10:40:21 +00:00
Tom Hacohen 58af440aab Evas font: skip over common script items when getting the font, we should get the font of the actual script items.
SVN revision: 56484
2011-01-30 10:39:42 +00:00
Tom Hacohen f7a4cf52a8 Evas font: fixed calling of bidi_end_of_run_get and exposed a new function to get the script of a single char.
SVN revision: 56483
2011-01-30 10:39:35 +00:00
Tom Hacohen 7ce45d8bd4 Revert "Evas font-engine: Also split on script common." - After
reviewing the standard again, it's not really wanted.

This reverts commit 26cc8747fda51e95d340ef1a1838817fe495be23.

SVN revision: 56482
2011-01-30 10:39:29 +00:00
Tom Hacohen 3185db9667 Evas language utils: fixed evas_common_language_script_end_of_run_get and adjusted text and textblock object to use it.
SVN revision: 56478
2011-01-30 10:39:03 +00:00
Tom Hacohen 32f98dcb7b Evas font-engine: Fixed a bug in evas_common_language_script_end_of_run_get
SVN revision: 56476
2011-01-30 10:38:50 +00:00
Tom Hacohen 0e0ba10a7d Evas font-engine: fixed kerning in the default walker.
SVN revision: 56473
2011-01-30 10:38:33 +00:00
Tom Hacohen 421e1d8ae1 Evas font-engine: Also split on script common.
SVN revision: 56472
2011-01-30 10:38:28 +00:00
Tom Hacohen 9f0ce7a272 Evas textblock + font engine: add an optimized way of doing a cut-off on the text props.
SVN revision: 56470
2011-01-30 10:38:15 +00:00
Tom Hacohen 0e44717373 Evas font-ot: moved typedef to a better location (doesn't change anything but ease of understanding).
SVN revision: 56469
2011-01-30 10:38:08 +00:00
Tom Hacohen 4ee6706770 Evas font-engine: cache harfbuzz's face.
SVN revision: 56466
2011-01-30 10:37:52 +00:00
Tom Hacohen b53ded56ed Evas font-engine: Fixed some issues with the git rebase I just did, should now compile correctly.
SVN revision: 56465
2011-01-30 10:37:46 +00:00
Tom Hacohen 48b3a796a5 Evas font-ot: Fixed mistakes that caused ilegal reads.
SVN revision: 56464
2011-01-30 10:37:40 +00:00
Tom Hacohen 63e25655e1 Evas font-ot: renamed internal source_pos to source_cluster and added the forgotten evas_common_font_ot_cluster_size_get to the .h file.
SVN revision: 56463
2011-01-30 10:37:34 +00:00
Tom Hacohen c09000741b Evas font-engine: Add cluster support to the font-engine. Cursor handling is now correct for clusters as well.
SVN revision: 56462
2011-01-30 10:37:29 +00:00
Tom Hacohen c012ee700c Evas font-engine: Fixed pen/char query. In RTL first is actually the last.
SVN revision: 56461
2011-01-30 10:37:18 +00:00
Tom Hacohen 729a85e872 Evas font-engine: Fixed an issue with cluster handling that broke cursor position in some cases.
SVN revision: 56460
2011-01-30 10:37:12 +00:00
Tom Hacohen 34426d8c6e Evas font engine: Fixed a couple of issues:
1. Fixed double-kerning with the DEFAULT walker.
2. Removed unused var with the OT walker.
3. Fixed a bit of the documentation in the walkers.

SVN revision: 56459
2011-01-30 10:37:05 +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 f4a6807c4d Evas font-engine: Fixed an issue with cursor position with RTL text when OT is off.
SVN revision: 56457
2011-01-30 10:36:53 +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 6ac48e53ed Evas font: Added HARFBUZZ's cflags.
SVN revision: 56452
2011-01-30 10:36:14 +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 e4b4cf3344 Evas font-engine: suppress warnings when BiDi is disabled.
SVN revision: 56442
2011-01-30 10:35:10 +00:00
Tom Hacohen b1d9298e81 Evas bidi: Fixed the BiDi functions to accept paragraph props and not bidi props.
SVN revision: 56441
2011-01-30 10:35:04 +00:00
Tom Hacohen 109886f436 Evas font-engine: Fixed an issue with last_up_to_pos failing sometimes when it shouldn't.
Fixed a documentation error.

SVN revision: 56439
2011-01-30 10:34:49 +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 6dba792f46 Evas font-engine: Change EVAS_FONT_WALK_TEXT_* functions to advance pen_x at the end of the loop (so a break won't advance it, but a clean finish will) and removed the checking if a diacritic using and advancement hack (that only worked only with specific fonts anyway) so we'll be able to start working with Harfbuzz.
SVN revision: 56437
2011-01-30 10:34:36 +00:00