Commit Graph

2553 Commits

Author SHA1 Message Date
Marcel Hollerbach 17e60a5585 evas_3d: stop just segfaulting straight away
Summary:
there have been wrong function calls, that did not work at all, since
the function pointer had the wrong type. This fixes the segfaulting
examples of evas3d. However, they still do not render, at least, they
don't crash anymore.

Depends on D8381

Reviewers: cedric, segfaultxavi, zmike, stefan_schmidt

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8382
2019-03-26 10:09:42 -04:00
Christopher Michael 0d63743be9 evas drm: Implement support for outbuf_idle_flush 2019-03-22 12:42:39 -04:00
Christopher Michael 3dfec81be1 evas drm: Implement support for damage_region_set
Summary:
This patch implements engine support for outbuf_damage_region_set that
we can use to mark a framebuffer as being dirty, and to set the dirty
regions on that framebuffer.

ref T7690
Depends on D8403

Reviewers: raster, cedric, zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7690

Differential Revision: https://phab.enlightenment.org/D8404
2019-03-22 12:41:47 -04:00
Christopher Michael 745de87c78 evas drm: Fix software output rotation
Summary:
Don't use redraws_clear to handle buffer swapping. Buffer swapping
should be done on outbuf_flush. This patch fixes evas drm software
output rotation (along with other patches in the series).

ref T7690

@fix
Depends on D8402

Reviewers: raster, cedric, zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7690

Differential Revision: https://phab.enlightenment.org/D8403
2019-03-22 12:41:43 -04:00
Christopher Michael 95ae131502 evas drm: Don't use eng_output_resize or redraws clear
Summary:
We don't need to use eng_output_resize in this engine as
eng_output_update will take care of that. Also, don't use
redraws_clear to handle buffer swapping. This is part one of software
rotation fixes.

ref T7690

@fix
Depends on D8116

Reviewers: raster, cedric, zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7690

Differential Revision: https://phab.enlightenment.org/D8402
2019-03-22 12:41:38 -04:00
Jiyoun Park 9a700c92a7 evas_gl_generic: fix wrong gl context set
example:
...
im=evas_object_image_add()
evas_gl_surface_create
...
evas_object_image_native_surface_set(im, xx)-> MAIN CONTEXT
evas_gl_make_current -> CONTEXT A
.....
evas_object_image_size_set(im, x,x) ->WRONG CONTEXT A

evas_object_image_size_set of image have native_surface finally calls
eng_image_size_set function of gl_generic.

eng_image_size_set cannot get the proper context related with
evas_gl_common_image_native_enable.
It ruined gl context and texture of main context has gone wrong.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8338
2019-03-15 09:27:51 -07:00
Hermet Park d45e3df689 evas vg: replace to eina_file instance caching by vg.
Here is a replacement to use eina_file from a vg obj instance
to map file data by vg loaders.

This brings a benefit that integrated access to load data
between vg object and vg loaders.
2019-03-12 12:58:31 +09:00
Daniel Kolesa d3c5384cd0 eolian: enable checking of beta/stable contexts in all classes
Summary:
This enables all the checks unconditionally, without ignoring
classes that don't have an Efl namespace. This required a lot
of beta marking to make it build. It most likely doesn't
mark types correctly, as that is not fully enabled yet.

Reviewers: zmike, cedric, segfaultxavi, bu5hm4n

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8266
2019-03-11 13:42:29 +01:00
Mike Blumenkrantz 58fb597acc Revert "Emile: Move colorspaces to Efl.Gfx"
This reverts commit 0d41ad0c83.

stop defining legacy types to eo types!!!!
https://i.redd.it/95mmznk5wo021.gif

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8243
2019-03-08 12:06:20 -08:00
Christopher Michael f5fed8764d evas-gl-drm: Fix issue of rotation not actually rotating
When we call evas_outbuf_reconfigure (when rotation changes), we need
to update the Outbuf with new values for width, height, rotation, etc.
Failing to do this here causes any rotations applied to the engine to
fail.

ref T7690

@fix

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8109
2019-03-06 11:34:51 -08:00
Mike Blumenkrantz 6b046ec845 efl.gfx: remove Efl.Gfx.Image_Load_Error
Summary:
this is now implemented through Eina.Error

ref T7718

Depends on D8066

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl_api

Maniphest Tasks: T7718

Differential Revision: https://phab.enlightenment.org/D8067
2019-03-04 13:36:57 -05:00
Carsten Haitzler b9049925f3 evas gl - swap with damage - look for KHR extn string too
as per shortlog - look for KHR in addition to EXT for swap with damage
region extn detection.
2019-02-28 11:14:56 +00:00
Marcel Hollerbach b805f11c89 build: next attempt to fix build race condition
the source should be used in the dependency. However, only the generated
header source, not the .c files or we will get duplicated sources.

This is another attempt to fix the build OSX travis failure

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7896
2019-02-08 15:48:02 +01:00
Marcel Hollerbach 7ef793e7ef build: fix macos race condition
There was the problem that evas_ector_software_buffer.eo was not arround
but required by the gl_generic engine, this fixes that by adding the
generated source and dependencies to the software_generic dependency.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7871
2019-02-04 11:08:03 +01:00
Vincent Torri f7c560c311 replace hton and ntoh family functions with ones defined in eina
Summary: This fixes especially the execution of edje_cc on Windows

Test Plan: execution of edje_cc

Reviewers: cedric, raster

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7834
2019-02-01 14:25:35 +00:00
Marcel Hollerbach 4e0079eaa9 meson: fix race condition in building
the error
```
./src/modules/evas/engines/gl_generic/../software_generic/evas_ector_software.h:31:10: fatal error: 'evas_ector_software_buffer.eo.h' file not found
```
Came up when building efl on osx with meson. This is caused by the fact that gl_generic was build before the .eo files of evas_ector have been created in software_generic, this fixes this race condition by adding a new dependency to avoid that.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7831
2019-01-30 18:16:47 +01:00
Marcel Hollerbach e59603ee4c Revert "meson: fix race condition in building"
This reverts commit e1f3a4232e.

git push on the wrong branch - sorry
2019-01-30 17:07:08 +01:00
Marcel Hollerbach e1f3a4232e meson: fix race condition in building
this came up on travis with osx. However, it should hit everyone, and
its questionable why it did not happened ever before.

Differential Revision: https://phab.enlightenment.org/D7831
2019-01-30 17:06:34 +01:00
Marcel Hollerbach 34efdfb1b1 efl: convert all classes to the new eolian syntax
ref T7459

Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7684
2019-01-18 16:31:26 +01:00
Daniel Kolesa b1ee0f3acd evas/engines/gl_generic: remove multiclass inheritance
evas_ector_gl_buffer/evas_ector_gl_image_buffer contained a regular
class in extensions list, which is wrong.
2019-01-16 20:00:16 +01:00
Carsten Haitzler 3511b96448 emile+ tgv saver - stop using deprecated lz4 functions to remove warnings 2019-01-15 12:39:21 +00:00
Ali Alzyod f78ef852da optimize glyph images data copy into 4 byte aligned images
Differential Revision: https://phab.enlightenment.org/D7461
2019-01-10 13:05:17 -06:00
Hermet Park 07521f5e07 evas vg: refactor internal function name.
Specify explict svg name in vg common function
since the function totally depends on svg spec.

No logic changes.
2019-01-09 14:59:01 +09:00
Derek Foreman 70b16099a9 gl_drm: use dlsym looked up symbol for extension check
We looked this up with dlsym, so I guess we should use that even though
the direct call seems to work just fine most of the time.

Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7433
2018-12-14 10:29:55 -06:00
Hermet Park fbe92aa67f evas ector: add software implmentation for masking feature.
This implementation uses Ector_Buffer to generate mask image from vg container,
and pass it to Ector engine. Ector renderer could blend this image as a mask.
Yet only vg container works as a mask, we could extend shape to support masking later.

Still vector gl drawing is not completed, We use software ector buffer to draw on it.
This is on progessing.
2018-12-07 19:50:08 +09:00
Hermet Park 950059ce9a evas vg: revise basic vg cache logic.
There was a big trouble that vg cache didn't free cached data properly.
Plus, there was a unnecessary copy of vg tree data.

This revised version is a improvement of our evas vg cache
in stable and optmization.
2018-12-07 19:08:34 +09:00
Hermet Park 093e32a0fb evas vg: code refactoring.
keep internal variable and structre names consisteny.
no logical changes.
2018-12-07 17:14:15 +09:00
Hermet Park c435cdf173 evas ector: use proper prefix name 2018-12-04 13:55:29 +09:00
Marcel Hollerbach c1dd57d210 meson: use eolian_gen with -S
this ensures that eolian does not parse installed .eo files

