|Age||Commit message (Collapse)||Author|
Patch from a series of patches to rename EAPI symbols to specific
= 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).
EAPI void foo(void);
EAPI void bar()
EAPI void foo()
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
However, the following:
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
foo = 5;
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 <email@example.com>
Co-authored-by: Lucas Cavalcante de Sousa <firstname.lastname@example.org>
Co-authored-by: Ricardo Campos <email@example.com>
Reviewers: vtorri, woohyun, jptiz, lucas
Reviewed By: vtorri, lucas
Subscribers: cedric, #reviewers, #committers
Differential Revision: https://phab.enlightenment.org/D12214
Since efl object is introduced, magic check is no more used.
Plus, remove redundant object functions interfaces
Reviewers: #committers, bu5hm4n
Reviewed By: #committers, bu5hm4n
Subscribers: bu5hm4n, raster, cedric, #reviewers, #committers
Differential Revision: https://phab.enlightenment.org/D7153
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
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.
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.
Fixes Coverity CID1039498
Signed-off-by: Chris Michael <firstname.lastname@example.org>
Evas_Common.h should be used for the public header, and rather rename
evas_common.h internal header to another name.
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
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,
SVN revision: 78895
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
SVN revision: 60915
SVN revision: 60391
SVN revision: 60390
SVN revision: 58473
SVN revision: 52575
Following misspellings were fixed:
SVN revision: 51965
SVN revision: 51219
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
SVN revision: 49270
SVN revision: 49268
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
Patch from Mathieu Taillefumier.
SVN revision: 43200
Patch from Matthieu.
SVN revision: 42598
SVN revision: 39223
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
* 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
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
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
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.
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
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
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
SVN revision: 33448
SVN revision: 31398
SVN revision: 29871
Remove duplicate defines.
SVN revision: 19579
SVN revision: 19314
SVN revision: 18642
SVN revision: 18624
SVN revision: 18618
SVN revision: 18614
SVN revision: 18612
Remove duplicate typedefs and declerations.
SVN revision: 15407
SVN revision: 14889
SVN revision: 9280
SVN revision: 8688
environment variables to disctate if:
1. it displays any error output if it encorunters wrong object types, NULLs
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
SVN revision: 6915
SVN revision: 6547
robust if allocs fail
SVN revision: 6458
SVN revision: 6445