to cserve2.
Big commit that implements the entire functionality. Besides loading
fonts and glyphs, and sharing the glyph bitmaps with clients, it also
adds:
- new request system, with a much better abstraction;
- new working slaves management;
- slaves can be threads or process now;
- started a debugging and statistics implementation on server.
The image caching part still uses the old request and slaves system, but
should be changed to use the new one soon and get more easily
maintainable.
SVN revision: 72699
This patch reuse the same Evas_Text_Props across the textgrid (Later we could do that
across the canvas itself, but no test case yet, so not yet). It delay the real destruction
of Evas_Text_Props after the rendering cycle, so they will really die only if they are
not used during the latest frame. We could delay it a little bit more, but that does
the job at the moment.
SVN revision: 72510
Nowadays, this engine is completely useless. Windows users (>= XP) use
only 32 bits depth color, so let's kill that engine. Less code to
maintain for me.
SVN revision: 72494
This reverts commit 72372.
I just don't get this commit, you just disabled the define that's
responsible of turning harfbuzz on. If you have a too old harfbuzz,
update, I don't plan on supporting old versions of an unreleased always
changing piece of sw.
SVN revision: 72393
for example , hb_shape_full function is supported only harfbuzz-20120607 version.
(harfbuzz 0.6 or 0.7 does not support this function)
but OT_SUPPORT define always turned on if harfbuzz installed.
SVN revision: 72372
This reverts commit 72080.
It broke everything. EFM stopped responding to mouse clicks, same with
clouseau. Seriously, completely broken.
SVN revision: 72093
For no bidi: just don't set the bidi stuff. I.e paragraph props and the
other stuff (including text_props_direction_set). If you disable BiDi you most
likely want to disable shaping as well.
For no shaping: Disable bidi (i.e don't set direction) and pass
EVAS_TEXT_PROPS_MODE_NONE to info create.
This will prove especially useful for textgrid, but not only.
SVN revision: 72032
Without it, it just assumes the object has no refcounts and deletes the
object by force. It's very bad if you use refcounts, because your refcounts
are gone.
SVN revision: 71936
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
NOTE: for people using Evas pipe rendering infrastructure. I am interested in reporting
expedite test before and after this patch with the associated type of CPU (number, thread,
cache). Thanks.
SVN revision: 71887
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
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
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
Currently, this feature is only supported in EGL/GLESv2 environment
with GL_IMG_multisampled_render_to_texture extension supported.
_____________________
from: (sanghee park) sh15.park@samsung.com
Dear all,
I compose this mail to ask reviewal this patch about multisampling on the evasgl.
I want to make multisampling capacity to enhance rendering quality of the evasgl.
But if MSAA is applied always, this have possibility lowering rendering performance,
I separated user's input level to high, mid, low, none.
If you want to test this patch, try to examine rendering qulity on EGL circumstance with multisampling level.
Plaese review it, and any suggestion will be appreciated.
Best Regards,
SangHee
SVN revision: 70992
- Cleanup cache2 things on shutdown
- Use Eina_File instead of straight shm_open + mmap when loading things from cserve2
- Do free the mapped images when we don't need them
SVN revision: 70936
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
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
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
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