Differential Revision: https://phab.enlightenment.org/D7405
2018-12-03 19:00:26 +01:00
Hermet Park 8453b06bf8 evas gl: Remove single-line pipe code of gl commands.
Summary:
GLPIPES is proved to use since it's been used for many years as the default.
On the other hand, single-line routine hans't, acutally it's not maintained properly.
Even this single-line routine doesn't compileable right moment.

This patch is one refactoring to clean up code that's not valuable to maintain.

Reviewers: #committers, raster, cedric, ManMower

Reviewed By: #committers, ManMower

Subscribers: ManMower, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7328
2018-11-30 13:30:15 +09:00
Hermet Park c71a561997 evas gl: recover current program state.
Summary:
When we meets a new shader program in shape_context_push(),
it loads a shader binary, if it is necessary, create a new program for the shader.

In this step, the current program state could changed to this new one.
But still our gl context by shader_flush() could keep the previous program for next shader flush.

But it doens't know current program was changed by dropping by.

Here is a simple scenario:

1. evas_gl_common_context_image_push():
This image requires Program A. it calls evas_gl_common_context_push() internally.
then shader_array_flush() instantly.
It stores the current context including shader program(Program A)

2. evas_gl_common_context_xxx_push():
call evas_gl_common_shader_program_get().
xxx draws first time, it loads a new shader program.
Now this changed the current program to a new instant one.

...

3. shader_array_flush():
draw image which requires Prorgam A (No.1).
Unfortunately, stored context is same to this.
So, it skips some gl context setting including shader program.

@fix

Reviewers: #committers

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7309
2018-11-27 11:25:13 +09:00
Carsten Haitzler 91184f7324 evas gl - shader cache - warn - use bigger buffer to avoid trunc warn 2018-11-09 11:44:00 +00:00
Carsten Haitzler df5702a609 evas sw x11 - warn - use void ptr for error handler
warnings now are being super picky with:

