Commit Graph

108 Commits

Author SHA1 Message Date
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
Tom Hacohen 7bf2353f96 Evas font-engine: Fixed the first miss breaks font bug and removed the work around. My tests show it work, but just to make sure, if it doesn't for you, let me know.
SVN revision: 54456
2010-11-11 13:07:04 +00:00
Tom Hacohen da512dde9b Evas font-engine: Don't break if there was a previous miss. This is a workaround for a bug in the font index caching mechanism that happens if you cache the index miss before all the fonts were changed. We should probably just put a "dirty" flag on font sets that loaded more fonts or something like that.
SVN revision: 54157
2010-11-04 16:32:42 +00:00
Carsten Haitzler 05246414c6 oops - in the process i disabled the multiple fonts in the fontsets to
load on demand when first needed. fixed. rendering etc. works again
for all intl fonts.



SVN revision: 54085
2010-11-02 04:56:57 +00:00
Carsten Haitzler e0e6020902 work on fixing up a font "leak". its disabled via returns in funcs -
but also added in 24bit unicode support. needed for unicode v6
absolutely.. so we can have the pile of poo char work.



SVN revision: 53987
2010-10-29 12:55:42 +00:00
Tom Hacohen 9a89173df6 Evas font-engine: Reverted my hack in 53828 because cedric already implemented clipping to object geometry.
SVN revision: 53830
2010-10-24 12:28:36 +00:00
Tom Hacohen b705c2c038 Evas font-engine: Hacked around a wrong setting of clipping in textblock. - Email in ML will soon follow.
SVN revision: 53828
2010-10-24 10:59:52 +00:00
Christopher Michael 2f3b2b99e5 Fix issue when using word-cache: Make sure we have a 'last' word
before trying to free it, else we segfault.

Fix compiler warnings wrt const vs non-const of Evas_BiDi_Props.
Fix formatting and remove whitespace also.

NB: The major change here is in evas_font_word_prerender wrt freeing
the 'last' word of the cache.



SVN revision: 53166
2010-10-07 21:07:53 +00:00
Carsten Haitzler 9cb35948bc warning--
SVN revision: 52441
2010-09-19 01:46:13 +00:00
Lucas De Marchi 85815e306c Fix common misspellings
Following misspellings were fixed:

accomodate->accommodate
achive->achieve
beacuse->because
caluclate->calculate
cant->can't
carefull->careful
convertion->conversion
dependancy->dependency
dependant->dependent
doesnt->doesn't
existant->existent
extention->extension
fucntion->function
impliment->implement
inital->initial
lenght->length
occured->occurred
occuring->occurring
onyl->only
positon->position
possibilty->possibility
postion->position
proccessing->processing
proccess->process
propogate->propagate
recieve->receive
sucessive->successive
teh->the
ther->there
throught->through
thsi->this
wasnt->wasn't
whcih->which
wheras->whereas




SVN revision: 51965
2010-09-08 03:51:24 +00:00
Tom Hacohen 5e433f1956 Evas bidi: Changed the design a bit so it'll be easy to implement async-rendering with it.
Fixed a couple of issues with unwanted cleans and generally data corruption.
Cleaned up async-rendering.

SVN revision: 51806
2010-09-01 13:15:04 +00:00
Carsten Haitzler 075531cc54 aaah... so.. if we have a fribidi lock.. shall we.. hmrrrm maybe use
it? and... lets not just throw pointer onto pipelines just for the
hell of it.. as like.. hmm the object owning the pointer might be
freed before pipelien finishes.. or hell. it might change pointer
contents? :) need to nwo dup bidi intl_props. probably a better plan..
tasn looking at you... is to fix up evas bidi utils and make the intl
props a new/free thing (and sharable eh?) with reference counts to
avoid dups (just ref up most of the time - and if u change, make a new
intl prop - dont change current one) etc. etc. for now dup - this
gives a perf hit tho. at least async rendering works now.



