This patch deprecates the following functions:
- evas_object_image_data_convert
- evas_object_image_pixels_import
- evas_object_image_reload
I could not find any place where they are used.
The old documentation is kept in the header, but not as a doxygen
anymore.
Those two functions were doing exactly the same thing[1], which
is free an image, so this commit only attempts to simplify the code
a little bit.
[1] Actually image_map_surface_free() might even not have worked
properly with cserve2 sw (calling unload instead of close).
Summary:
Introducing a new feature for Evas Textblock. This allows the layout to
wrap around other evas objects.
The following API is added:
- obstacle_add
- obstacle_del
- obstacle_update
Evas objects can now serve as textblock obstacles, if positioned and
visible on the text area. The text will wrap around the obstacles
according to the wrapping mode set to it.
This also modifies the current wrapping code to handle obstacle wrap
points as well. The wrap index query function is modified so that
forward-scanning (specific cases) may be disabled when treating
obstacle wrap point.
RTL text is currently unsupported by this feature.
Consult added docs and example for usage.
@feature
Test Plan: Evas example and test in evas_suite are provided with this.
Reviewers: tasn
Subscribers: raster, JackDanielZ, cedric
Differential Revision: https://phab.enlightenment.org/D2405
This is now like the other embedded scripts, where a verbatim
string is parsed. The syntax is now:
filters {
filter {
name: "filter0";
file: "filter.lua";
}
filter {
name: "filter1";
script {
blend {}
}
}
filter.file: "file.lua"; // name is "file.lua"
}
Thanks @raster for the quick review.
This includes proxies, 3d scenes and normal images.
There is still a problem as the GL engine returns NULL on
data_get.
This kinda goes against the EO API declaration as
eo_obj is used as a mutable argument, but internal data was
already modified before this patch.
TODO: Draw maps, filters, etc... in a dedicated surface to save
them as they truly are (ie. filtered images).
Summary: Gcc suggested parens around the truth value here, however
as some developers don't like overly used parens, just modify the code
slightly to not use an if on the assignment line.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Somehow I broke this when introducing the eo mixin.
This is what broke @cedric's work on the snapshot widget!
TODO: Verify that the contents changed, and not just X,Y.
For compatibility with previous behaviour and with what the doc
says, make sure default alpha is 255 and not 0.
This way color(0) is black and not transparent
Yeah that was totally overkill and pure laziness on my side.
Despite having the EO API for the filters still in beta,
I want to the EDC API and EDJ binary formats to stay compatible,
so let's get it right before the release :)
this is a less invasive solution for retrieving a keysym. X keysyms are
not portable, and so this function should not be used for any code which
is meant to run on other platforms.
@feature
For now these are generated externally by wayland-scanner and added here.
Also keep the original xml protocol file here for now.
This covers the client side for applications while the server side code
sits with E as compositor.
This updates it->x when visiting each item in the line layout code,
as it was always 0, even when it was used during item rollback.
Fortunately, in the above case a 0 value was actually expected, so
this does not actually affect current behavior.
This fix is mainly for consistency and future development.
This fixes a case with wrapping, where the text has a mixture of 'none'
and 'word' wrapping modes, and the layout function decides to
roll-back a few items.
The test case is added to the evas_suite.
This might not be a common case, or even a case we had defined a proper
behavior to, but since it causes an infinite loop, it needs to be fixed.
@fix
Summary:
Fixed eina_test_quaternion_conjugate and eina_test_quaternion_matrix which
were failing and also added the quaternion test in eina suite
Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2775
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
opaque value keeps previous image's value
when image data be changed by file_set/mmap_set api
@fix
Test Plan:
1) Make a evas rectangle object has color
2) Make a evas image object with jpg file.
3) Replace image data with png file by evas_object_image_file_set.
Reviewers: Hermet, cedric, jypark
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2774
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Let's assume we have a textblock with one paragraph at y = 3 and h = 50
At the moment, passing 60 (after the paragraph) to line_coord_set picks
the last line, however passing 0, just fails. This fixes that.
Thanks to Vladyslav Shevchenko for reporting it in D2574.
@fix
@fix
before we mapped these segmentsa read+write for the user or read+write
for EVERYONE if system. this now creates the file as r+w for the user
and +ro for everyone only IF system, and clients voluntarily map
read-only to avoid possible memory corrupting of pixels from the
client side. not more secure for clients, but nicer. defintiely more
secure for system services.
Thanks Stefan for the report.
I don't really like putting all those -DBLA_BETA or #define BLA_BETA
everywhere, though. Maybe the @beta flag is not required since the
EO APIs are still beta?
See: 0446619355
Summary: This was a file that should have been updated with
the bump to xdg_shell version 5 however it was not pushed with that
update.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Fix Coverity CID1302700 which reports a dereference before
null check. Basically, it is safe to call free() with a possible NULL
value so we can remove the 'if' check here.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Fix Coverity CID1308232 which reports that we may be passing
NULL to strcmp here as the function _parse_param_get May return NULL.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Elementary widgets dealing with Evas Events usually mask event_flags with
EVAS_EVENT_FLAG_ON_HOLD, to show that this event is already handled.
However, widget like Elm_Button, it does not handle EVAS_CALLBACK_MOUSE_DOWN directly,
but it handles Edje_Signal instead, so there's no chance to mask event_flags.
Developers can block event propagation by putting rectangle the very last part of EDC,
but this instruction can help the case making elementary widget with only Edje_Signal handling.
This is not required essentially, so please check the necessity of this function.
Reviewers: Hermet, cedric
Reviewed By: cedric
Subscribers: cedric, Hermet
Differential Revision: https://phab.enlightenment.org/D2764
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
In edje_embryo.c, there are the list for supported methods in script.
However, methods listed from line 175 to 188 don't exist actually.
This patch implements 4 methods among them.
set_mouse_events(part_id, ev)
get_mouse_events(part_id)
set_repeat_events(part_id, rep)
get_repeat_events(part_id)
Reviewers: Hermet, woohyun, cedric
Reviewed By: cedric
Subscribers: cedric, Hermet
Differential Revision: https://phab.enlightenment.org/D2766
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Fix a bug that happens when a Eolian C++ wrapper have no default
constructor (because it have obligatory constructing methods) and it is
being used as a return of a inheritance wrappers.
Switched to a conversion of the native type as the default return, instead
of a value initialized wrapper.
Reviewers: q66, felipealmeida
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2769
Otherwise there would be conflicts in certain circumstances.
This also requires adding const on many existing functions,
and similar work is necessary in Elementary.
@fix
This fixes parsing of floating point number with locales that use
a comma as decimal separator, as strtof/strtod follows locale
specific conventions.
@fix
The previous API supported stuff like "mask{'image1'}" but image1
is now not a valid buffer name, as it's only the proxy source name.
This patch fixes the buffer lookup.
Until we're happy with it, keep the API as beta.
The EDC support should not change, and the Lua either, but the
API could potentially still change to accomodate for new needs
(vector graphics, anyone?). If we're happy with the current
interface, then we can remove the @beta flags.
This flag should be set iif the string passed is to be executed
rather than assigned. This is used to pass complex arguments
as data, like tables (eg. color class).
Makes sure that buffers don't override already existing
globals vars such as 'mask' (a function name). Yeah, it happened
to me.
CC support is a little bit hackish. Need to find a better way.
Deep down internally there was already a name, but no API could
really set it properly.
Here Edje will set the name of the filter based on the part name
or the data item name if relevant.
This creates the new interface
Efl.Gfx.Filter
And the implementation is a mixin (evas_filter_mixin.c):
Evas.Filter
All the filter rendering code has now been moved to this
new file. TODO: Merge image filtering.
Use the file data {item, file} block to embed filters code.
It can become especially useful to keep the filters as separated
Lua files, that will be embedded in the final edj file.
@feature
This should preserve ABI stability with earlier versions of
edje_cc while still providing more advanced control over
proxy bindings for evas filters from EDC.
Also fix proxy binding for filters.
@feature
Reuse previous code for buffer. Keeps API stability.
The new class "color" is here for a more convenient color
representation. This way, colors can be represented in more
natural ways like: {r,g,b[,a]}, 0xaarrggbb, "red", "#rrggbb"
Class color is implemented in pure Lua, and adds a .lua file
to Evas' share folder.
This will improve the debug output of evas and specifically
allow setting "evas_filter" log level to a higher or lower
value depending on what you are debugging :)
Now we're ready to implement runtime changes to the filters'
state (color classes, edje state, etc...), as the Lua function
will be run whenver required.
This is to prepare the changeable states (animation, color, scale...)
- Remove use of Eina_Value (simplifies code)
- Use proper Lua type for buffers (with pretty __tostring)
This adds the buffer methods: width, height, type, name, source
This will allow changing the state of the filter and re-run it
without re-creating the Lua_State object. This is to handle size,
color, animation state and scale changes (amongst other things).
Summary:
get_geometry() method calls edje_object_part_geometry_get() internally,
and the type of its arguments is Evas_Coord. (typedef'ed integer)
However, comment says that method require Float type as its arguemnts,
and get_geometry() initializes Evas_Coord variables as 0.0.
This patch corrects type mismatching and comment.
@fix
Reviewers: Hermet
Subscribers: cedric, Hermet
Differential Revision: https://phab.enlightenment.org/D2754
if the object has been deleted already, scope data is null. handle it
correctly. this fixes a segv in the new efreetd when it starts and
there is an existing efreet running thus owning the socket fails.
@fix
spewing out errors for a failed dns lookup is not somehting to ERR out
in logs all the time. it is at best a debug log. the caller handles
the failed connect itself.
@fix
it is not an error. eina_module may be used on files that don't exist
and the caller may handle that as a "does not exist" error. it is not
good to go spewing out errors for this. it's debug at best.
@fix
Summary:
Using C++ wrapper types in the signature of methods of the generated
classes.
Now, when the type is an Eo type defined in Eolian, eolian_cxx will detect
it and use the equivalent C++ wrapper.
Types defined in Eolian no longer need to be specified in the lookup table,
so removed them from there.
Disable wrapping of non-const char*. The current wrapper (unique_ptr) is
not suited for some required operations like ownership acquisition from
C code.
Fix constructing properties that only have the "set" method.
Fix translation of non-const parameters.
Modified Makefiles to allow proper inclusion of evas_cxx headers required
by some tests and examples.
Move one auxiliary function to another reader to make it more accessible.
@feature
Reviewers: felipealmeida, q66, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2752
Since 8b62177561 make examples fails to build
as the examples have been included without checking if ecore_buffer is
actually enabled to build.
make[2]: *** No rule to make target '../../../src/lib/ecore_buffer/libecore_buffer.la', needed by 'ecore_buffer_example'. Stop.
I'm running make examples during the nightlies now in the hope to catch those.
this fixes warnings about no efreet dbus session bus in non session
environments as brought up on the mailing lists with:
Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: edje: unset
efreet cache update flag to prevent dbus connections
this moves all of efreetd client and server to ecore ipc, with client
auto-launching efreetd if not found as a service and trying for up to
500ms to connect. efreetd times out on last connection or no
connections after 10sec so it wont hang around forever if not in use.
it seems to work in my testing, so let me know if there is an issue.
@fix
@fix
XXX: Given EFL usage of objects, construction is a perfectly valid thing
to do. we shouldn't complain about it as handling a NULL obj creation is
the job of the caller. a perfect example here is ecore_con and ecore_ipc
where you create a con or ipc obj then set up type/destination/port and
the finalize of the constructor does the actual connect and thus this
fails or succeeds based on if service is there.
until there is a better solution - don't complain here.
Summary: As libinput has matured enough now, we can reduce the noise
in outputs logs by adjusting libinput log level priority
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a minor internal function to convert
DRM_MODE_SUBPIXEL values into something that the wayland protocol
supports.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This fixes T2465: QT5 apps don't work. The issue here is that
when the randr code runs in E we make calls to
ecore_drm_output_enable/disable which is supposed to register the
outputs with the wayland registry. This was not happening due to the
enable/disabled checks at the top of these functions.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: In order for wayland events to be processed properly, we
should be dispatching any pending events off of the queue First before
we make the call to flush.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This reverts commit 1edb35fff3.
Accessing symbols from other libs like this should never be done. The
consequences of this are not significant enough to do this; better solution
can be found but definitely not like this.
Summary:
Add NULL type check in output_free of evas fb engine.
If engine setup is failed,
Render_Engine wil be NULL so output_free also need to
handling NULL check.
Test Plan:
It needs specific condition to reproduce,
engine of ecore_evas is set to fb, and setup is failed,
then Render_Engine is NULL, but ecore_evas_free will call
output_free in fb engine's evas_engine.c
Reviewers: raster, cedric, Hermet
Reviewed By: Hermet
Subscribers: cedric, seoz, eagleeye, singh.amitesh
Differential Revision: https://phab.enlightenment.org/D2743
efreet_init began to be called with the addition of translatable strings,
but allowing dbus connections in edje (and thus edje-derived tools) will
result in errors when edje_init is called without a dbus connection available
Summary:
This is still work in progress. I've added new file for temporary
purpose. Idea is to first eoify everything then change its namespace properly.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2602
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Add the transition scale flag and the transtion scale value.
This flag can be change using "transition_scale_enable" in edje program.
If flag is true, the transition scale value affect the transition speed of edje
The transition scale value can be change by elm_config.
@feature
Test Plan: elementary_config
Reviewers: Hermet, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2287
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Ecore_Buffer is abstraction of graphic buffer.
it supports backend of shm, x11_dri2 and x11_dri3 for now,
and this library also provides method to share buffers between processes.
Ecore_Buffer_Provider and Ecore_Buffer_Consumer is for this, sharing buffer.
provider draws something in to Ecore_Buffer, and consumer receives and displays it.
the binary, bq_mgr is a connection maker for buffer provider and consumer.
it can be included Enlightenment as a deamon later.
@feature
Test Plan:
1. Configure with --enable-ecore-buffer and --enable-always-build-examples to build examples.
2. Run bq_mgr, it connects consumer and provider.
3. Run ecore_buffer_provider_example and ecore_buffer_consumer_example
Reviewers: lsj119, gwanglim, cedric, zmike, jpeg, raster, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2197
Summary:
After this commit 684c51360f it didn't work
Miss bind color pick texture to drawable data
@fix
Reviewers: Hermet, cedric
Reviewed By: cedric
Subscribers: cedric, Ievgen, se.osadchy
Differential Revision: https://phab.enlightenment.org/D2724
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: Coverity reports that this potentially is passing a NULL
pointer to strcmp. As the GETSTR macro Can possible return NULL we
should be checking that return before passing it to strcmp.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Coverity reports that eina_thread_queue_wait was returning
NULL and thus msg variable being used here causes dereferencing a null
pointer.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This cleans up the _ecore_event_evas_mouse_button function.
Coverity was reporting that the state tests in the 'if' function could
not be be reached due to eel variable being null. This moves the if
(!eel) check to run before the state tests.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This cleans up nasty compiler warnings when building the
gl_drm engine. If we do not define EGL_EGLEXT_PROTOTYPES then we end
up with implicit declaration warnings
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This is heavily based on a patch by Vincent Torri. I just refactored it
a bit so it doesn't break ABI on Linux, only on Windows (where it was
broken anyway).
This patch changes things so on Windows, functions are looked up only
based on their name. Because of the indirection (and export/import
tables) windows does, this is the only reasonable way to make it work.
You should always use curly brackets. Especially when the inside statement
has its own curlys. This can be confusing and has already lead to bugs in
many projects.
The tag identifier should not be inside of the string "~".
Previous logic doesn't care that scenario,
the parser context can be corrupted and it will be no more useful.
@fix
This example just prints tag and it's attributes in xml file.
But this example intended for the scenario,
if the attributes have the "<" or" >" characters inside of the string.
Summary:
Previous implementation used mouse_handler to create mouse events from touch
events if the device was grabbed and no emulated mouse events were emitted by X server.
However the same functionality could be achieved by using multi_handler with
additional condition on grabbed devices.
Test Plan: elementary_test -> Multitouch
Reviewers: cedric, raster, devilhorns
Subscribers: seoz, cedric
Differential Revision: https://phab.enlightenment.org/D2700
Summary: Cube chaotic was rotated, because angle in structure of "SceneData" have random number.
Reviewers: cedric, Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2643
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: Seems some platforms (my setup here at least) don't have EGL
configs which suppose GBM_FORMAT_XRGB8888, so default to ARGB
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This change adds support for using EGL_MESA_platform_gbm to
get the display directly from gbm and to create a window surface
(usable by egl) directly from the gbm surface.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Added test cases for all the functions related to fixed point matrix
Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2701
Summary:
Add "playable" property to Efl.Player.
It should be used to check if the currently loaded data can be
played.
Reviewers: tasn, felipealmeida, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2704
If ecore get the mouse cancel event(ex: display off, or window stack change) from below, we need to deal with.
Currently, evas also generates up event using evas_event_feed_mouse_cancel function when window hide is called.
if cancel event occurs, ecore also call evas_event_mouse_feed_cancel like window hide situation.
cancel event means all button or touch event should be canceled, but in the future, if we need to deal each cancel event according to touch point,
we need to add api like evas_event_feed_multi_cancel
@feature
Summary: Add null check for glGetString version check and evgl_engine
Test Plan: Local tests
Reviewers: jpeg
Reviewed By: jpeg
Subscribers: wonsik, cedric
Differential Revision: https://phab.enlightenment.org/D2699
This should fix the build after make clean.
Even though those .x files can be re-generated at compile time, they
are checked in in Git and shipped in tarballs. They must not be removed
during make clean.
Thanks Ross Vandegrift for the report.
@fix
Summary:
When evas is recreated, this static variable value remains,
so it references already freed memory.
Test Plan: Local tests
Reviewers: cedric, jpeg
Reviewed By: jpeg
Subscribers: wonsik, mer.kim, cedric
Differential Revision: https://phab.enlightenment.org/D2678
Those objects should never be rendered on the canvas, even if they
are visible. On the other hand, they need to be rendered in mask or
proxy surfaces.
note: this patch includes some extra whitespaces changes :(
@feature
Since masking, for performance and themeing reasons, it becomes
interesting to be able to switch clippers on the fly. In particular,
switching from an IMAGE mask to a standard RECT clipper can save a
lot of power when masking is not required.
This new flag "description.clip_to" will behave a bit like a mix of
rel.to and visible:
- It points to a part by name, just like part.clip_to. This will
override the clipper set by the part, or override the default clipper.
- Like "visible", it can not be interpolated between two values, so
it will switch only at the end of a transition.
- By default there is no clip override, which means Edje will fallback
to the part's clipper, if any, or the base (group's) clipper.
NOTE:
- Since a clipper that does not clip anything becomes a standard object,
it is visible and rendered. This will in 99.999% cases not be the
intended behaviour. Currently we can simply use a transparent RECT
in order to always have something clipped by the clipper, but this is
a hack and this will trigger rendering of masks in their surfaces even
when they are not actually used.
Ideally, there should be a flag indicating to Edje & Evas that an object
should be considered a clipper in all situations, and never be rendered
on screen.
TODO:
- Support Edje Edit
- Add Embryo & Lua functions
- Add support in edje_convert
- Add Edje/Evas flag to mark objects as "no_render"
@feature
Summary: This cleans up the gl-drm engine code a bit and avoids the
need to constantly destroy and recreate the gbm device itself. This
also adds checks during Outbuf create to handle the swap_mode as per
previously added enum.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds an enum we can use for setting/determining the
swap_mode to use for the gl_drm engine
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Evas_event_feed_mouse_cancel generates mouse up event if it meets situation witch mouse should be canceled.
but app also have to know this information. I add cancel information into evas up event generated by cancel function.
@fix
Summary:
Size may be zero while allocating interfaces private data,
when NULL is passed in EVAS_SMART_SUBCLASS_IFACE_NEW for ifaces argument.
If size is 0, then malloc() returns either NULL, or a unique pointer
value that can later be successfully passed to free(). It is implementation
dependent. This case would be likely to occur in case of smart classes with
no interfaces.
@fix
Signed-off-by: Vaibhav Gupta <g.vaibhav1@samsung.com>
Reviewers: raster, Hermet, tasn, cedric
Subscribers: SanghyeonLee, sachin.dev, singh.amitesh, cedric
Differential Revision: https://phab.enlightenment.org/D2679
When doing blur from alpha to rgba, there was an extra copy
step added, that was not required.
This should improve the performance a little bit in this situation.