../src/modules/evas/engines/software_x11/evas_xlib_buffer.c: In
function ‘evas_software_xlib_x_output_buffer_new’:
../src/modules/evas/engines/software_x11/evas_xlib_buffer.c:306:56:
warning: cast between incompatible function types from ‘void
(*)(Display *, XErrorEvent *)’ {aka ‘void (*)(struct _XDisplay *,
struct <anonymous> *)’} to ‘int (*)(Display *, XErrorEvent *)’ {aka
‘int (*)(struct _XDisplay *, struct <anonymous> *)’}
[-Wcast-function-type]
                                  ph = XSetErrorHandler((XErrorHandler)

can we really match a struct <anonymous> somehow? i don't think so...
so... void to the rescue.
2018-11-09 11:44:00 +00:00
Carsten Haitzler 143bef348f evas gl extn sym finding - warn - use void catss for no more warns
so gcc now is being very picky about types. since we'r ereallyjast
throwing void *'s around for pointers to funcs and looking them up by
hand - use void *'s to avoid warnings.
2018-11-09 11:44:00 +00:00
Carsten Haitzler a447bbd489 evas blur filter - fix warnigns about unused labels
if no asm is defined.. then you hit this.
2018-11-09 11:43:59 +00:00
Carsten Haitzler e7771438a2 evas gl engines - avoid getting context if possible
so getting context at least on some dviers is expensive. it may really
impact cpu usage a lot (in this cate getpid() was being called by the
nouveau drivers and that can be expensive. it is on ARM as it's a full
syscall and 1-2% of cpu time was just getting pid all the time thanks
to this...

@opt
2018-11-09 11:43:58 +00:00
Daniel Kolesa 5a3d79d383 meson: add eolian custom dependencies support
This uses the meson/ninja depfile functionality + eolian to make
sure proper dependencies between generated files and .eo files
are managed, to ensure consistent re-generation of all generated
files that are affected upon .eo file modification.

For custom rules with multiple outputs, Ninja currently does not
support depfiles. Therefore, split those into two custom rules
so that the depfiles functionality can be enabled. While this
is ugly and slows down the process a little by having to invoke
Eolian twice instead of once, it has to be done and it's still
better than what we had in Autotools anyway.

Differential revision: D7187

Fixes T6700.
2018-10-24 12:02:55 +02:00
Marcel Hollerbach d3122474d4 meson: link gl_drm to gdm
gl_drm uses that - this was forgotten. Sorry.

Reported by ApBBB.
2018-10-13 12:10:39 +02:00
Carsten Haitzler 01109a8c7b glx extns - check client and server extns
in case... client should be a superset...
2018-10-11 16:25:06 +01:00
Carsten Haitzler 76725b2d3b evas gl x11 - add working measure funcs for debugging performance 2018-10-11 16:25:06 +01:00
Marcel Hollerbach 46d464e5bf here comes meson
a new shiny buildtool that currently completes in the total of ~ 4 min..
1 min. conf time
2:30 min. build time
Where autotools takes:
1:50 min. conf time
3:40 min. build time.

meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read.

Further informations can be gathered from the README.meson

Right now, bindings & windows support are missing.

It is highly recommented to use meson 0.48 due to optimizations in meson
that reduced the time the meson call would need.

Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>

Differential Revision: https://phab.enlightenment.org/D7012
Depends on D7011
2018-10-02 17:22:50 +02:00
Hermet Park 431c8cc090 evas gl: fix invalid image size.
Summary:
When we reset of texture for a valid object,
this object cache size become -1 x -1 with null texture.

Later, we reset a new texture of the object,
Its texture size could be -1 x -1.
That brings to incorrect result drawing.

Can't see any points of using cache size there.

This bug was introduced by 9e01cf2698

@fix

Reviewers: #committers, raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7077
2018-10-01 21:07:07 +09:00
Derek Foreman b5b7e6a0e6 wayland_egl: Fix drop shadows on radeon
Summary:
We're doing this all wrong.

We've asking for "at least 1 bit" of A, R, G, B color depth.

ARGB2101010 fits that nicely, so mesa on radeon gives it to us.

This only fixes the drop shadows though, it's entirely possible that
a fullscreen window without alpha would get ARGB2101010 instead of
XRGB8888, so this code probably needs a rethink for multiple engines.

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7022
2018-09-11 12:22:06 -04:00
Hermet Park 423d8a2296 evas image: fix a bug in image preloading.
Summary:
Current preloading is too buggy since it's on thread-based.
This is a fundamental improvement to fix a bug.

The critical issue here is,
When preloading img object suddenly cancel its preloading,
the object possibly cannot render image next then because
renderer doesn't have any idea when async cancelling is
finished. Renderer just tries to render regardless of
image loading status, and this could occur no-texture(in gl case)
image object.

So, here improvement is, adding a notification for async cancelled
so that putting img objects to redraw images properly after their preloading is
cancelled.

The best scenario to reproduce this bug is this one.

Evas_Object *img2 = evas_object_image_filled_add(evas);
evas_object_image_file_set(img2, "test.jpg", NULL);
evas_object_image_preload(img2, EINA_FALSE);
evas_object_resize(img2, 200, 200);
evas_object_show(img2);

Evas_Object *img = evas_object_image_filled_add(evas);
evas_object_image_file_set(img, "test.jpg", NULL);
evas_object_image_preload(img, EINA_FALSE);
evas_object_move(img, 200, 200);
evas_object_resize(img, 200, 200);
evas_object_show(img);

evas_object_image_preload(img2, EINA_TRUE);
If you run this on gl backend, occasionally happens rendering fail.

Yet there other bugs on preloading feature....

@fix

Reviewers: #committers, raster

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6919
2018-09-03 17:12:55 +09:00
Chris Michael d05ddaba62 evas-eglfs: Remove cserve2 support
Summary:
ref T7226

Depends on D6932

Reviewers: raster, cedric, zmike, Hermet

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6933
2018-08-30 13:45:01 +09:00
Chris Michael 96a46ea944 evas-gl-drm: Remove cserve2 support
Summary:
ref T7226

Depends on D6931

Reviewers: raster, cedric, zmike, Hermet

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6932
2018-08-30 13:44:30 +09:00
Chris Michael d3eaf330f6 evas-gl-x11: Remove cserve2 support
Summary:
ref T7226

Depends on D6930

Reviewers: raster, cedric, zmike, Hermet

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6931
2018-08-30 13:43:49 +09:00
Chris Michael 38ee4167bc evas-software-genereric: Remove cserve2 support
ref T7226

Depends on D6929
2018-08-30 13:42:55 +09:00
Chris Michael 4e2287ecaf evas-gl-common: Remove cserve2 support
ref T7226

Depends on D6927
2018-08-30 13:39:31 +09:00
Chris Micheal e800139953 evas-gl-generic: Remove cserve2 support
ref T7226

Depends on D6925
2018-08-30 13:34:57 +09:00
Hermet Park 54f2a554da evas cache: refactor internal logic.
Summary:
Adding cache targets in other modules are inproper.
This can't be managed by cache module inside.

One representive scenario is,
when preload cancel is triggered, preload canceling sequence
can't be performed properly because cache targets implicitly were
increased by backend modules.

And then, Cache itself couldn't get notified it.
see this condition.

if ((!ie->targets) && (ie->preload) && (!ie->flags.pending))
in _evas_cache_image_entry_preload_remove()

Consequently, I move preloaded callbacks to sync with adding cache targets,
not to add by backed engines themselves.

This will bring Cache to manage cache targets properly.

Reviewers: #committers, raster

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6912
2018-08-30 13:26:06 +09:00
Chris Michael ad9e13ea56 evas-software-x11: Remove cserve2 support
Summary:
ref T7226

Depends on D6928

Reviewers: raster, cedric, zmike, Hermet

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6929
2018-08-30 13:25:05 +09:00
Chris Michael 65a36bee2b evas-buffer: Remove cserve2 support
Summary:
ref T7226

Depends on D6926

Reviewers: raster, cedric, zmike, Hermet

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6927
2018-08-30 13:23:23 +09:00
Chris Michael 2d9168e956 evas-wayland-egl: Remove cserve2 support
Summary:
ref T7226

Depends on D6924

Reviewers: raster, cedric, zmike, Hermet

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6925
2018-08-30 13:22:34 +09:00
Chris Michael ea857a500f evas-wayland-shm: Remove cserve2 support
Summary:
ref T7226

Depends on D6923

Reviewers: raster, cedric, zmike, Hermet

Reviewed By: Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6924
2018-08-30 13:21:27 +09:00
Chris Michael 7313e6973e evas_drm: Remove cserve2 support
Summary: ref T7226

Reviewers: raster, cedric, zmike, Hermet

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7226

Differential Revision: https://phab.enlightenment.org/D6923
2018-08-30 13:19:41 +09:00
Hermet Park 4e1553905c evas cache: remove unused custom task in preload.
Summary:
That redundant code just made code complex.

This is one of intermediate patches for preload

Reviewers: raster, #committers

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6907
2018-08-30 13:17:44 +09:00
Hermet Park 43d8c853aa evas gl: skip twice texture upload.
Summary:
While debugging a problem,
found a hole that upload texture twice unnecessary.

Here is the scenario.

Set up two objects with same image resource plus both preloading - obj1, obj2;

After image preloading,
_evas_cache_image_async_end() will be triggered.
=> ie->flags.update_data = true;

then first obj1 is gonna drawing,
Since it doesn't have any texture uploaded yet,
it will create a texture and upload texture data as well.
along with below sequence.
=> else if (!im->tex && !ie->load_error)

After it, second obj2 is gonna drawing.
But actually its texture is already readied after obj1,
it doesn't need to upload texture agin.

But still ie->flag.update_data == true, it will do dumbly.

Reviewers: #committers, devilhorns, raster

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6902
2018-08-30 13:14:13 +09:00
Hermet Park 78fb9cf124 evas gl: remove redundant code.
Reviewers: devilhorns, #committers, raster

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6901
2018-08-29 13:57:45 +09:00
Hermet Park 43fcca4acd evas cache: code refactoring.
rename to proper internal variables.
Differential Revision: https://phab.enlightenment.org/D6911
2018-08-27 21:25:29 +02:00
Hermet Park c8ddf93707 evas gl: fix missing map texture target.
Summary:
Map context missed setting texture target.
I guess this is one of regression bugs in gl backend.

When shader is flushed, it sets invalid texture target with map texture.
That caused blank map rendering, this could be observed temporary
because gl pipe contexts are reusable and missing texture target means,
it could use previous texture target values that mostly have GL_TEXTURE_2D.

@fix

Reviewers: #committers, ManMower

Reviewed By: #committers, ManMower

Subscribers: ManMower, cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6818
2018-08-14 17:13:24 -04:00
Hermet Park 6e88cc5942 evas gl_common: code refactoring.
Summary: use boolean instead int, no logic changes.

Reviewers: #committers, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6807
2018-08-10 12:06:42 -04:00
Hermet Park 323c87c215 evas sdl: don't make confusing, we only use one-indexed egl handles.
Reviewers: ManMower

Subscribers: devilhorns, cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6693
2018-08-02 12:20:27 +09:00
Hermet Park e7bb795aba canvas vg_loader: close opened file after using it.
Summary:
Here opened eina file is just leaked.
close it properly.

@fix.

Reviewers: devilhorns, #committers, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6549
2018-07-11 16:09:31 +09:00
Derek Foreman 8cd3860d00 evas_drm: Trim the queue of buffers if we've had extra for too long
Summary:
In fixing T7099 I've also allowed the buffer queue to grow quite large,
so now we should prune it back if it's bigger than it needs to be for
a long time.

ref T7099
Depends on D6565

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T7099

Differential Revision: https://phab.enlightenment.org/D6566
2018-07-10 16:53:12 -04:00
Derek Foreman 2668f6196e evas_drm: Move MAX_BUFFERS macro from header to source file
Summary:
It's no longer needed in the header because it doesn't change
the size of the structures there anymore.
Depends on D6564

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6565
2018-07-10 16:53:00 -04:00
Derek Foreman f7fc06bf86 evas_drm: Allocate buffers on demand
Summary:
Instead of allocating a fixed number of buffers immediately, allocate
buffers if needed to render to.

Normally we only need 2 buffers, but we've been allocating 3 to handle
worse case behaviour.  As T7099 shows, this is not always enough.  We
now cap at a max of 10.

For the normal case where we always use 2 this results in a slight
memory reduction (1 buffer) and a slight renering load reduction
because we pick the oldest buffer to render into.

A future patch will trim the buffer queue if it's been too large for
a long time.

fix T7099
Depends on D6563

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T7099

Differential Revision: https://phab.enlightenment.org/D6564
2018-07-10 16:52:46 -04:00
Derek Foreman 5d30f2b0b3 evas_drm: replace outbuf fb array with a list
Summary:
This is just a step towards making it a variable length.

ref T7099
Depends on D6562

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T7099

Differential Revision: https://phab.enlightenment.org/D6563
2018-07-10 16:13:52 -04:00
Derek Foreman f783163ca5 evas_drm: Make the fbs an array of pointers
Summary:
Use pointers instead of an array of structures, since we're going to
replace the array with a list shortly.

ref T7099

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T7099

Differential Revision: https://phab.enlightenment.org/D6562
2018-07-10 16:13:18 -04:00
Carsten Haitzler cb9dc80fdf evas gl-x11 engine - nvidia driver - fix performance drop
this has been going on for a while. on nvidia drivers in gles mode on
x11 there is a massive perf drop to like a few fps with enough windows
if we build for egl/gles instead of opengl. it was the re-creating of
eglimages every frame. put a vendor specific workaround for this and
avoid it. it's not needed there anyway. framerate back to 60fps
smoothness afterwards.

@fix
2018-07-10 16:08:19 +09:00
Derek Foreman a310667bec ecore_wl2: Add a purge option to surface flush
Summary:
We need to be able to forcibly destroy all surface buffers to make
session recovery work safely for software rendering.

@betabreak
Depends on D6278

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6279
2018-06-15 13:18:30 -05:00
Mike Blumenkrantz a6731320f5 evas engines: do not immediately free native surface when unsetting it
Summary:
this is a longstanding issue which was exposed by recent patches to standardize
object lifecycles. when a native surface is used by multiple images, unsetting
the surface from one image must not destroy the native surface or else the
remaining images

fix T6970

@fix

Reviewers: ManMower

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T6970

Differential Revision: https://phab.enlightenment.org/D6235
2018-06-05 12:14:30 -05:00
Mike Blumenkrantz 5b043be1db gl_common: fix invalid memory access
Summary:
code was added which ignores the comment explicitly warning not to
do what was done here

ref 9e01cf2698

ref T6970

==4829== Invalid read of size 1
==4829==    at 0x246D8F06: evas_gl_common_image_update (evas_gl_image.c:907)
==4829==    by 0x246DAA7B: evas_gl_common_image_draw (evas_gl_image.c:1417)
==4829==    by 0x246A2AB6: eng_image_draw (evas_engine.c:1240)
==4829==    by 0x6A87842: _draw_image (evas_object_image.c:1403)
==4829==    by 0x6A8A1BF: _evas_image_render (evas_object_image.c:2171)
==4829==    by 0x6A890C1: evas_object_image_render (evas_object_image.c:1868)
==4829==    by 0x6B09C82: evas_render_mapped (evas_render.c:2292)
==4829==    by 0x6B0CE90: evas_render_updates_internal_loop (evas_render.c:3079)
==4829==    by 0x6B0EACA: evas_render_updates_internal (evas_render.c:3522)
==4829==    by 0x6B1087C: evas_render_updates_internal_wait (evas_render.c:3946)
==4829==    by 0x6B10A4D: _evas_canvas_render_updates (evas_render.c:3971)
==4829==    by 0x6A7A234: evas_canvas_render_updates (evas_canvas.eo.c:212)
==4829==    by 0x6A7BBD4: evas_render_updates (evas_canvas.eo.c:758)
==4829==    by 0x808A7D8: ecore_evas_render (ecore_evas.c:177)
==4829==    by 0x808AA58: _ecore_evas_idle_enter (ecore_evas.c:284)
==4829==    by 0x5CC1E46: _ecore_call_task_cb (ecore_private.h:442)
==4829==    by 0x5CC1EAE: _ecore_factorized_idle_process (ecore_idler.c:35)
==4829==    by 0xBFA4DD4: _event_callback_call (eo_base_class.c:1663)
==4829==    by 0xBFA50A6: _efl_object_event_callback_call (eo_base_class.c:1747)
==4829==    by 0xBFA514C: efl_event_callback_call (eo_base_class.c:1750)
==4829==    by 0x5CC661B: _ecore_main_loop_iterate_internal (ecore_main.c:2352)
==4829==    by 0x5CC3F65: _ecore_main_loop_begin (ecore_main.c:1175)
==4829==    by 0x5CCC856: _efl_loop_begin (efl_loop.c:83)
==4829==    by 0x5CCEF6D: efl_loop_begin (efl_loop.eo.c:28)
==4829==    by 0x5CC40DF: ecore_main_loop_begin (ecore_main.c:1248)
==4829==    by 0x5480EE: main (e_main.c:1090)
==4829==  Address 0x2bfc30f8 is 328 bytes inside a block of size 560 free'd
==4829==    at 0x4C30D18: free (vg_replace_malloc.c:530)
==4829==    by 0x540AE91: _eina_freeq_free_do (eina_freeq.c:118)
==4829==    by 0x540B7B0: eina_freeq_ptr_add (eina_freeq.c:372)
==4829==    by 0x6BCD23C: _evas_common_rgba_image_delete (evas_image_main.c:555)
==4829==    by 0x6B41538: _evas_cache_image_entry_delete (evas_cache_image.c:205)
==4829==    by 0x6B43503: evas_cache_image_drop (evas_cache_image.c:945)
==4829==    by 0x6B43F4F: evas_cache_image_size_set (evas_cache_image.c:1166)
==4829==    by 0x246D6548: evas_gl_common_image_alloc_ensure (evas_gl_image.c:17)
==4829==    by 0x246D8EA8: evas_gl_common_image_update (evas_gl_image.c:869)
==4829==    by 0x246DAA7B: evas_gl_common_image_draw (evas_gl_image.c:1417)
==4829==    by 0x246A2AB6: eng_image_draw (evas_engine.c:1240)
==4829==    by 0x6A87842: _draw_image (evas_object_image.c:1403)
==4829==    by 0x6A8A1BF: _evas_image_render (evas_object_image.c:2171)
==4829==    by 0x6A890C1: evas_object_image_render (evas_object_image.c:1868)
==4829==    by 0x6B09C82: evas_render_mapped (evas_render.c:2292)
==4829==    by 0x6B0CE90: evas_render_updates_internal_loop (evas_render.c:3079)
==4829==    by 0x6B0EACA: evas_render_updates_internal (evas_render.c:3522)
==4829==    by 0x6B1087C: evas_render_updates_internal_wait (evas_render.c:3946)
==4829==    by 0x6B10A4D: _evas_canvas_render_updates (evas_render.c:3971)
==4829==    by 0x6A7A234: evas_canvas_render_updates (evas_canvas.eo.c:212)
==4829==    by 0x6A7BBD4: evas_render_updates (evas_canvas.eo.c:758)
==4829==    by 0x808A7D8: ecore_evas_render (ecore_evas.c:177)
==4829==    by 0x808AA58: _ecore_evas_idle_enter (ecore_evas.c:284)
==4829==    by 0x5CC1E46: _ecore_call_task_cb (ecore_private.h:442)
==4829==    by 0x5CC1EAE: _ecore_factorized_idle_process (ecore_idler.c:35)
==4829==    by 0xBFA4DD4: _event_callback_call (eo_base_class.c:1663)
==4829==    by 0xBFA50A6: _efl_object_event_callback_call (eo_base_class.c:1747)
==4829==    by 0xBFA514C: efl_event_callback_call (eo_base_class.c:1750)
==4829==    by 0x5CC661B: _ecore_main_loop_iterate_internal (ecore_main.c:2352)
==4829==    by 0x5CC3F65: _ecore_main_loop_begin (ecore_main.c:1175)
==4829==    by 0x5CCC856: _efl_loop_begin (efl_loop.c:83)
==4829==    by 0x5CCEF6D: efl_loop_begin (efl_loop.eo.c:28)
==4829==    by 0x5CC40DF: ecore_main_loop_begin (ecore_main.c:1248)
==4829==    by 0x5480EE: main (e_main.c:1090)
==4829==  Block was alloc'd at
==4829==    at 0x4C31A1E: calloc (vg_replace_malloc.c:711)
==4829==    by 0x6BCCF2F: _evas_common_rgba_image_new (evas_image_main.c:509)
==4829==    by 0x6B41588: _evas_cache_image_entry_new (evas_cache_image.c:261)
==4829==    by 0x6B44861: evas_cache_image_empty (evas_cache_image.c:1447)
==4829==    by 0x246D845B: evas_gl_common_image_native_disable (evas_gl_image.c:624)
==4829==    by 0x253F3C09: eng_image_native_set (evas_engine.c:1234)
==4829==    by 0x6A86204: _evas_image_native_surface_set (evas_object_image.c:1021)
==4829==    by 0x6A7E110: evas_object_image_native_surface_set (evas_image_legacy.c:509)
==4829==    by 0x6A8609A: _on_image_native_surface_del (evas_object_image.c:998)
==4829==    by 0x6A55190: _eo_evas_object_cb (evas_callbacks.c:184)
==4829==    by 0xBFA4EB7: _event_callback_call (eo_base_class.c:1686)
==4829==    by 0xBFA51F8: _efl_object_event_callback_legacy_call (eo_base_class.c:1759)
==4829==    by 0xBFA529E: efl_event_callback_legacy_call (eo_base_class.c:1762)
==4829==    by 0x6A968ED: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:1229)
==4829==    by 0xBFA529E: efl_event_callback_legacy_call (eo_base_class.c:1762)
==4829==    by 0x6A55C3D: evas_object_event_callback_call (evas_callbacks.c:413)
==4829==    by 0x6A96D3E: _efl_canvas_object_efl_object_invalidate (evas_object_main.c:1279)
==4829==    by 0xBFA7BAB: efl_invalidate (efl_object.eo.c:72)
==4829==    by 0xBFA0A09: _efl_invalidate (eo_base_class.c:170)
==4829==    by 0xBFA2737: _efl_object_parent_set (eo_base_class.c:734)
==4829==    by 0xBFA6BDA: efl_parent_set (efl_object.eo.c:12)
==4829==    by 0xBFA2537: efl_del (eo_base_class.c:686)
==4829==    by 0x6A96082: evas_object_del (evas_object_main.c:1041)
==4829==    by 0x2C9D519F: _bar_icon_preview_del (bar.c:762)
==4829==    by 0x6A55190: _eo_evas_object_cb (evas_callbacks.c:184)
==4829==    by 0xBFA4EB7: _event_callback_call (eo_base_class.c:1686)
==4829==    by 0xBFA51F8: _efl_object_event_callback_legacy_call (eo_base_class.c:1759)
==4829==    by 0xBFA529E: efl_event_callback_legacy_call (eo_base_class.c:1762)
==4829==    by 0x6A968ED: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:1229)
==4829==    by 0xBFA529E: efl_event_callback_legacy_call (eo_base_class.c:1762)
==4829==    by 0x6A55C3D: evas_object_event_callback_call (evas_callbacks.c:413)
==4829==    by 0x6A96D3E: _efl_canvas_object_efl_object_invalidate (evas_object_main.c:1279)
==4829==    by 0xBFA7BAB: efl_invalidate (efl_object.eo.c:72)
==4829==    by 0x7BE9326: _efl_access_object_efl_object_invalidate (efl_access_object.c:634)
==4829==    by 0xBFA7BAB: efl_invalidate (efl_object.eo.c:72)
==4829==    by 0xBFA0A09: _efl_invalidate (eo_base_class.c:170)
==4829==    by 0xBFA2737: _efl_object_parent_set (eo_base_class.c:734)
==4829==    by 0xBFA6BDA: efl_parent_set (efl_object.eo.c:12)
==4829==    by 0xBFA2537: efl_del (eo_base_class.c:686)
==4829==    by 0x6A96082: evas_object_del (evas_object_main.c:1041)
==4829==    by 0x7CD5F2C: _efl_ui_widget_efl_canvas_group_group_del (efl_ui_widget.c:855)
==4829==    by 0x6AAD303: efl_canvas_group_del (evas_object_smart.c:1862)
==4829==    by 0x7AFF104: _elm_box_efl_canvas_group_group_del (elm_box.c:362)
==4829==    by 0x6AAD303: efl_canvas_group_del (evas_object_smart.c:1862)
==4829==    by 0x6AABB79: evas_object_smart_del (evas_object_smart.c:1288)
==4829==    by 0x6A97179: _efl_canvas_object_efl_object_invalidate (evas_object_main.c:1336)
==4829==    by 0xBFA7BAB: efl_invalidate (efl_object.eo.c:72)
==4829==    by 0x7BE9326: _efl_access_object_efl_object_invalidate (efl_access_object.c:634)
==4829==    by 0xBFA7BAB: efl_invalidate (efl_object.eo.c:72)
==4829==    by 0xBFA0A09: _efl_invalidate (eo_base_class.c:170)
==4829==    by 0xBFA2737: _efl_object_parent_set (eo_base_class.c:734)
==4829==    by 0xBFA6BDA: efl_parent_set (efl_object.eo.c:12)
==4829==    by 0xBFA2537: efl_del (eo_base_class.c:686)
==4829==    by 0x6A96082: evas_object_del (evas_object_main.c:1041)
==4829==    by 0x2C9D41DA: _bar_icon_preview_hide (bar.c:450)
==4829==    by 0x5CFE14C: _ecore_call_task_cb (ecore_private.h:442)
==4829==    by 0x5CFE5C4: _ecore_timer_legacy_tick (ecore_timer.c:160)
==4829==    by 0xBFA4DD4: _event_callback_call (eo_base_class.c:1663)
==4829==    by 0xBFA50A6: _efl_object_event_callback_call (eo_base_class.c:1747)
==4829==    by 0xBFA514C: efl_event_callback_call (eo_base_class.c:1750)
==4829==    by 0x5CFF880: _efl_loop_timer_expired_call (ecore_timer.c:634)
==4829==    by 0x5CFF6AF: _efl_loop_timer_expired_timers_call (ecore_timer.c:587)
==4829==    by 0x5CC6522: _ecore_main_loop_iterate_internal (ecore_main.c:2317)
==4829==    by 0x5CC3F65: _ecore_main_loop_begin (ecore_main.c:1175)
==4829==    by 0x5CCC856: _efl_loop_begin (efl_loop.c:83)
==4829==    by 0x5CCEF6D: efl_loop_begin (efl_loop.eo.c:28)
==4829==    by 0x5CC40DF: ecore_main_loop_begin (ecore_main.c:1248)
==4829==    by 0x5480EE: main (e_main.c:1090)

