Commit Graph

105 Commits

Author SHA1 Message Date
Carsten Haitzler 541394175a fix tasn bug++
SVN revision: 53860
2010-10-25 11:56:20 +00:00
Tom Hacohen 79ec0e7975 Evas font-engine: Silence gcc about a possible use of unitialized value which can't really happen. Add parenthesis where needed.
SVN revision: 53855
2010-10-25 11:24:25 +00:00
Cedric BAIL d88f751b16 * evas: prevent possible segv.
SVN revision: 53408
2010-10-14 15:52:10 +00:00
Tom Hacohen 8d0492fcfd Evas textblock + font engine: Don't take inset into account when not needed.
SVN revision: 53353
2010-10-13 13:33:59 +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 fc060c6a8f Evas font query: query coords should not take bitmap positioning into account.
SVN revision: 53097
2010-10-06 12:24:14 +00:00
Tom Hacohen cfa9703607 Evas textblock and font engine: Fixed cursor position to be at the end of the current item, and not the end of the line, this looks nicer in bidi strings.
Fixed querying char coords to return the current position of the NULL according to the text's alignment, not the paragraph's.

SVN revision: 53061
2010-10-05 14:05:23 +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 bc755aa40f Evas textblock: updated docs.
SVN revision: 51837
2010-09-02 11:57:52 +00:00
Tom Hacohen ea9922698e Evas textblock: Fixed compilation without fribidi.
SVN revision: 51836
2010-09-02 11:53:40 +00:00
Tom Hacohen e8c59bf0e8 Evas textblock+font engine: Implemented evas_textblock_cursor_geometry_get.
Fixed evas_common_font_char_coords to work correctly with the NULL character in RTL text.

SVN revision: 51834
2010-09-02 11:49:00 +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
Tom Hacohen 26ecd94b4c Evas font: Fixed a couple of warnings and formatting issues.
SVN revision: 51656
2010-08-26 11:45:45 +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
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
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
Cedric BAIL 6549ab12ce * evas: fix potential race condition with FT_Activate_Size and threaded rendering.
SVN revision: 47419
2010-03-24 11:07:37 +00:00
Cedric BAIL 7fcbff0e0e * evas: Bring back Font Kerning cache as it does improve performance
by a good margin on my 4 targets (SGX-530, Tango2, NVidia G73).



SVN revision: 46388
2010-02-23 13:31:10 +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
Cedric BAIL 8984a75799 * evas: Cleanup move to eina log.
Patch from Mathieu Taillefumier.


SVN revision: 43200
2009-10-22 15:22:22 +00:00
Carsten Haitzler e30651d7ca more patches from tom
SVN revision: 42828
2009-10-01 05:18:17 +00:00
Carsten Haitzler 0986cd681b init some ptrs to null.
SVN revision: 42823
2009-09-30 22:30:12 +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
Cedric BAIL c259d8addd * evas: Use eina_log.
Patch from Matthieu.


SVN revision: 42598
2009-09-21 16:08:51 +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
Carsten Haitzler e999c88e80 tasn's rtl pathes and improvements... continued!
SVN revision: 40715
2009-05-18 06:08:15 +00:00
Iván Briano 554dccdb0b some formatting
SVN revision: 40343
2009-04-24 04:35:52 +00:00
Cedric BAIL b70ae3c927 * evas/src/lib/include/evas_common.h,
* evas/src/lib/engines/common/evas_font.h,
	* evas/src/lib/engines/common/evas_font_draw.c,
	* evas/src/lib/engines/common/evas_font_load.c,
	* evas/src/lib/engines/common/evas_font_query.c: Add cache for font kerning.

This patch give something around 2% for all tests around text in expedite,
except for Textblock Intl where it give a 3 times boost.

Regarding text rendering speed, something is strange when used by evas_pipe.
All tests using Styles are around 40% faster without evas_pipe. 30% faster
for Text Change. But Text Basic 7% slower. So it should be possible to have
faster rendering when using evas_pipe for font rendering.


SVN revision: 38993
2009-02-10 15:53:17 +00:00
Carsten Haitzler 2a04c23a33 futzing around with tilan's mono font issue - some commented otu debugging -
use the all caps enum for bitmap fonts now...


