This is a simple API that implements colors for the borders specified by
emotion_object_border_set(), using a background rectangle behind the
emotion object.
SVN revision: 63415
The emotion_object_border_set/get APIs were added, allowing one to
specify a positive (border) or negative (crop) value for each of the
edjes of the video being played. This allows easier setup on an Emotion
object to keep the aspect ratio, either by adding black areas on it, or
by cropping the exceding area of the video.
NOTE: The specified border/crop is based on the original size of the
video. If it is scaled (emotion object size is different from the video
size), the borders will be scaled as well.
Patch based on an original patch sent by
Hugo Camboulive <hugo.camboulive@gmail.com>.
SVN revision: 63414
NB: Xcb has no support (yet) for dealing with xrdb (Xresource
database), so add a simple parser to read an .Xdefaults file and get
things like xft.dpi.
SVN revision: 63297
Comparing software-sdl and software-16-sdl showed many small differences
this makes both engines' code much more alike.
The software-16-sdl was especially buggy, hopefully, this should make
it just as stable as the software-sdl engine.
SVN revision: 63248
These options must be set on the player even if there's no file opened
yet. Thus, just postpone the related commands to when the player has
opened the file already.
SVN revision: 63234
Move the frame drop counter to the shared memory object, so the player
can check its value and not send new frames if we didn't "consume" the
previous one.
Also move the triple buffering pointer changing to the display function,
so it will only lock once when accessing the critical region.
SVN revision: 63220
Note: this function help keep a jump table so we reduce
the need to walk over the complete list to insert one
element. It's of course doesn't make it an O(log(n)) in
access time, but it increase it's cost more slowly.
With 10000 items, you can count around 50 pointers
dereferencing and with with 50000 items around 200 pointers
dereferencing.
Of course the comparison stay in O(log(n)).
SVN revision: 63213
Otherwise if we try to call file_set(<some file>) after file_set(NULL),
it will send a close command to the player for an already closed file.
Also make the example cycle through the list of movies, but still
passing through a NULL file when reaching one of the ends of the list.
SVN revision: 63208
These values need to be reset as soon as a new file is set, otherwise
they can give wrong information to evas about the size of pixels to
render.
SVN revision: 63205
Note: this help the driver to know that we don't it
to swizzle back the pixel from GPU format, because we
are going to replace all pixels.
SVN revision: 63201
Now the player will have the stdin and stdout available for anything
else, and there's no need to make line-buffering with ecore_exe anymore.
SVN revision: 63198
It now checks if was possible to get the shared memory, and returns true
or false. This will command will also be used later to return false for
file opening no matter what was the problem, and maybe the int parameter
will indicate the type of error.
SVN revision: 63197
The problem was that our rbtree implementation doesn't support chaining
duplicates and with no fonts, all the paragraphs had the same y coord (0).
Changing the paragraph index to work on line_no for sorting fixes it,
as line numbers are also correct when there are no fonts.
Thanks a lot to KaKaRoTo for letting me know about this issue.
SVN revision: 63188
Previous commit to disable VLC messed everything, so this one fixes it doing:
- remove old src/modules/vlc and related.
- add EMOTION_CHECK_GENERIC_PLAYER() m4 macro
- change previous EMOTION_BUILD_VLC to EMOTION_BUILD_GENERIC_VLC
SVN revision: 63140
use eina_log instead of weirdo printfs... multiple levels, greatness
everywhere... helped me debug emotion's warning.
It is always a pain to try to use library log and notice they are not
using their own standards :-/
export EINA_LOG_LEVELS=eina_prefix:4
SVN revision: 63108
The "pixels" pointer was set in the beginning of evas_object_image_render(),
and never updated, even after pixels_get() changed the content of
o->engine_data.
This patch updates that pointer if it becomes different from engine_data.
SVN revision: 63090
Move players from $bindir to $libdir/emotion/utils and find them with
eina_prefix. I was willing to play with this prefix thing, quite nice
;-)
SVN revision: 63077
Emotion explores some different paths in Evas pipeline as it changes
image pixels frequently and sometimes uses different
colorspaces. Let's change if it's all working fine using a nice proxy
effect that mirrors the playing video.
emotion_test --reflex <video.avi>
SVN revision: 63071
This generic player backend executes a separate player in another
process. It receives the bytes to be drawn on the emotion object through
a shared memory, and communicates with the player through a pipe, using
the player standard input/output.
The player must communicate with emotion using the defined commands
specified in the Emotion_Generic_Plugin.h. It doesn't need to link
against emotion, just include this file for easier implementation.
This implementation was sponsored by Zodiac Aerospace.
SVN revision: 63062
multi-touch devices to xcb.
Remove dead code.
Add missing flush calls after change_window_attributes.
Quiet down the event code by commenting out some LOGFN's.
Make selection event code more like Xlib.
Add missing flush calls after send_event.
SVN revision: 63009
NOTE: edje is getting slow this day, please be carefull
when you add code to make it clean and fast. We soon
will require to go after some of this issue. Need to see
why application doing nothing are using 7% of my CPU
(mostly in edje).
SVN revision: 62993
Actually, basic logic is same,
but added the touch down info structure to store down timestamp (and window, event window...) for each device.
SVN revision: 62980
an obj is already queued we dont push it FURTHEr down the queue if
smart recalc is enabled. now at least we keep order of operation/calc
correctly!
SVN revision: 62944
Subject: [E-devel] patch : eina_prefix + elementary_test
please find attached a small patch for eina_prefix
it prevent segfault when for instance
no elm_app_compile_*_dir_set is called prior to elm_app_info_set
and another one for elementary/src/bin/test*.c which tends to replace
usage of PACKAGE_DATA_DIR with elm_app_data_dir_get
SVN revision: 62795
Now, smart callback is prepended among the same priorities. After the
discussion with hermet and raster.
I fixed this because I think it's better keeping the default behavior
even we have new priority option. This is for evas backward
compatibility and for the world peace. Although I know there is no
official policy and it's not recommended to rely on the smart callback
calling sequence in application, I really hope evas needs to have
compatibility. Otherwise we need to adopt the new policy in next
version of evas.
SVN revision: 62792
Hi all,
I've fixed a minor bug in the ecore_evas_gl_x11_pre_post_swap_callback_set API.
It wasn't setting a post_swap callback properly.
Please review it.
BR,
SVN revision: 62785
Subject: [E-devel] [PATCH] add elm_entry_input_panel_layout_set API
elm_entry_input_panel_layout_set API is high level API to call
ecore_imf_context_input_panel_layout_set (through edje).
This API will be used to set layout of input panel (such as URL, Email,
Number layout...) by application programmer.
Would you please review this patch?
Please let me know if I have to do more.
SVN revision: 62782
Subject: [E-devel] [Review] [Patch] Evas_GL bug fixes/updates
I've fixed some minor issues that I've been pushing off for later.
The patch does the following:
1. Evas_GL and Evas had an issue where the viewport parameters were
being reset in the wrong context. Previously, this issue was temporarily
patched by flushing evas' pipeline and setting
evas_gl_common_context_use(NULL) in EvasGL's
make current. I know, it was pretty hacky. It turns out that in
evas_engine,
there was a code evas_gl_common_context_resize(NULL) without doing
eng_window_use() first. So i've added that part and problem went was
resolved properly. :-)
2. Naturally, I've taken out the temporary patch from 1.
3. I've added code that took care of glBindFramebuffer(..., fbo) where
the
fbo had to be saved and restored in case the user wanted to use his
own fbo.
Also, I've had to take care of the case when fbo is 0 since 0 need to
point
to evas_gl surface.
4. I've updated make_current a little as well.
SVN revision: 62780
Subject: [E-devel] [Patch] evas gl engine's texture creation
Hello.
1. _pool_tex_dynamic_new function, it didnt set pt to NULL when secsym_eglCreateImage function failed.
In this case, it returns wrong pt pointer and it has possibility to make crash.
So I add free pt code and return NULL code into _pool_tex_dynamic_new function.
2. I modified eng_image_data_get of gl engine.
If Evas_GL_Image's texture creation failed and evas_gl_image's cache image was droped,
Im->im can be NULL. So I add check code.
Example: evas_gl_common_image_content_hint_set
1) EVAS_IMAGE_CONTENT_HINT_DYNAMIC , it drop cache image
2) if evas_gl_common_texture_dynamic_new failed
3) then, im->im =NULL, im->tex=NULL
In this situation, if application call's evas_object_image_data_get function,
It make crash in evas_cache_image_load_data function.
3. I think function's related with evas_object's engine data have to be return NULL if it failed.
If function's returns null, evas object code can handle error more easily.
But evas object's code was implemented differently each case. Does my suggestion right?
I add engine data null check code to evas_object_image based on upper consumtion.
If it is wrong , the patch code related with evas object image have to be removed.
If it is right , I will survey other evas object type also.
SVN revision: 62775
Sometimes, gif loader can miss some previous frame.
In that case, display can be dirty.
If frame N loaded without N-1 make these problem.
I fixed this problem.
And I modified wrong document.
SVN revision: 62712
The goal is to provide an easy way to do the kind of effect you see in that video
around 00:36 : http://www.youtube.com/watch?v=KVoVLHh8CHc.
At that time it was really difficult to do such thing and required a lot of
embryo code, we designed limit with Billiob to be able to do such kind of things
much more easily.
NOTE: so Billiob, now nothing stop you from releasing amsn2 ! ;-)
SVN revision: 62701
(like xlib has). Remove some fixme's (implement error checking for a
few functions).
NB: While this code makes ecore_x_window_root_list work like the xlib
version does (ability to use xprint to get list), I highly recommend
building ecore without xprint support (--disable-ecore-x-xprint)
because this seems like a lot of work to go through to get the window
root list. Building without xprint support provides a faster code path.
SVN revision: 62696
SPANK SPANK, they broke compilation. Please use the builtin revert
functions when you revert commits. Either:
GIT: 'git revert <commit hash>' (yeah, git is better).
or
SVN: 'svn merge -c <revision> .'
This will prevent this kind of erros from happenning in the future.
Also, plesae compile before committing.
SVN revision: 62678
Original _edje_part_recalc_single_text() was not working as
expected since it was not doing size fit, range, ellipsis and so
on.
The purpose of this function compared with
_edje_text_recalc_apply() is to be faster, not calling Evas update
functions. However for text this is quite difficult given that to
fit we need to set the font, size, style, etc. If it was done
correctly, we'd save some calls to move and some color sets,
however those shouldn't matter much in the overall picture.
I've changed this to force applying the value, it should be more
correct and not so slow. The previous code is kept below for
reference but should be removed before next release!
SVN revision: 62640