Reviewers: ManMower

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6234
2018-05-31 13:12:18 -05:00
Derek Foreman 684d6a69d6 ee_wayland: remove edges flag
Summary:
Nothing needs this anymore.
Depends on D6121

Reviewers: zmike, cedric

Reviewed By: zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6122
2018-05-08 13:26:22 -05:00
Derek Foreman af9ae04eda ee_wayland_shm: Remove resize flag
Summary:
This hasn't been useful in a very long time.
Depends on D6120

Reviewers: zmike, cedric

Reviewed By: zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6121
2018-05-08 13:26:18 -05:00
Derek Foreman cadf0728fd ee_wayland_egl: Remove some amazing weirdness
Summary:
I don't even know what to put here, but I'll try.

wl_egl_window_resize()'s final two parameters indicate new attachment
points for a buffer relative to the previous top left corner.  When the
compositor is resizing a window it already handles the corner placement.
Fortunately, compositors seem to ignore the new attach co-ords during
resize, so this code hasn't broken anything.  It's just a complicated
NOP.

The new attachment points are intended for use in spontaneous resize,
not drag resize, but the only time these functions are called is for
drag resize.
Depends on D6119

Reviewers: zmike, cedric

Reviewed By: zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6120
2018-05-08 13:26:12 -05:00
Xavi Artigas 5697f6e94b Efl.Gfx.Image* (From Efl.Image*)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:40 -07:00
Derek Foreman 6da0933d60 ecore_wl2: Add alpha to reconfigure
Currently we only ever make wayland windows with alpha, this is a step
towards changing that.
2018-04-20 13:00:27 -05:00
Derek Foreman d85e960060 wayland_egl: Fix color depth when not using alpha
Since we don't actually set the color depth at all we can end up with
an RGB565 buffer.  We don't ask for depths because apparently the N900
had a problem with this under X.

