Mainly, glDeleteBuffers was being called instead of glDeleteRenderbuffers.
Also, there was an error when checking if surface is valid.
SVN revision: 70870
now seriously...
Introducing Cache Serve 2.
This cache server will initially load images for clients connected to
it. It starts slave processes to load these images, and share the loaded
images through shm with the clients. All the connection done between
clients and the server goes through sockets.
The cserve2 build option is turned on by default, while the old cserve
was disabled, but in order to make clients use it, the environment
variable EVAS_CSERVE2 must be set, and a server must be running.
Clients will try to find the socket on a specified location using the
environment variable EVAS_CSERVE2_SOCKET. If it's not defined, then the
XDG_RUNTIME_DIR path should be used, and finally HOME, TMPDIR and /tmp.
SVN revision: 70699
(Trying it again since this commit broke evas build yesterday.)
Previously, evas_gl_surface_create() didn't actually do
the render buffer attach to the the FBO. It was performed when
the make_current was called for the first time. The issue
was that even though the surface was successfully created with
the given configuration, there was a possibility of make_current
failing with the error message "FBO not complete" because of
the surface configuration.
So, I've added a piece of code that checks the FBO
capabilities beforehand to set up a available surface configurations
so that it doesn't have to fail during make_current for unsupported
surface format.
Also, I've changed the surface config in a way that once the
user calls evas_gl_surface_create(), evas gl sets the config
parameter with configuration that evas_gl is actually using.
SVN revision: 70680
Previously, evas_gl_surface_create() didn't actually do
the render buffer attach to the the FBO. It was performed when
the make_current was called for the first time. The issue
was that even though the surface was successfully created with
the given configuration, there was a possibility of make_current
failing with the error message "FBO not complete" because of
the surface configuration.
So, I've added a piece of code that checks the FBO
capabilities beforehand to set up a available surface configurations
so that it doesn't have to fail during make_current for unsupported
surface format.
Also, I've changed the surface config in a way that once the
user calls evas_gl_surface_create(), evas gl sets the config
parameter with configuration that evas_gl is actually using.
SVN revision: 70617
This make it possible to use the object tree to reduce the number of object, we need to explore to know
what is under a specific position. First used by propagation event code. That code is now 4 times faster, enjoy !
As a side cost evas_object_move goes from 925 to 980 valgrind cycle on my computer, so not something you
will notice.
NOTE: if you notice any breakage regarding event propagation, map, cats, minor or major, please report to
me ! I hope I didn't loose my mojo, with such a scary change, I have a big chance to get it back !
SVN revision: 70564
Subject: [E-devel] [patch] missing doxygen files in release tarballs
This patch add to EXTRA_DIST essential files for doxygen
small build fix:
SVN revision: 70514
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
Note: this two were broken. Current plan to bring
that feature back in, is to attach this information
to Evas_Text_Prop during the prepare stage. This
would improve both single and multiple core rendering
without increasing the number of lock and the complexity
of the code.
SVN revision: 70501
NOTE: other things that may join it in the near futur EVAS_FRAME_QUEUE,
EVAS_METRIC_CACHE and maybe EVAS_WORD_CACHE also. This is all part of
cleaning up our rendering path so we can actually improve it more easily.
SVN revision: 70499
NOTE: some of this function should be moved as inline, but that's to late for a change
I think. So we will fix that if needed.
Second point, I am not happy with is eina_inarray_insert and eina_inarray_insert_at. The
naming is really poor.
SVN revision: 70352
Attached patch fixes a bunch of warnings in evas doc:
- Make remaining EINA_{TRUE,FALSE} @c, removing some undef link in same
time
- Make remaining NULL @c
- Fix the color space list
- small random fix
SVN revision: 69956
Due typo the weight was being handled as an integer, not floating
point. It worked with examples since they were usually being round to
int after being sum (0.3 + 0.7 -> 1.0, 3 + 7 -> 10).
SVN revision: 69910
There is a reference to evas-load-error-str.c in
the evas_load_error_str doc, but this file doesn't exist
anymore so I made the doc link to evas-images.c which use
several times this function.
SVN revision: 69754
Subject: [E-devel] [patch] evas doxygen doc (1)
There are a lot of small things to fix in the evas doc. Here is a first
batch. Fixes are trivial and obvious. Just a question about the first
hunk, I removed the <tdb> that replaced valid email for companies
because it makes doxygen complain about the unknown tag and, well, it
doesn't give any information either. Was there an explanation about
adding this ?
Joined is the patch along with the doc build log diff.
SVN revision: 69749
The doxyfile of evas contains some variables that have been deprecated a
long time ago (6 years for some of them). Here is a patch that fix this
build warning:
make -C doc doc
make[1]: Entering directory `/tmp/evas/doc'
rm -rf html/ latex/ man/ xml/ evas-1.2.0-alpha-doc.tar*
doxygen
warning: Tag `DETAILS_AT_TOP' at line 44 of file Doxyfile has become obsolete.
To avoid this warning please update your configuration file using "doxygen -u"
warning: Tag `MAX_DOT_GRAPH_WIDTH' at line 135 of file Doxyfile has become
obsolete.
To avoid this warning please update your configuration file using "doxygen -u"
warning: Tag `MAX_DOT_GRAPH_HEIGHT' at line 136 of file Doxyfile has become
obsolete.
To avoid this warning please update your configuration file using "doxygen -u"
As suggested, it would be good to run again doxygen -u Doxyfile.in
SVN revision: 69740
This works in linux and windows, and should fix shm_detection on BSD (including Mac)
BSD, Mac and solaris users : please check that it compiles and shm_open is detected
SVN revision: 69612
Subject: image data get/set pairing issue
I found a bug about pairing
evas_object_image_data_get/set(eng_image_data_get/put).
It was added to count checked_out for paring
eglMapImageSEC/eglUnmapImageSEC.
In case of calling evas_object_image_data_set() twice after calling
evas_object_image_data_get(), dyn.checked_out has -1.
Then, if evas_object_image_data_get() and evas_object_image_data_set()
is call, it can't call eglUnmapImageSEC().
If dyn.checked_out has minus, it can make some problem.
So, I fixed this problem.
Please find enclosed patch file and let me know if I misunderstood.
SVN revision: 68504
From: Thanatermesis <thanatermesis.ecvs@gmail.com>
Subject: [E-devel] LDFLAGS with -Wl,-z,defs
Aparently if you add the option "-Wl,-z,defs" to your LDFLAGS, there's some
libs that doesn't compile, like evas and e_dbus, there's some logs:
SVN revision: 68464
subject: [E-devel] [Patch] Add override gl apis for osmesa
When an application use glBindFramebuffer or glBindRenderbuffer via
evas_gl after loding libosmesa.so,it shows segment fault.
Because glBindFramebuffer and glBindRenderbuffer are not overrided.
So, I fixed it.
SVN revision: 68391
NOTE: I would like to do the same with software SDL 16bits engine.
But as we don't have a buffer_16 backend, I am likely to just remove
it and use buffer conversion code to match a 16bits target. This
will come with a performance impact, that will make it useless. So
I am just tempted to completly remove it.
SVN revision: 68352
Subject: [E-devel] [patch] evas - preventing retard mouse event
process in evas_object_event_callback_call
I made a small patch to prevent retard mouse event process.
At certain circumstance (like as genlist select callback + naviframe
item push),
some events are repeat processed.
If some evas_objects're iterating in evas_event_feed_mouse_up and
mouse_out event's emitted by other interrupt(such as naviframe item
push),
then some evas_objects events are multiple processed by
evas_object_event_callback_call.
More elaborating it with a example.
There are a genlist and a multibuttonentry on genlist item.
When a user clicks multibuttonentry then evas will process mouse down
and up.
in evas_event_feed_mouse_up, it gets evas object list to process mouse
events.
Then in the evas object list, there are two evas objects - rect and
textblock.
Two objects have its own parents.
the rect has below parents.
----------------------------------------
edje - genlist item
elm_genlist_pan
edje
multibuttonentry
box
entry
els_scroller (0x2a601788)
rect <== the rect
the textblock has below parents.
----------------------------------------------
edje - genlist item
elm_genlist_pan
edje
multibuttonentry
box
entry
els_scroller(0x2a601788)
edje
elm_pan
edje
textblock <== the textblock
(note : two evas object have same parent (els_scroller))
So normally mouse up callbacks event propagates to its own parent.
the rect is processed to genlist item. and the textblock is processed
to genlist item.
but when els_scroller is processed, it's blocked by checking event
type and event id checking.
Mouse Up(rect) -> Mouse Up(textblock)
event_id (3) -> event_id (3)
evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type
type, void *event_info, int event_id)
{
...
if ((obj->delete_me) || (!obj->layer)) return;
if ((obj->last_event == event_id) &&
(obj->last_event_type == type)) return;
<=== blocked
However if naviframe item is pushed in the middle
of mouse up processing.
It can break into mouse up. So it's processed like below.
Mouse Up(rect) -> Mouse Out(rect) -> Mouse Out(textblock) -> Mouse
Up(textblock)
event_id (3) -> event_id(4) -> event_id(4)
-> event_id(3)
(note Mouse_Out is made by naviframe item push for event freezing)
If that, there's no mechanism to block that repeat processing same
event.
So I suggest this patch.
This patch blocks old events if there's no reason to process.
(It blocks old mouse_up event because mouse_out is processed.)
And I think it also clear the bug in
"[E-devel] event repetition with elm_naviframe/elm_genlist"
SVN revision: 67879