SVN revision: 31496
2007-08-25 11:54:17 +00:00
Sebastian Dransfeld f2b945b53d Find chr_x the same way as in the other functions. The main loop is very
similar in many functions and should be refactored.


SVN revision: 30389
2007-06-18 16:47:20 +00:00
Carsten Haitzler 94e3e465bf remove sub-pixel cursor advance for font rendering
SVN revision: 26420
2006-10-08 12:43:31 +00:00
sebastid e55f7b27b2 Functions used by modules must be EAPI
SVN revision: 25526
2006-09-06 07:33:40 +00:00
Carsten Haitzler b672283702 tb2 work! :)
SVN revision: 16671
2005-09-09 14:19:06 +00:00
sebastid 3f776d358a Cleanup some headers.
Remove duplicate typedefs and declerations.


SVN revision: 15407
2005-06-18 01:00:32 +00:00
Carsten Haitzler 46e02cf8bb whitespace
SVN revision: 14889
2005-05-22 02:49:50 +00:00
Carsten Haitzler aeabe389a2 fix font geometry issues...
SVN revision: 14431
2005-04-28 04:57:12 +00:00
Carsten Haitzler 7462681dad werd to my homies... this had to happen sooner or later.... evas supports
FONTSETS!

so u can do
Vera,Kochi,Blah ... etc.
as the font name
it will fall back font by font until it finds a char or finally fails.

this is for internationalisation support...

WHERD!


SVN revision: 13804
2005-03-20 15:57:55 +00:00
Carsten Haitzler ee21eb81ca more work on textblocks! :)
SVN revision: 13263
2005-02-09 16:10:56 +00:00
Carsten Haitzler ea2bd901f7 cross-compile fix
SVN revision: 10292
2004-05-20 07:38:43 +00:00
Carsten Haitzler 988e608f74 hmm math just a little off
SVN revision: 9970
2004-04-29 03:44:39 +00:00
Carsten Haitzler 8523421b7c added in loading froms from memory buffers at the engine level, and now an
api to set a font "source" (blank is normal filing system) but the source can
be a device or file etc. in this case it currently supports eet files as the
source and then the font name is used as a key in th eet file as to where to
find the font - edb support would be trivial to add. :) if the font is not
found in the "source" it falls back to the font path etc.


SVN revision: 8625
2004-01-23 02:14:45 +00:00
rbdpngn 4436026ac6 An instance of ft_lib was missed.
SVN revision: 8444
2004-01-15 14:58:03 +00:00
rbdpngn 84736e7845 Renamed a variable to avoid a collision with an imlib2 global.
SVN revision: 8442
2004-01-15 06:27:44 +00:00
Carsten Haitzler bfe9b1fa8e fixing minor arithmeic stuff in text queries. all happy now.
SVN revision: 6986
2003-06-07 02:32:30 +00:00
Carsten Haitzler 3d5f70ca35 kerning fix?
SVN revision: 6949
2003-05-30 05:05:52 +00:00
Carsten Haitzler 47280739ac oh my wordy lordy me.. too accurate for its own good soi've had to fidge to
overlap parts as the positioning is done in 24.8 space not integer space


SVN revision: 6553
2003-01-08 06:39:38 +00:00
sleuth c08fc73731 Minor evas fix for char position usage.
Kevin Brosius <cobra@compuserve.com>


SVN revision: 6529
2002-12-29 17:57:37 +00:00
Carsten Haitzler d1d3b62ebe hmm. forgot to translate text coords form queries.. and some glyph vs char
pos bugs


SVN revision: 6526
2002-12-29 02:09:34 +00:00
Carsten Haitzler 866bf9121e oops.. return POSTION, not glyph value!
SVN revision: 6525
2002-12-29 01:49:07 +00:00
Carsten Haitzler 3dc1dcbd32 the big internal function call renaming happened... and it was good.
SVN revision: 6449
2002-11-14 05:38:10 +00:00
Carsten Haitzler 56b5e15f26 code move
SVN revision: 6445
2002-11-08 08:02:15 +00:00