I'm not aware of any efforts to bring wayland to the N900, so let's do
this normally.
2018-04-20 13:00:27 -05:00
Bowon Ryu f176aece65 evas_engine: remove logically dead code
Summary:
"plane" exception value is already filtered at line 1791.
execution cannot reach this statement.

Reviewers: cedric, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5973
2018-04-20 19:07:39 +09:00
Daniel Kolesa fcae7cab27 eolian gen: enable constness generation on property getter impls
This changes a lot of things all across the EFL. Previously,
methods tagged @const had both their external prototype and
internal impl generated with const on object, while property
getters only had const on the external API. This is now changed
and it all has const everywhere.

Ref T6859.
2018-04-17 20:31:55 +02:00
junsu choi d21d51a4a9 evas: fix typo written twice
Summary: disp is written twice with the same value.

Test Plan: N/A

Reviewers: woohyun, kimcinoo, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5874

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-06 11:32:07 -07:00
WooHyun Jung 07f7fee2d0 evas_gl_image: add null check 2018-04-05 11:10:43 +09:00
Cedric BAIL 4c4177ac20 efl: use efl_add_ref to create objects which have no parent
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:56 -07:00
Derek Foreman cdc33f5874 gl_drm: Use gl extension string helper instead of strstr 2018-03-08 14:33:05 -06:00
Derek Foreman 05d7c1c9a2 gl_common: Make extension string checks more robust
strstr() can give false positives if the extension name is a subset of
a string in the extension list, for example EGL_EXT_image_dma_buf_import
would match EGL_EXT_image_dma_buf_import_modifiers.

I've opted for a mildly badgered copy of epoxy's test, which should be
robust in the face of subsets.
2018-03-08 14:27:07 -06:00
Derek Foreman 464d0ca9bb gl_common: Replace strstr() for extension checks with a helper function
The helper incorporates NULL checks, and we love those, so it's better.
2018-03-08 14:27:04 -06:00
Derek Foreman 3fc6eea24f gl_drm: Don't NULL init a variable we're about to set
minor clean up with no functional change.
2018-03-08 11:33:34 -06:00
Derek Foreman 37b9a246ba gl_drm: Check EGL client extensions before using platform_base
The comment here was right, we shouldn't just trust these without testing
if we should trust these.
2018-03-08 11:33:31 -06:00
Derek Foreman 3a15195088 gl_drm: Rename eng_gl_symbols to eng_egl_symbols
It now only deals with egl.  gl extensions must be queried later, so it
was previously a bit weird/confusing.
2018-03-08 11:16:01 -06:00
Derek Foreman 609c86903f gl_drm: Move some extension queries to after context creation
Anything non-EGL we might query would have to be queried here, so
I'm moving the call here to protect us in the event that we need GL
extensions in the future.