SVN revision: 51736
2010-08-30 03:21:15 +00:00
Tom Hacohen 7cd4d7cf4a Evas font: Renamed the parameter names in evas_common_font_query_kerning to be more correct. Adjusted font query and font draw according to the correct font_query_kerning behavior.
SVN revision: 51724
2010-08-29 12:44:58 +00:00
Brett Nash 5ba73113af Do kerning correctly for word cache.
Technically this should speed it up a little.  That's a nice change for a bug
fix ;-)

SVN revision: 51607
2010-08-24 08:14:20 +00:00
Brett Nash 4939e163c7 Fix potential crash with word cache and RTL
SVN revision: 51606
2010-08-24 08:14:15 +00:00
Brett Nash e003086a5f Locking same for both font rendering + whitespace.
SVN revision: 51605
2010-08-24 08:14:10 +00:00
Brett Nash aeac043fdd Remove pointless test (it's the loop invariant).
SVN revision: 51604
2010-08-24 08:14:05 +00:00
Tom Hacohen ed847ee5aa Evas font draw: Fixed a typo in font draw
SVN revision: 51254
2010-08-17 15:59:03 +00:00
Cedric BAIL aa5d4fafc4 * evas: fix word/metric cache build.
SVN revision: 51204
2010-08-16 12:28:17 +00:00
Tom Hacohen 2f68e9299e Evas: Fixed many compilation warnings.
1. Fixed evas_common_encoding_utf8 functions to get char * instead of unsigned char * and return Eina_Unicode instead of int.
2. Removed a couple of unused variables.
3. Removed deprecated evas_common_font_utf8* functions.

SVN revision: 51200
2010-08-16 10:46:56 +00:00
Tom Hacohen d5e579c2e9 Evas: Redesigned the textblock object.
Sorry, but full documented code will be committed tomorrow, this commit is needed for the API stabilization.
Major changes in this commit:
1. Changed the textblock node system there is now a linked list for the format nodes and a linked list for the text nodes. Format and text nodes point to one anoter in a matter that will be explained in the source file (will be committed tomorrow). Each text node now represents a paragraph and each format node points to a specific location in a text node.
2. Text/Format nodes are now two distinct data types.
3. The concept of nodes is no longer exposed in the API except for the format nodes which are only slightly exposed just to enable users of the API to cycle all the formats in order to find stuff like anchors.
4. Every node has a PS (paragraph separator) format node pointing to it's end, except for the last one which has nothing. Nodes are only broken by PS's.
5. Changed the BiDi functions to work nicely with offsets in big chunks of text.

More is explained in the email with the subject 'Evas Textblock redesign + edje_entry adjustments' that will be sent tomorrow because of technical issues.
For full documentation about this object wait for the next commit.

SVN revision: 50930
2010-08-09 16:24:17 +00:00
Lucas De Marchi 0a4617ae38 FORMATTING
* Remove vim modelines:
 find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
 find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;

* Remove leading blank lines:
 find . -name '*.[cxh]' -exec sed -i '/./,$!d'

If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0



SVN revision: 50816
2010-08-04 16:57:32 +00:00
Brett Nash 68b8380d51 Two fixes: Use the correct string for the stringshare and
if gl is on, but metric is compiled out, just bail out of all word/metric
cache


SVN revision: 50678
2010-07-30 04:53:30 +00:00
Brett Nash 618f5cdf34 Use strnlen... NFI if this works yet.
SVN revision: 50677
2010-07-30 03:51:48 +00:00
Brett Nash ec7e390bdf Fix word/metric cache to use strlen
SVN revision: 50675
2010-07-30 03:20:40 +00:00
Brett Nash 7403813b4b Fix the compile error: Doesn't fix massive performance regression or rather
obvious semantic change in the code.

ie: If you are changing code:
	Read the comment on the LINE ABOVE the code you are changing.


SVN revision: 50674
2010-07-30 03:04:43 +00:00
Brett Nash 2df94e37ff Minor fixes to font drawing with metric caching enabled.
SVN revision: 50632
2010-07-29 03:34:30 +00:00
Tom Hacohen a6d428334f Evas: Changing the font engine to work with Eina_Unicode instead of utf8.
Changing textblock and text objects to work with Eina_Unicode instead of utf8 (internally, API remains intact).
Started relying on new fribidi 0.19.2 instead of the old fribidi.
A lot of fixes to the font engine.
Renaming of evas_common_font_utf8_* to evas_common_encoding_utf8_*
This relies on new Eina changes and types: Eina_Unicode, Eina_UStrbuf and Eina_UStringshare.

SVN revision: 50595
2010-07-28 12:00:41 +00:00
Brett Nash c391638bec ...but don't draw twice
SVN revision: 50588
2010-07-28 07:34:04 +00:00
Brett Nash 3f3f0909cc Fall through to slow path if no word and metric cache
SVN revision: 50587
2010-07-28 07:33:48 +00:00
Brett Nash 507834e27d Don't try and render wordcache if GL is on, and metric cache is enabled.
SVN revision: 50586
2010-07-28 07:33:23 +00:00
Brett Nash 9357c5d284 Use memcmp instead of stringshare. Much faster.
Everyones favourite arm benchmarks (a8 cortex)
Base                       stringshare   memcmp     Diff   Diff %
Widgets File Icons               32.48    36.78      4.3   13.24%
Widgets File Icons 2             73.65    74.93     1.28    1.74%
Widgets File Icons 3             44.87    46.89     2.02    4.50%
Widgets File Icons 4             65.66    66.45     0.79    1.20%
Text Basic                       88.67    91.21     2.54    2.86%
Text Styles                      10.71    10.95     0.24    2.24%
Text Styles Different St           8.3     8.45     0.15    1.81%
Text Change                       56.4    57.34     0.94    1.67%
Textblock Basic                  60.75     68.8     8.05   13.25%
Textblock Intl                  155.33   193.51    38.18   24.58%


SVN revision: 50498
2010-07-26 03:17:40 +00:00
Brett Nash 68682317e8 Bump the default buffer size. USeful for expedite ;-)
SVN revision: 50474
2010-07-24 02:38:36 +00:00
Brett Nash 59d93f9353 Minor fix: Don't render text if there is nothing to do
SVN revision: 50408
2010-07-21 06:43:47 +00:00
Brett Nash 9dc5a96f2d Generally speaking, dereffing uninited pointners is not so good.
Squash one nasal daemon!


