Commit Graph

86 Commits

Author SHA1 Message Date
Carsten Haitzler 3cc270844b fix binary search for "bitmap font drawing chars" to actually work all
the time! :) (this went in since last release so no chlog)



SVN revision: 73405
2012-07-06 09:53:58 +00:00
Cedric BAIL 2e0fd1d375 evas: make the code do what we expect by destroying Glyph at the right time.
This fix the leak issue that was added lately and make the code
more easy to follow.


SVN revision: 73265
2012-07-04 10:21:06 +00:00
Cedric BAIL 1d415b796b evas: add more infrastructure to the prepare stage of pipe rendering.
NOTE: this improve some test by 10 to 15% some other are down by 5%.
Their is still more tunning and improvement possible now (Particularly
with Map), but it will do for now.


SVN revision: 73264
2012-07-04 09:39:23 +00:00
Carsten Haitzler 01c382407b clean up terminal char line drawing fallback to be more specific (fall
back only if 1 size and num glyphs < 513 and find failed). ALSO make
lookup a binary-search for efficiency.



SVN revision: 72710
2012-06-23 02:32:30 +00:00
Rafael Antognolli 2f3426b67c evas/cserve2: CServe2 client side lib modifications.
Add the calls to request font loading and glyphs on the client lib.



SVN revision: 72700
2012-06-22 20:31:31 +00:00
Carsten Haitzler e15ba8bba1 tenative font glyph workaround for fonts not containing gfx drawing
chars.



SVN revision: 72604
2012-06-21 13:48:59 +00:00
Carsten Haitzler 9a56eec38c woooow line advance broken for bitmap fonts!
SVN revision: 72513
2012-06-20 04:53:21 +00:00
Tom Hacohen 3e5a5aac7b Evas textblock: Fixed rendering issues with small fonts.
GRIDFIT when we HINT, get the UNSCALED sizes otherwise.

SVN revision: 72409
2012-06-18 15:43:49 +00:00
Cedric BAIL b3c50c2407 evas: destroy the mutex after we use it for the last time.
SVN revision: 72329
2012-06-18 01:05:30 +00:00
Tom Hacohen 6e3ddcd6a0 Evas font: Fix the font engine to work with Bitmap fonts.
Oops, I used the Outline CBox function instead of the Glyph one. Fixed.

SVN revision: 72278
2012-06-17 07:18:50 +00:00
Carsten Haitzler 9d96a8ec62 fix bvitmap font handling. woot. can use pcf's and bitmap ttf's well n
ow. :)



SVN revision: 71886
2012-06-10 03:23:57 +00:00
Tom Hacohen af55fb6217 Evas text: apply italic correction for run-time slanted texts (disabled).
Also, put the slant angle calculations in a macro for easier future changes.
Just have it there so people who want it can turn it on.

SVN revision: 71506
2012-05-29 14:43:17 +00:00
Tom Hacohen d7f811fe8f Evas font-draw: Use bitmap offset in the glyph when drawing.
SVN revision: 71505
2012-05-29 14:43:10 +00:00
Cedric BAIL b0d3526d89 evas: another improvement part of the previous lock less font rendering patch.
Now evas will in all case do the layout during the prepare stage. It will do that
once and as long as the text didn't change. This does improve by a factor of at
least 2.3 in all expedite test case except the text change that only get a 30%
increase (I expect a drop in performance on non pipe rendering for text change
expedite test only, but this case is not common in real life).

This also fix the issue that show random size glyph when using pipe rendering.


SVN revision: 71220
2012-05-18 02:16:54 +00:00
Rafael Antognolli ad37a5e7bf evas/cserve2: Use width and horizontal bearing from
glyph metrics.
Instead of having to render the glyph to get the width and horizontal
bearing of it, it's possible to get this information from the glyph
metrics (which are available on the glyph slot).

This change now allows Evas to only render the glyph at the rendering
phase, instead of having to render it during layout phase.



SVN revision: 71132
2012-05-15 21:15:20 +00:00
Rafael Antognolli d94025ca29 evas/cserve2: Split out the glyph rendering code from
glyph_get().
Now it's possible to get a font glyph without needing to render it
(although Evas is not doing so).



SVN revision: 71131
2012-05-15 21:15:08 +00:00
Cedric BAIL 377cc2368a evas: remove EVAS_FRAME_QUEUING.
NOTE: This should be part of evas_render itself and not
delegated to the engine. So cleaning things to make it easier
during evas_render rewrite.


SVN revision: 70503
2012-04-26 09:53:03 +00:00
Sebastian Dransfeld c9abcf691d evas: Remove unused variables
SVN revision: 67302
2012-01-18 23:33:33 +00:00
Jiyoun Park 5d65b627a6 remove white space
SVN revision: 64979
2011-11-09 08:01:00 +00:00
Carsten Haitzler deb93c0d4a to make up for not using xft.dpi anymore that was a fix essentially
to buffer engine rendering, allow env var for evas font dpi.



SVN revision: 64970
2011-11-09 05:58:19 +00:00
ChunEon Park 9a6b7aab4b evas - just removed white spaces.
SVN revision: 62354
2011-08-11 14:14:48 +00:00
Tom Hacohen 4ec907df55 Evas font: Renamed FONT_REND_ITALIC/BOLD -> FONT_REND_SLANT/WEIGHT.
This change is needed for future support of multiple level of runtime
weight creation.