I'm still a bit confused as to what string I should be passing to
evas_gl_symbols, though.
2018-03-08 11:15:57 -06:00
Derek Foreman 329e9c0b4b gl_drm: use EGL_IMG_context_priority if available
This is a hint that we want a high priority context.  Since gl_drm is
likely a compositor or a full screen app, it makes sense that it try to
use this (but other engines probably shouldn't)

Based loosely on Chris Wilson's weston patch to do the same thing.
(weston commit b678befb6ed055e6c66466505d9195a3cebf8073)

As this extension appears to have been around for years, I haven't
added fallback defines for:
EGL_CONTEXT_PRIORITY_LEVEL_IMG  0x3100
EGL_CONTEXT_PRIORITY_HIGH_IMG   0x3101
2018-03-07 15:24:37 -06:00
Derek Foreman f8658d25fa gl_drm: Move the gl symbol check to immediately after display init
We don't actually need a context first, just an initialized display.
2018-03-07 15:24:37 -06:00
Youngbok Shin 255e9c788a evas: increase offset by 4 to do work for next map points
Summary:
Increasing offset as 2 for next map points is wrong.
If evas tries to draw for wrong combination of map points,
it can cause wrong results. Actually, every drawing code for
map points use and increase offset as 4.

@fix

Test Plan:
A test case for textpach is modified for testing this issue.
1. Run elementary_test with sync render mode.
   ex) ECORE_EVAS_FORCE_SYNC_RENDER=1 elementary_test
2. Open textpath test.
3. Set a short text by clicking newly added check box.
4. (It will show another issues... So,) change slice number to update textpath properly.
5. See some noises at top-left side of text.
   It is drawn from the two of end map points to the two of empty(not used) map points.

Reviewers: raster, cedric, jpeg, jypark

Differential Revision: https://phab.enlightenment.org/D5833

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2018-03-06 19:05:57 -08:00
Derek Foreman c9ac2338d4 gl_drm: NULL check img
If we set native surface on a new object we can get here with NULL
engine_info from the caller.  We should still create a native surface.
2018-02-14 14:56:48 -06:00
Chris Michael af2960df0b evas drm engines: Fix variable type for output
We already include the Ecore_Drm2 header for these engines, so there
is no need for the 'output' field to be a void pointer here.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-02-13 11:44:36 -05:00
subhransu mohanty 48433efc43 ector: Updated the ector_buffer_pixels_set() api with stride info
Reviewers: jypark, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5795
2018-02-08 14:44:29 +09:00
Vincent Torri d54f0f66cf Evas: remove depth usage in GDI and DirectDraw engines
Test Plan: compilation and elementary_test

Reviewers: raster

Reviewed By: raster

Subscribers: cedric, raster

Differential Revision: https://phab.enlightenment.org/D5792
2018-02-07 22:20:20 +09:00
Derek Foreman e4122da211 ecore_wl2: Remove force from surface reconfigure
It no longer has any users or need to exist.
2018-01-26 15:53:59 -06:00
Derek Foreman 3ef4671085 wayland_shm: remove dirty bit entirely
Now that we're not using it for session recovery we can strip it out
entirely.
2018-01-26 15:53:59 -06:00
Derek Foreman 26a718b07e wayland_shm: Use surface flush instead of setting dirty
The dirty bit was a dirty hack to let session recovery force reconfigures
on startup.

Now that we have a surface flush we can achieve the same thing by just
discarding all buffers immediately.
2018-01-26 15:53:59 -06:00
Derek Foreman 79f3eaa68b wayland_shm: Clean up duplicate prototypes
These were supposed to be removed when I moved the associated functions
into ecore_wl2.
2018-01-19 12:37:10 -06:00
Vincent Torri f5b01ac5ce all: Simplify definition of EAPI
This will help in the transition from Autotools to Meson. This has been
tested on Windows for which EFL_XXX_BUILD were first introduced.
2018-01-18 18:04:03 +09:00
Jean-Philippe Andre 24447641d3 evas gl: Properly verify that Evas GL works
For SW engine we need to verify that OSMesa is present. The patch
fb048e7312 broke the logic.

Tested by temporarily removing OSMesa from my system.

Fixes T6617 (again)
2018-01-17 15:22:46 +09:00
Carsten Haitzler fb048e7312 evas sw generic - don't dlopen osmesa until first needed.
osmesa needs llvm. llvm apparently just by dlopening or linking to the
lib (libLLVM...) gets you 3.5mb of dirty pages just in this lib. that's
a whole lib entirely dirty pages. odd and horrible. in fact once i
stoppd dlopening OSMesa all the time on engine init (and only when gl
is needed)... the amount of dirty pages went from 17208 to 8860.
that's a whopping drop of 8mb! 8mb saved! in fact just dlopening
osmesa and doing the other gl init stuff led to more anonymuse
mappings with dirty pages. 2 of them (2072k and 2076k) which baffled
me as that didn't seem like heap or efl's own data. these disappeared
along with libLLVM-5.0.so (3520k + 60k dirty pages). we stopped
linking/loading libedit (12k dirty), libglapi (20k dirty),
libLLVM-5.0 (3580k dirty), libncursesw (72k dirty),
libOSMesa.so (260k dirty), libtinfo (20k dirty). ... or at least
stopped until absolutely needed. total 17208k of dirty pages went down
to 8860.

my test case was just launching terminology (and doing nothing with it).

@fix memory bloating
2018-01-12 03:02:43 +09:00
subhransu mohanty d838220d56 evas/vg: Use always blending op while drawing the vector.
Summary:
The default backend overrides this operation depending on the fill color
but the cairo backend dosen't hence cairo will always use bled mode while drwaing the vector.

Reviewers: jpeg

Subscribers: vtorri, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5724
2018-01-08 19:16:59 +09:00
Marcel Hollerbach 01df8b7f78 evas: make tbm_surface api fields static
When building statically this breaks build, since both symbols would be
defined globally.
2018-01-04 14:31:22 +01:00
Jean-Philippe Andre 88bfba1fdd evas filters: Add "alphaonly" flag for blend and blur
This is very useful to specify precisely which kind of RGBA -> Alpha
conversion you want. If all you wanted was the alpha layer to use as a
mask, set this flag to true.

@feature
2017-12-14 18:03:49 +09:00
Ross Vandegrift 71e5c74eb6 efl: drop deprecated Encoding key from desktop files
Summary:
The Encoding key is no longer required, all desktop files are assumed to
be UTF-8 encoded.  See details at:
https://standards.freedesktop.org/desktop-entry-spec/1.1/apc.html

Fix various typos and misspellings

lintian, Debian's package checker, uses strings to check for common typos
in compiled binaries.  This change fixes the ones it identified in 1.20.6.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5584

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-12-13 10:27:48 -08:00
Chris Michael e4d5528e34 evas-gl-drm: Don't pass invalid surface or bo to gbm function
This small patch just checks that we have a valid surface and bo that
we can pass to gbm_surface_release_buffer. If they are not valid, this
causes a hard crash.

NB: This does not actually Fix the ticket issue....