SVN revision: 50403
2010-07-21 03:51:36 +00:00
Cedric BAIL 58dfd1c2b8 * evas: make WORD/METRIC cache work with pipe rendering.
SVN revision: 50381
2010-07-20 12:11:49 +00:00
Brett Nash 8dfc47998e Add more control over word-cache size. Also really fix my leak on international text.
The new wordcache option is an environment variable called:
	EVAS_WORD_CACHE_MAX_WORDS
set this to a number between 1-500 to change the cache size.

Larger values (40+) fix regressions in a few of the expedite tests.



SVN revision: 50047
2010-07-05 06:40:20 +00:00
Brett Nash 0227f22ad7 Some fixes for internation support and word cache
SVN revision: 49990
2010-07-02 07:05:20 +00:00
Brett Nash b304ae1642 Only use work and metric cacheing on 3 character or longer strings.
SVN revision: 49988
2010-07-02 06:47:22 +00:00
Brett Nash ac552cd762 Renable 'free' for word cache
SVN revision: 49986
2010-07-02 02:20:11 +00:00
Brett Nash 22e2ac921c Fic names of caching vars.
SVN revision: 49854
2010-06-25 08:52:37 +00:00
Brett Nash 725e12bdfa Don't double declare len
SVN revision: 49663
2010-06-14 08:16:47 +00:00
Brett Nash c410401441 Remoive extra #endif
SVN revision: 49662
2010-06-14 08:07:12 +00:00
Brett Nash 02f204b84c Add experimental word and metric caching.
SVN revision: 49661
2010-06-14 05:59:23 +00:00
Carsten Haitzler eaad0eb095 big patch from Samsung SAIT (Advanced research group) for async multi-frame
rendering. to turn on:

1.
configure with --enable-async-render
2.
export EVAS_RENDER_MODE=non-blocking
  
presto. necessitates some api swizzling (thus the expedite. ecore etc. changes)

the kind of results you get on a desktop:

http://www.rasterman.com/files/evas-async-vs-none.html



SVN revision: 49087
2010-05-21 07:10:45 +00:00