SVN revision: 61943
2011-08-01 09:11:42 +00:00
Tom Hacohen ca1fc26a0e Evas font-engine: Fixed a bug in the glyph search function.
SVN revision: 59776
2011-05-29 09:20:13 +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 1ad5cdfb89 Evas font-engine: Remove useless if, it's never a bitmap.
SVN revision: 59506
2011-05-18 13:47:37 +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 bd0695d1b5 Evas encoding: Removed Evas_Encoding and moved to eina_unicode_utf8* instead.
SVN revision: 57096
2011-02-16 16:00:17 +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
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
Gustavo Sverzut Barbieri 379b546adf better logging.
* log domains in lower-case only please. let's make it a standard so
   we don't have to look at the code everytime to figure out the name...

 * logs do NOT require trailing newline (\n), it's automatic!

 * do NOT add newline inside log messages!

 * add gl_common logging.

NOTE: I tried to compile all modules, but there are clear broken
      modules such as cairo and qtopia. Other modules like gl_sdl are
      broken as they were not updated to new gl_common api (resize
      method AFAIR).



SVN revision: 53174
2010-10-07 23:46:42 +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
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
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
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
Cedric BAIL 0a5c65549a * evas: font config access is not thread safe at all. Don't forget
to call FTLOCK/FTUNLOCK around each FT_* call.


SVN revision: 50379
2010-07-20 12:09:46 +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
Carsten Haitzler 3b8ae6502a ooh and also lkd - just to be clean.
SVN revision: 49346
2010-05-31 03:40:48 +00:00
Carsten Haitzler 77123462e1 now that header was a mess - and this wasnt using the same lock! bad
bad!



SVN revision: 49345
2010-05-31 03:31:49 +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
Carsten Haitzler cedba3f7d9 handle gl init fialure correctly and dont mess up font init.
SVN revision: 48959
2010-05-18 04:22:33 +00:00
Carsten Haitzler 15b7e11198 hmm - i don't know how this happened, but - metrics were not being done
right. fixed now. i wonder why. this used to be right at some point.



SVN revision: 48503
2010-05-01 14:08:14 +00:00
Carsten Haitzler d37f08a616 adding... items... oooooh what are these items? invisible sized blobs treated
like characters/words for wrapping. intended for use in sticking inlined
content - like icons, images etc.



SVN revision: 48301
2010-04-25 11:35:41 +00:00
Carsten Haitzler afe65d7c0a add ability to dump engine coontents (if engine supports it). this means
unload images it has loaded from disk, unload fonts, and more. dump dump dump!



SVN revision: 47947
2010-04-12 08:23:53 +00:00
Carsten Haitzler c0baeaeb68 1. fix fcfini issue i hit - yes . things may look like they leak in valgrind
- they dont. in reality.
2. major text rendeering speedups. up to 41% in textblock intl, 33% in
textblock basic, 12-20$ in other text rendering tests. generic eina hash's
are just tooo slow for what we are doing there. specialised "Fash"
blocked-array.
3. still LOTS of optimisations left.



SVN revision: 45829
2010-02-03 11:18:00 +00:00
Tom 39b6c9148c From: Tom <tom@stosb.com> (tasn)
Hey raster,

Here is the non intrusive patch I talked to you about. Please apply it as it
introduces some fixes, some improvements and mostly and underlying
infrastructure for future RTL improvements.

(note hebrew & yiddish seem fine, but things expedite test seems to show are
wrong (why i don't know as i dont speak the langs- just comparing to pango /
gtk output):

arabic seems lsightl wrong (maybe composition chars not working?)
gujarati - also seems wrong
malayam - also looks wrong
persian - looks wrong
sinhala - looks wrong
tamil - looks wrong

these are what, appear to me, to look wrong. why they look wrong, i don't
know. i'm guessing its compositiong not being handled. but i dont's peak,
read or write any of these languages so i am unsure of what it really should
be like, why and how to fix it.

anyone want to put up a hand? (everything else is displaying fine as best i
can tell - the langauges i read/speak/somewhat understand are working fine).



SVN revision: 42814
2009-09-30 04:23:21 +00:00
Vincent Torri 165a507ce2 move declaration of variables at the beginning of the block
SVN revision: 42627
2009-09-22 22:37:03 +00:00
Cedric BAIL c259d8addd * evas: Use eina_log.
Patch from Matthieu.


SVN revision: 42598
2009-09-21 16:08:51 +00:00
Mikhail Gusarov d6af88ef6c patch from: Mikhail Gusarov <dottedmag@dottedmag.net>
evas_common_font_utf8_get_prev currently works correctly only on an
ASCII symbols. For non-ASCII it just returns random garbage somehow
constructed from a string.

Attached patch makes it work according to the comment at the start.



SVN revision: 41292
2009-07-10 06:06:37 +00:00
Cedric BAIL 0839ec65ea * Evas: Improve RGBA_Font_* cache using hash and stringshare correctly.
Note: This should not impact font rendering, but if you notice anything
	wrong, please don't hesitate to report this to me.


SVN revision: 41050
2009-06-15 15:07:13 +00:00
Carsten Haitzler c3b8b4ee14 revertg big R to L patches because they break cursors and selection.... BACK
boy BACK!



SVN revision: 40783
2009-05-22 21:12:32 +00:00