ref T6483

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-12-12 11:28:36 -05:00
Pawel Aksiutowicz 5e3c641438 evas: removed "clobbered" warnings from image_savers/png/evas_image_save_png
Reviewers: stanluk, lukasz.stanislawski, cedric, jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5536
2017-12-11 17:18:55 +09:00
Derek Foreman 8a3b983c53 ecore_wl2 wayland_shm: Move surface functions into ecore_wl2
Finish pushing these all into ecore_wl2
2017-12-01 10:58:44 -06:00
Derek Foreman dd5edfae03 wayland_shm: Rename all the evas_dmabuf functions
These are going to find a home in ecore_wl2, and this is the last
step before moving them all over there.
2017-12-01 10:58:44 -06:00
Derek Foreman 4e3016070a wayland_shm: No longer include dmabuf header in engine.h
There's no longer any need for code outside of evas_dmabuf.c to
know anything about dmabuf.
2017-12-01 10:58:44 -06:00
Derek Foreman e1031f5249 wayland_shm: move surface structure to evas_dmabuf.c
This is no longer needed by the outbuf code.
2017-12-01 10:58:44 -06:00
Derek Foreman 57622713de wayland_shm: Use wrapper functions instead of function pointers
switch to the new "API"
2017-12-01 10:58:44 -06:00
Derek Foreman 594fef7dd3 wayland_shm: Wrap function pointers for surface
This is going to be an API soon.
2017-12-01 10:58:44 -06:00
Derek Foreman dd8d60ad28 wayland_shm: Move surface free into surface_destroy
The caller shouldn't have to free this.
2017-12-01 10:58:44 -06:00
Derek Foreman 5b4b18836a wayland_shm: Remove struct _Dmabuf_Surface
It's all piled into Surface now.
2017-12-01 10:58:44 -06:00
Derek Foreman 8a6c4fe5ff wayland_shm: Stop using outbuf and engine info in surface code
The surface stuff now no longer needs knowledge of those structures.
2017-12-01 10:58:44 -06:00
Derek Foreman 7eb0af45d6 wayland_shm: Pass alpha to surface_create
Stop extracting it from other structures, pass it directly.
2017-12-01 10:58:44 -06:00
Derek Foreman 2b3654c1fd wayland_shm: pass the ecore_wl2_window to surface create
No longer extract this from the engine info.
2017-12-01 10:58:44 -06:00
Derek Foreman d1a4f38a96 wayland_shm: Store width and height in surface struct
No longer query these from the outbuf.
2017-12-01 10:58:44 -06:00
Derek Foreman 15fdbca653 wayland evas: Remove Ecore_Wl2_Display from engine info
We've got the Ecore_Wl2_Window so we can always get the display from
that.
2017-12-01 10:58:44 -06:00
Derek Foreman 73d1ab0cd5 wayland_shm: Remove Shm_Surface
only Dmabuf_Surface is used, so let's remove this and lose the union.
2017-12-01 10:58:44 -06:00
Derek Foreman e3d6626c0d wayland_shm: Move surface create into dmabuf code
These functions can be combined since there's now only the dmabuf
path.
2017-12-01 10:58:44 -06:00
Derek Foreman d1bb026195 wayland_shm: remove useless wrapper function
This no longer has multiple call sites.  Goodbye.
2017-12-01 10:58:44 -06:00
Pawel Aksiutowicz 56abebf236 evas: remove warning from image_loaders/png/evas_image_load_png
Reviewers: stanluk, lukasz.stanislawski, cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5501

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-11-23 15:43:38 -08:00
Derek Foreman 2c559a1ee9 wayland_shm: Fix partial redraws
I accidentally the age tracking.
2017-11-21 16:48:30 -06:00
Derek Foreman cbbac076f4 gl_drm: Use the same gbm_device for multiple instances
If we want to share a gl context (we do) between multiple instances of
gl_drm, we need to make sure they all use the same gbm_device.

This resolves a blocker for multi-output on the gl_drm backend.
2017-11-21 12:28:52 -06:00
Derek Foreman ea1f76f980 drm ee: Allow more than 4 buffers
Multi-head is hitting corner cases where there are lots of locked buffers
and it looks like right now 5 is the magic number that makes the problem
go away.

Make it possible to set 5 or more (via env var) for testing, make a macro
for MAX_BUFFERS instead of just a number.
2017-11-20 16:54:00 -06:00
Derek Foreman 796de8cb86 wayland_shm: Don't use a fixed number of buffers
We no longer allocate 3 buffers at startup, we now allocate only as needed.

Trimming the queue will come later, as there are some situations where we
might need 3 buffers and later drop down to 2 (when on a hardware plane)

Most clients will only ever need 2 buffers, so this is a reasonable RAM
savings.
2017-11-17 14:33:36 -06:00
Derek Foreman 04cebba623 ecore_wl2: Filter buffer types by compositor capabilities
It does us no good to be able to allocate dmabuf capable memory if the
compositor can't handle it.  This should fix failures on systems where
allocation is possible but the compositor doesn't advertise dmabuf.
2017-11-15 11:54:37 -06:00
Derek Foreman 9fdcf7d0eb wayland_shm/ecore_wl2: Move buffer allocation into ecore_wl2
This moves all the platform specific buffer allocation into ecore_wl2
instead of the engine.

Note that this makes an internal struct available in the header.  This
will be removed shortly.
2017-11-15 11:54:37 -06:00
Derek Foreman f6ec5b961b wayland_shm: Move wl_buffer creation function further up file
It just looks nicer when it's here and doesn't require a prototype.
2017-11-15 11:54:37 -06:00
Derek Foreman 46539ce26d wayland_shm: Make the buffer_manager static
Should always have been, oops.
2017-11-15 11:54:37 -06:00
Derek Foreman 66f85dd06c wayland_shm: Become unhoseable
Now that shm is handled through these paths the dmabuf_totally_hosed state
is nonsense.
2017-11-15 11:54:37 -06:00
Derek Foreman 2071122f01 wayland_shm: rename Surface_Type to Ecore_Wl2_Buffer_Type 2017-11-15 11:54:37 -06:00
Derek Foreman f9ff2e4fa5 wayland_shm: Remove surface_type from surface
This has become not only a write-only variable, but also incorrectly set.

Just remove it.
2017-11-15 11:54:37 -06:00
Derek Foreman c6b0328150 wayland_shm: Pass ecore_wl2_display instead of surface to buffer_create
The display was the only thing we used through the surface.  Pass just
the display to break the dependency between surface and buffer.
2017-11-15 11:54:37 -06:00
Derek Foreman 2042e4bc21 wayland_shm: Remove surface from buffer struct
All users are now removed so we no longer need this.
2017-11-15 11:54:36 -06:00
Derek Foreman 36f0a9a814 wayland_shm: Stop looking up alpha on surface
We've got it in the buffer now.
2017-11-15 11:54:36 -06:00
Derek Foreman 15173c3436 wayland_shm: Store alpha in buffer
Currently the buffer code looks up the alpha stats from the surface code.
This won't be possible when we move the buffer code into a library, so
prepare for it now.
2017-11-15 11:54:36 -06:00
Derek Foreman 8c7086dc31 wayland_shm: Make ecore_wl2_buffer_init return bool
Nothing uses the returned pointer, and nothing will.
2017-11-15 11:54:36 -06:00
Derek Foreman 7c3fb6ae74 wayland_shm: Rename types and functions
We're going to move this into ecore_wl2, so I'll start by renaming it all
here before moving large chunks with minimal change.

No functional changes.
2017-11-15 11:54:36 -06:00
Derek Foreman c1a9dacbad wayland_shm: Remove extra display flush
Since we're using create_immed now we shouldn't need to force a flush here
anymore.
2017-11-15 11:54:36 -06:00
Derek Foreman 8cf0bfc9ef wayland: stop tracking compositor_version in engine
We don't need it anymore now that damage is posted from inside ecore_wl2.
2017-11-10 13:43:45 -06:00
Derek Foreman 6ea82f9f7e wayland_shm: Remove surface damage function
This is now in ecore_wl2
2017-11-10 13:43:45 -06:00
Derek Foreman fe41727bc3 wayland_shm: cosmetic code simplification
We already have this value in a temp, so use it.
2017-11-10 13:43:45 -06:00
Derek Foreman 77212021f3 waylamd_shm: Use ecore_wl2_window_damage
The new library function provides the same functionality and will allow
us to stop tracking things in the engine that the library already knows
about windows (compositor_version)
2017-11-10 13:43:45 -06:00
Derek Foreman cf345cff74 wayland_shm: Respect the alpha
The dmabuf code has been creating ARGB buffers all the time.  The old
wl_shm code correctly respected the alpha field, but that was lost in
the new version.

I'm not sure we ever create non-alpha wayland buffers, since CSD has
to have alpha to do shadows, but if there's any way to do it it'll
work now.
2017-11-10 09:55:58 -06:00
subhransu mohanty 41062cb15d evas/vg: use surface cache for efl vg canvas 2017-11-10 11:20:38 +09:00
subhransu mohanty f0b8c37d80 evas/vg: refactor ector engine api and backend . 2017-11-10 11:20:38 +09:00
subhransu mohanty befb7701a7 evas/engine: added new engine api for ector 2017-11-10 11:20:38 +09:00
subhransu mohanty aacf277c3a evas/vg: added support for engine surface cache. 2017-11-10 11:20:38 +09:00
Derek Foreman ba2abb2eb9 wayland_shm: Don't require dmabuf support to use wl_shm
Unintended side effect of my merging of the two code paths.  We should
still try to use wl_shm if we can't use dmabuf here.
2017-11-09 16:08:30 -06:00
Derek Foreman c2fe37a46d wayland_shm: Remove old shm code
The new shm code should be equally capable - minus one surface resize
optimization that probably didn't buy us much performance at the cost
of memory.
2017-11-08 15:12:51 -06:00
Derek Foreman a5c7fbd006 wayland_shm: Return oldest buffer for new renders
This is what the old shm code has been doing, and it's probably better
than what the dmabuf code was doing.

We currently allocate 3 buffers.  The usual case has us swapping between
two of those buffers and saving that third buffer for emergencies - if
we ever need that third buffer it'll require a full redraw.

