path: root/src/lib/evas/main.c (unfollow)
AgeCommit message (Collapse)Author
2020-12-15evas: Rename EAPI macro to EVAS_API in Evas libraryFelipe Magno de Almeida
Summary: Patch from a series of patches to rename EAPI symbols to specific library DSOs. = The Rationale = This patch is from a series of patches to rename EAPI symbols to specific library DSOs. EAPI was designed to be able to pass `__attribute__ ((visibility ("default")))` for symbols with GCC, which would mean that even if -fvisibility=hidden was used when compiling the library, the needed symbols would get exported. MSVC __almost__ works like GCC (or mingw) in which you can declare everything as export and it will just work (slower, but it will work). But there's a caveat: global variables will not work the same way for MSVC, but works for mingw and GCC. For global variables (as opposed to functions), MSVC requires correct DSO visibility for MSVC: instead of declaring a symbol as export for everything, you need to declare it as import when importing from another DSO and export when defining it locally. With current EAPI definitions, we get the following example working in mingw and MSVC (observe it doesn't define any global variables as exported symbols). Example 1: dll1: ``` EAPI void foo(void); EAPI void bar() { foo(); } ``` dll2: ``` EAPI void foo() { printf ("foo\n"); } ``` This works fine with API defined as __declspec(dllexport) in both cases and for gcc defining as `__atttribute__((visibility("default")))`. However, the following: Example 2: dll1: ``` EAPI extern int foo; EAPI void foobar(void); EAPI void bar() { foo = 5; foobar(); } ``` dll2: ``` EAPI int foo = 0; EAPI void foobar() { printf ("foo %d\n", foo); } ``` This will work on mingw but will not work for MSVC. And that's why LIBAPI is the only solution that works for MSVC. Co-authored-by: João Paulo Taylor Ienczak Zanette <> Co-authored-by: Lucas Cavalcante de Sousa <> Co-authored-by: Ricardo Campos <> Reviewers: vtorri, woohyun, jptiz, lucas Reviewed By: vtorri, lucas Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-10-11evas: remove redundant internal functions.Hermet Park
Summary: Since efl object is introduced, magic check is no more used. Plus, remove redundant object functions interfaces - type_id, - visual_id, - store - unstore Reviewers: #committers, bu5hm4n Reviewed By: #committers, bu5hm4n Subscribers: bu5hm4n, raster, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2017-07-31evas mem - remove redundenty unused evas mem absractionCarsten Haitzler (Rasterman)
was never used as was not practical to do so so it effectively does nothing so remove it to reduce analyser warnings found by PVS studio
2016-12-06all: use void if we really want to make sure we do not accept parametersStefan Schmidt
In C we need this to make clear that we really do not accept parameters. Found by the smatch source code matcher. I had run and fixed this before but it seems to creep in again over time.
2013-12-26efl: Unified eina critical manro to CRI.Daniel Juyung Seo
Being annoyed by different types of eina critical macros - CRI, CRIT, CRITICAL -, I concluded to unify them to one. Discussed on IRC and finally, CRI was chosen to meet the consistency with other macros - ERR, WRN, INF, DBG - in terms of the number of characters. If there is any missing bits, please let me know.
2013-11-18Remove read code.Chris Michael
Fixes Coverity CID1039498 Signed-off-by: Chris Michael <>
2013-06-20evas: Keep sane name for public headerSebastian Dransfeld
Evas_Common.h should be used for the public header, and rather rename evas_common.h internal header to another name. Sa: Evas_Common_Header.h -> Evas_Common.h evas_common.h -> evas_common_private.h Shouldn't have both Evas_Common.h and evas_common.h because of case insensitive filesystems.
2012-11-04merge: and now EvasVincent Torri
I've tested make -j 3 install and it works nicely I've tested expedite with software and opengl xlib, and it works. Not tested other engines, so please report any problems (engines or other) on the ML. TODO: examples and tests, I'll add them later ISSUE: Eina_Unicode size check. It indirectly depends on eina_config.h, which is created at the end of the configure script. So its size is always 0. I don't know how that size is used, so I can't do a lot, for now. SVN revision: 78895
2012-06-10Evas magic checks: Print magic errors by default.Tom Hacohen
We still don't print on NULL because there are two many such errors in evas, but at least we print on magic errors which are even worse. SVN revision: 71894
2011-07-01evas/main.c - removed useless lines. ChunEon Park
SVN revision: 60915
2011-06-16evas/main.c - added Evas_GL magic_string_get ChunEon Park
SVN revision: 60391
2011-06-16evas/evas_map - added magic check ChunEon Park
SVN revision: 60390
2011-04-08doxy to h.Carsten Haitzler
SVN revision: 58473
2010-09-22move some simple #define constants to typedefs. api compatible tho.Carsten Haitzler
SVN revision: 52575
2010-09-08Fix common misspellingsLucas De Marchi
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-08-16 * evas: remove gradient and gradient2.Cedric BAIL
SVN revision: 51219
2010-06-11Although evas_debug is flagged with "debug" in the name, messages are critical.Gustavo Sverzut Barbieri
The evas_debug functions are just called from MAGIC_DEBUG errors, that are quite critical, so messages should come out by default, and do that loud with a CRITICAL warning. Raster, cedric and others: now that we have Eina as a common dependency between Evas and Ecore, maybe it is worth to unify the debug system on top of Eina logging? It already provides "abort on critical", runtime configurable log levels. I'd say the same about the magic and safety checks themselves (eina_magic and eina_safety). SVN revision: 49643
2010-05-29remove semi-colonCarsten Haitzler
SVN revision: 49270
2010-05-29evas version too.Carsten Haitzler
SVN revision: 49268
2010-03-18evas: mega documentation improving commit.Gustavo Sverzut Barbieri
This commit moves Evas.h contents a lot, but it should not change code (some conts were added, some function attributes were changed). The purpose of such is to define the order that doxygen show modules in its documentation. I also splitted documentation a bit more, and added a src/examples to list useful example code. Right now it is just a pure-evas draw-and-save using buffer engine. NOTE: there is lots to document, and the @todo list is quite long but I guess lots of things there were done already. Raster, could you review this list? SVN revision: 47308
2009-10-22 * evas: Cleanup move to eina log.Cedric BAIL
Patch from Mathieu Taillefumier. SVN revision: 43200
2009-09-21 * evas: Use eina_log.Cedric BAIL
Patch from Matthieu. SVN revision: 42598
2009-02-25remove more 'unused parameter' warningsVincent Torri
SVN revision: 39223
2008-07-10 * move evas_mempool from main.c to it's own file in data/ as it's onlydoursse
used by evas_list * add a header files for evas_cache, evas_path and evas_module * remove trailing spaces in evas_list.c SVN revision: 35052
2008-03-14 * Remove Windows code in evas_module.c and use evilness insteaddoursse
* Allow Windows Mobile to correctly load dll's * Use correct scheme for EAPI on Windows and include config.h when necessary * add -mwin32 to compiler flags when compiling with cegcc SVN revision: 34024
2008-01-11e:Carsten Haitzler
1. configure/build changes to allow cross-compiling painlessly 2. pager module namespace changes - this was still dirty afdter the namespace cleanup, so clean it up 3. add a powersave subsystem - doesnt have an "automatic" way to turn on and off right now, this i think is best provided by modules (that do things like monitor acpi status's (eg close lid of laptop), AC power status etc. etc. this allows e to nicely defer "power" expensive actions to avoid disk spinups etc. 4. move to use the new ecore poller system - discussed long ago as part of power management/saving issues. now it exists 5. add a canvas idle flush call that helsp cope with the new shm greedy software x11 engine stuff 6. use the new powersave subsystem where appropriate 7. fix non-zeroed/initted memory access in e_fm_main 8. fix mem leak for e menus 9. remove ipc handlers for changed/removed config values 10. use animaotr not timer for menu scrolls - then menu scrolls obey the fps config 11. fix up timer/poll happienss of cursor idle stuff 12. remove avoid damage from popups for now - causing problems 13. change battery and temp readouts to b e shorter so they fit 14. pager can emit signals on focus change for mini-windows now 15. temperature module now uses a slave process and uses stdin/out to talk to it and get output - this makes e smoother as in my expereicne i found getting the temp on my laptop actually took like 200ms so e "hang" for 200ms while reading the acpi files - so now the subprocess does it and just writesa back to e when it gets it. ecore: 1. add ecore_pollers. see the documentation on them in doxygen comments :) 2. fix timers to only go off when they have to - bug there that made e's select time out a LOT more than it needed to. defensive coding hid the problem. now fixed. e should be much more power friendly now. 3. formatting/niceness in ecore_exe stuff 4. some comments on comments with SIGIO ideas vs. select 5. add call to be able to add an idle enterer at the start of the list of them, not just the end (as has been the default) 6. fix ecore_evas to support auto evas idler calls after 0.5 secs of idle in all canvases - and to do it right 7. if argb destination - set the shape EVENT shape (to mask out events in transparent regions much like shape does withotu translucency) 8. in ecore_x add support for the event shape evas: 1. fix cache to work properly and not just always fill up (as it seemed to like to think cahce useage dropped below 0 when it didnt and thus just over-fill) 2. software x11 engine now ONLY uses shm segments - no ximages over the socket. this ximage hack was there to avoid the 2 round trips involved in setting up an shm image - now i mitigated that wih an shm image cache pool. it keeps shm images around and repurposes them for new update regions if appropriate. this means many fewer shm creates (about 1/100th the number) and since we recycle the memory less 0 memory page filling by the kernel - in the end, i recorded about a 10-20% speedup over the old software x11 engine. simple tests i have seen up to 120% speedups. idle flush now does something - it frees all the cached shm segments. it has a hard-coded limit of 4mb worth of shm segments (or 32 segments - whichever comes first) to keep around. once can never complain much about speedups methinks :). also evas will defer sync until the NEXT frame is written - this means evas can calculate the next frame of data while x dma's/copies the images to the screen at the same time (if you hve a dual core or multi-cpu machnike or your xserver is able to use DMA to copy image data to the screen/video ram then this should see a decent speedup). SVN revision: 33448
2007-08-19cast yet pointers. bad!Carsten Haitzler
SVN revision: 31398
2007-05-06a bunch of constness fixestilman
SVN revision: 29871
2006-01-06Remove EAPI warnings.sebastid
Remove duplicate defines. SVN revision: 19579
2005-12-27actually make symbol hiding work!Carsten Haitzler
SVN revision: 19314
2005-11-25new - much cleaner/simpler mempoolCarsten Haitzler
SVN revision: 18642
2005-11-24turn of mempool for nowCarsten Haitzler
SVN revision: 18624
2005-11-23enable pool - nicer on memCarsten Haitzler
SVN revision: 18618
2005-11-23disabled for now - need smroe tuning/testing/optimisingCarsten Haitzler
SVN revision: 18614
2005-11-23i'm playign with memory pools for evas lists. it seems to improve things.Carsten Haitzler
SVN revision: 18612
2005-06-18Cleanup some headers.sebastid
Remove duplicate typedefs and declerations. SVN revision: 15407
2005-05-22whitespaceCarsten Haitzler
SVN revision: 14889
2004-03-08check deleted flag.. need to do this in more places tho....Carsten Haitzler
SVN revision: 9280
2004-01-28freeze/thaw debug!Carsten Haitzler
SVN revision: 8688
2003-05-19evas now usesCarsten Haitzler
EVAS_DEBUG_SHOW EVAS_DEBUG_ABORT environment variables to disctate if: 1. it displays any error output if it encorunters wrong object types, NULLs etc. 2. if it should call abort() on such an error so it can be easily caught with gdb as a segv. if these enironment variables exists it will do both.. if they dont it will not perform the appropriate action. (so now by default evas remains quiet and marches on) SVN revision: 6915
2003-01-07evas_test will now tell u fps...Carsten Haitzler
SVN revision: 6547
2002-11-24docs... and memory error stuff... auditing memory allocs and making ti veryCarsten Haitzler
robust if allocs fail SVN revision: 6458
2002-11-08code moveCarsten Haitzler
SVN revision: 6445