If we return the oldest available buffer the usual case requires a little
more damage but we should never hit the full redraw case, which can cause
a frame drop on slow hardware.
2017-11-08 15:12:51 -06:00
Derek Foreman 4adf87ae91 wayland_shm: Simplify surface commits
We no longer have the concept of a "pre" buffer (allocated but not yet
registered as a wayland buffer)
2017-11-08 15:12:51 -06:00
Derek Foreman b5674b7885 wayland_shm: Remove useless function
This serves no purpose anymore.
2017-11-08 15:12:51 -06:00
Derek Foreman 566c3f328a wayland_shm: Remove dmabuf fallback
Now that we're dependent on create_immed there's no possibility of falling
back to non dmabuf allocation.

The only failing case we really need to handle is failing the first
allocation, which is currently broken and I'll be adding an advance test
for it shortly.
2017-11-08 15:12:51 -06:00
Derek Foreman 73bddb4471 wayland_shm: Make EVAS_WAYLAND_SHM_DISABLE_DMABUF use new code
Use the new wl_shm allocation functions making the old wl_shm code
unreachable even with the use of the disable env var.
2017-11-08 15:12:51 -06:00
Derek Foreman c54a12aca6 wayland_shm: Add wl_shm to dmabuf
wl_shm and dmabuf only really need to differ in how they allocate a buffer,
but right now we've got them in separate files.  This dramatically
reduces the complexity of the wl_shm code and shares much more
implementation with the dmabuf code.

This throws away at least one "optimization" wl_shm used - over-allocating
buffers so that window resizing doesn't always require a new buffer
allocation.  If people feel that window resizing has become too slow now
this can be added to the dmabuf code to the benefit of both allocators.

Disabling dmabuf by env var still uses the old wl_shm implementation for
now, but soon that code will be removed entirely and the env var disable
will use this path.
2017-11-08 15:12:47 -06:00
Derek Foreman d346ac7b2e wayland_shm: Track size of buffer 2017-11-08 15:12:44 -06:00
Derek Foreman 381bb0e798 wayland_shm: move buffer release callback to top of file
Code motion with no functional changes.
2017-11-08 15:12:42 -06:00
Derek Foreman ef1279465f wayland_shm: make creating a wayland buffer back end specific
This way we can have shm and dmabuf share the same framework.
2017-11-08 15:12:37 -06:00
Derek Foreman 7e1805ada1 wayland_shm: Factor out wl_buffer creation code 2017-11-08 15:12:34 -06:00
Vitalii Vorobiov ee93543799 evas_vg_load_svg: get rid of static Evas_SVG_Parsing
Summary:
Refactoring.
It is good to store values from that struct in a parsing/loading context

static variable is a big NO NO:
1. Ugly code design,
2. Might not work when trying to load more than one SVG file.

@fix

Reviewers: jpeg, smohanty

Subscribers: jenkins, cedric

Differential Revision: https://phab.enlightenment.org/D5399
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 66e0caccb7 evas_vg_load_svg: default stop opacity color should be 255, not 0
@fix
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov d98e2323ad vg_common: property apply "objectBoundingBox" morphings to radial gradient
When objectBoundingBox flag is set up, all gradients should morphed into
multiple gradients for every entity that has gradient to be applied on
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 6bf5d9d96e svg_parse: parse correct values for radialGradient
Especially Radius calculation which was a huge pain to find formula
within SVG documentations!
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 405e56ac55 svg_parse: parse linear gradient variables accroding to gradientUnits
There are difficult cases according to
https://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 6139aa78d5 svg_parse: implement <length> parse
Accodring to https://www.w3.org/TR/SVG/types.html#Length
length ::= number ("em" | "ex" | "px" | "in" | "cm" | "mm" | "pt" | "pc" | "%")
This is still work in progress since some of lengths should be treated
differently, for example gradient lengths
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 1354c1c8ab svg_parse: save global size variable to use when gradient size recalc
For example while userSpaceOnUse it uses not figure's x,y,w,h
but entire canvas, so we need to save it publically and recalc while
parsing (or after)
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov fac649c7f4 vg_common: parse and store userSpaceOnUse (for gradient) when it is set
So it can be calculated during the draw later on
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 532557cabd vg_loaders/svg: set up default focal values for radialGradient
Since when not specified, focal values same as center points
fx = cx, fy = cy by default

@fix
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 78bc406640 saver/svg: parse loaded tree data into svg XML file and save it
Just base source code which will parse all structures of svg tree into
xml text to save current vector image into file

@feature
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 7d9c1256a3 vg_savers/svg: empty (for now) module that will save svg in original file
Just as a starter to make a working background that, later on, will go
through Svg_Node's and build a certain source code to be saved in SVG
picture as a file
2017-11-07 11:54:09 +09:00
Chris Michael fd79e32dbd evas-wayland-shm: Do not dereference a potentially freed pointer
Coverity reports that _evas_dmabuf_buffer_init function here can
potentially free the surface that was passed into it. If that happens,
we should not be calling the _fallback function with surface as the
parameter as that will directly dereference the freed pointer.

Fixes Coverity CID1381707

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 10:02:35 -05:00
Chris Michael de1e18ef7d evas-gl-cocoa: Remove need for useless region_free function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:28:53 -05:00
Chris Michael 3ae469e648 evas-gl-drm: Remove need for useless region_free function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:27:39 -05:00
Chris Michael 85a9716c8f evas-gl-sdl: Remove need for useless free_region function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:26:13 -05:00
Chris Michael c8e5614830 evas-gl-x11: Remove need for useless free_region function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:25:19 -05:00
Chris Michael e04ad61ab4 evas-wayland-egl: Remove need for useless free_region function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:23:13 -05:00
Chris Michael 39184e78af evas-wayland-shm: Remove need for useless free_region function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:21:59 -05:00
Chris Michael 31a7963196 evas-software-x11: Remove need for useless free_region function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:19:20 -05:00
Chris Michael 5edae8b9c1 evas-software-gdi: Remove need for useless free_region function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:17:02 -05:00
Chris Michael f32c1ece7e evas-software-ddraw: Remove need for useless free_region function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:15:54 -05:00
Chris Michael 9f5555a887 evas-eglfs: Remove need for useless free_region function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:14:14 -05:00
Chris Michael 5f897542aa evas-drm: Remove need for useless free_region function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:13:12 -05:00
Chris Michael 6016ce8133 evas-software-generic: Check for render engine function before calling
In most engines which inherit from software_generic, they do not
implement the outbuf_free_region_for_update function. Most engines
have it as an unused function. If we simply add a check here, then we
can reduce the need for having useless function in multiple engines.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 09:10:28 -05:00
Chris Michael 0a25543ed5 evas-wayland-shm: Fix formatting
Make this line readable in 80 columns

NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-01 12:39:09 -04:00
Chris Michael 945764eb7c evas-drm: Fix formatting
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-01 12:38:44 -04:00
Subhransu Mohanty bf79ec359d vg_savers/eet: Added implementaion of vg saver to eet file 2017-10-27 14:58:38 +09:00
Subhransu Mohanty 24ac2d6516 vg_loaders/svg: Copied svg loading implementation from edje_cc 2017-10-27 14:58:38 +09:00
Subhransu Mohanty 079838e926 vg_loaders/eet: Added implementaion for loading from eet file 2017-10-27 14:58:38 +09:00
Cedric BAIL abd41c93ea evas: image_native_set actually receive a context, not an output. 2017-10-26 13:01:56 -07:00
Jean-Philippe Andre 98622623a0 evas: Prevent crash with image_data_get
If the image has no data, it may get an allocated surface of 1x1 but it
is not sane to return the pointer to that data, as the user would expect
a normally sized image (in my case, 1920x1080).

I do not fully understand what is going on with this image. But at least
this transforms a crash into a simple ERR in ~/.xessions-errors

Two similar crashes happened:
 - SIGSEGV by writing data outside of the image data
 - abort() in free() because the malloc metadata has been overridden
   when writing outside of the image data (newly allocated 1x1).

Fixes T5957

@fix
2017-10-18 22:12:57 +09:00
Carsten Haitzler 6cd3d4026c jp2k module - dont print ERR on llading if format wrong
this is normal - brute force trying loaders until one succeeds is
normal is etn doesnt help identify it or it fails the first
guess-by-extension. printing errors is not good as this is an ok and
EXPECTED error. slience!

@fix
2017-10-16 08:42:13 +09:00
Cedric Bail 7e00ab4222 evas: mark parameter unused now that it is not necessary anymore. 2017-10-13 12:58:01 -07:00