Commit Graph

90 Commits

Author SHA1 Message Date
Mun Gwan-gyeong ac4074c4fa evas-wayland-egl: Fix segmentation fault on dynamic loaded gl related functions.
Summary:
@fix
Segfault in wayland_egl engine is casused by illegal library linking.
Fix this by linking to GLESv2 and EGL libraries.

Test Plan: N/A

Reviewers: devilhorns, raster, cedric, Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1332
2014-08-15 09:24:20 -04:00
Gwanglim Lee 55715ccf05 evas-wayland-egl: Add missing free
Summary:
Add free to eng_gl_context_free
@fix

Test Plan: N/A

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1315
2014-08-11 11:47:25 -04:00
Gwanglim Lee d4c76753c9 evas-wayland-egl: Fix typos about egl context attribute list
Summary:
Fix typos 3 to 2.
@fix

Test Plan: N/A

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1314
2014-08-11 11:45:30 -04:00
Chris Michael 3311729f3c wayland-egl: Fix Outbuf structure not having evas & engine info
gl_generic functions expect the Outbuf to contain the canvas, so we
fixed the eng_window_new function to accept that, And the engine info.
This simplifies the calls to eng_window_new.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-11 11:29:33 -04:00
Chris Michael 7c6b9637d9 wayland-egl: Fix calls to eng_window_new
Since we simplified the eng_window_new function to accept the canvas
and engine info, we need to update calls to that function

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-11 11:28:50 -04:00
Chris Michael 54e913a025 wayland-egl: Fix eng_window_new function prototype
We need to pass in the canvas and engine info structure as the
gl_generic engine needs the outbuf->canvas to be set.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-11 11:28:04 -04:00
Gwanglim Lee 110b0108ad evas-wayland-egl: Fix evas wayland_egl engine crash on mesa driver
Summary:
Evas wayland_egl engine crashes on startup when it is running with mesa.
Evas is trying to get EGL / GLES extension function addresses where evas_gl_symbols.
It is called before eglGetDisplay. Then mesa considers that current egl platform is
X11 if it has no EGL_PLATFORM env var. This behavior of mesa is bad. But we should
provide workaround until it is fixed. Thus EGL_PLATFORM env var should be defined to
wayland before calling eglGetProcAddress.
@fix

Test Plan: run elementary_test under wayland with wayland_egl engine.

Reviewers: raster, stefan_schmidt, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1312
2014-08-11 11:08:09 -04:00
Chris Michael 97adf8a316 evas-wayland-egl: Fix evas wayland_egl engine not loading due to missing symbol
Seems the newer wayland-egl code was missing the log domain variable
and thus would not load at time of dlsym due to missing symbol. This
fixes that problem by defining the variable.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-10 15:54:35 -04:00
Chris Michael 827ca3fcfc evas-wayland-egl: Implement eng_gl_context functions
The eng_gl_context functions are used for Evas 3D, so let's support
those in the wayland_egl engine.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-06 15:05:35 -04:00
Chris Michael 423506a0aa evas-wayland-egl: Fix wayland egl engine to work again
Previous (french) changes to evas_gl code broke the wayland egl engine. This
batch of changes fixes that by rewriting to engine to work with new
evas_gl functions.

Fixes Phab ticket T1478

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-06 14:24:29 -04:00
Chris Michael 9419e48fb4 evas-wayland-egl: Add support for EGL_BUFFER_AGE_EXT and add external
function pointers for glsym_evas_gl functions

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-06 14:19:55 -04:00
Chris Michael e2c08ffec2 evas-wayland-egl: Add support for SWAP_MODE_QUADRUPLE and use
Eina_Bool for boolean values

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-06 14:19:15 -04:00
Chris Michael 7cf7ca213b evas-wayland-egl: Rename Evas_GL_Wl_Window to Outbuf
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-06 07:44:50 -04:00
Chris Michael 59294c7381 evas-wayland-egl: Fix includes for using GL Generic
Recent changes to evas engines require using evas_gl_generic now, so
let's sort out the headers and include the gl_generic one we need

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-06 07:44:50 -04:00
Tom Hacohen 7f3a44894b Evas canvas eolian: Fix namespace and class name for the evas canvas. 2014-06-30 17:47:06 +01:00
Jérémy Zurcher 9a79d1e864 silence a few warnings 2014-05-08 00:15:53 +02:00
Jean-Philippe Andre 54fb9b2346 Evas: Use Evas_Colorspace to declare cspace
Why use int when we have a proper type?
All these APIs are internal.
2014-04-15 18:50:37 +09:00
Jean-Philippe Andre 1a9b58f083 Evas gl: Fix buffer dump filenames
evas_gl_common_buffer_dump can be used to dump all frames into
a series of PNG files. But the filename contained some garbage
characters (and potential segv, too).

(cherry picked from commit a0f886138ed5a28d0d1596df3b805fca06d1ae31)
2014-03-18 15:44:13 +09:00
Sung W. Park 2b4a7b438d evas gl: added partial rendering support for qcom extension
When running in direct rendering mode, properly support partial
rendering if the extension is properly supported.

Also, fixed the SwapBufferwWithDamage rectangle coordinate bug.
It wasn't properly y-inverted before.
2014-02-15 02:33:47 +09:00
Wonsik Jung 6ea0566e6c evas: add eglMakeCurrent in evas map create/free.
Summary: Ensure Evas's eglContext when several eglContexts are used.

Test Plan:
1. Native GLES application works with evas_object_image_native_surface_set
2. One Evas object works with evas map.

Reviewers: seoz, tasn, cedric

Reviewed By: cedric

CC: cedric, raster

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-02-10 10:40:56 +09:00
Wonsik Jung 3420eda31a evas: gl backend - ensure eng_window_use in image_content_hint_set
Summary: Ensure eng_window_use in image_content_hint_set

Test Plan:
1. make native OpenGLES application.
2. set evas object image  with evas_object_image_native_surface_set.
3. GLES Application try to call eglMakeCurrent with own eglContext, then resize evas object resize

Reviewers: Hermet, raster, cedric

Reviewed By: cedric

CC: cedric, seoz

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-02-07 12:18:16 +09:00
Daniel Juyung Seo 76d8532b54 efl: Unified eina critical manro to CRI.
Being annoyed by different types of eina critical macros - CRI, CRIT,
 CRITICAL -, I concluded to unify them to one. Discussed on IRC and
 finally, CRI was chosen to meet the consistency with other macros -
 ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
2013-12-26 12:27:13 +09:00
Cedric Bail d3022ad700 evas: fix potential similar problem as with GL X11 backend with wrong context being used.
See commit d2b647d2b3.
2013-11-15 14:08:44 +09:00
Chris Michael c5a83c5b9e Remove blank line
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-14 11:26:43 +00:00
Sung W. Park 7dc102c55f EvasGL: Fixed direct rendering not clipping issue
Evas GL direct rendering mode didn't properly take into account
the image object's clipping information and clip the region that
it was directly rendering to. Hence there were issues with the
direct rendering region drawing over the objects that are sitting
on top of it.

Also, cleaned up the direct rendering coordinate computation code
and a nasty dependency with image object that should have been
removed a long time ago.  Basically the evas-gl engine was directly
accessing the image object data structure for its data when it
really should have just passed along necessary information.
2013-10-24 17:42:21 +09:00
Carsten Haitzler 7d7f548afc evas - gl - dont allocate image and/or texture until needed on native unset 2013-10-16 22:56:38 +09:00
Sung W. Park 56e71e05bb Evas: EGL-GL backends. Call eglReleaseThread() upon shutdown
Call proper cleanup code upon terminating egl use.
2013-10-14 14:37:36 +09:00
Chris Michael 76cea1712c Avoid potential memleak on rotation of tilebuf.
Port of 70f443d8a8 to wayland egl

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 08:24:10 +01:00
Rafael Antognolli 5d053bf19b evas/wayland_egl: eng_window_use will not always force makecurrent.
If the egl_surface is different from the current one, it may be that the it has
been destroyed already. Removing the below check (and just checking for
different contexts) will avoid calling makecurrent when destroying a window.
That was always failing anyway.

Should fix https://phab.enlightenment.org/T311 for wayland_egl.
2013-08-23 16:19:42 -03:00
Sung W. Park 5ac17a52d5 Evas: Fix Evas_GL engine shutdown error.
It was trying to use access a struct for egl_disp after the struct
was freed..
2013-07-30 19:45:40 +09:00
Sung W. Park 7aa516c01a Evas: adding image dump debug feature for wayland_egl backend
Porting commit f10c108283d9b76708418ba172b9ff0b28a09cd6 to wayland
engine.

Added a feature to dump out a png image before calling SwapBuffers.
To turn on the feature, use the following env vars.

EVAS_GL_SWAP_BUFFER_DEBUG_DIR="dir_name" sets the name of the directory
that the files will be output to and enables the debug mode.

EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS=1 will enable the writing of the
files every frame.  This in effect turns on the swap_buffer_debug
variable, which can be set on or off in gdb for debugging.  This will
allow dumping of certain frames without having to dump out a ton of
files to track down one frame.
2013-07-23 10:27:28 +09:00
Carsten Haitzler 22ad827274 evas gl: fix origin of swapbufferswithdamage to be BOTTOM-LEFT based... 2013-07-03 12:11:18 +09:00
Chris Michael 0ae7282869 Port cedric's async uploading GL texture commit to wayland_egl engine.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-24 10:14:21 +01:00
Sebastian Dransfeld 51023d2d4f evas: Keep sane name for public header
Evas_Common.h should be used for the public header, and rather rename
evas_common.h internal header to another name.

Sa:
Evas_Common_Header.h -> Evas_Common.h
evas_common.h -> evas_common_private.h

Shouldn't have both Evas_Common.h and evas_common.h because of case
insensitive filesystems.
2013-06-20 12:53:29 +02:00
Chris Michael f6349ef9f9 Ooops, missing on "get_pixles" --> "pixels_get" conversion
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-17 23:37:18 +01:00
Chris Michael 0700e9dcc0 Fix render engine function "get_pixels" to be "pixels_get" (EFL
prefers verbs to be last for function declarations).

Also, remove unnecessary if block which was checking for the
Render_Engine pixels_get function as it was previously checked for in
the 'if' above.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-17 23:33:49 +01:00
Chris Michael dba0a5ea1f Formatting fixes
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-17 23:32:20 +01:00
Sung W. Park 8e6f0aa11c Evas: add partial rendering support for evasgl direct rendering
Evas_GL Direct rendering is an optimization path that renders
directly to the window if conditions are met.  Because evas gl
backend used to re-render the entire screen, evas_gl direct
rendering didin't have to concern with partial region rendering.
Now that partial rendering/swapping has been applied to evas gl-
backend, evas_gl direct rendering also had to take into account
clip regions. in order to properly apply it, some adjustments
were made to the engine functions and etc.
2013-06-17 18:32:00 +09:00
Sung W. Park d5d5a0125d Revert "Added Wayland fix for evas_gl direct fix"
This reverts commit e1c238b1be.
2013-06-17 18:21:55 +09:00
Sung W. Park e1c238b1be Added Wayland fix for evas_gl direct fix 2013-06-17 17:52:16 +09:00
Chris Michael 0926ed612f eglSwapBuffersWithDamage actually returns an EGLBoolean (unsigned
int), so fix.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-14 12:26:11 +01:00
Chris Michael 4d86f508ae Formatting fix for 80 columns...Spankies !! ;)
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-14 11:41:55 +01:00
Cedric Bail 1403b3a9ad evas: preliminary work on texture destruction for async preload of texture. 2013-06-14 16:38:18 +09:00
Cedric Bail 1073084807 evas: change cache API to forward Eo object. 2013-06-14 16:38:18 +09:00
Carsten Haitzler 745ce709a0 evas: wayland_egl - mirror changes for qcom tile begin/end in wayland egl. 2013-06-14 15:34:51 +09:00
Carsten Haitzler 7a9f40b5ee evas: wayland egl - mirror changes to gl_x11 for swapbufferswithdamage 2013-06-14 15:32:39 +09:00
Chris Michael 6b1e8905f8 Ok ... Big Wl Egl Overhaul...(evas portion)
- Setenv for egl_platform before we init gl/egl, etc
 - Ignore check for NULL surface to indicate destroying (this is all
not need now).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:53 +01:00
Chris Michael b951b98d47 Set render_engine info to new information in eng_setup before we do
comparisons.
Add comment about NULL surface being passed in.

Fix segfault when we close windows...uartie, this one's for you ;)

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-06 03:51:57 +01:00
Chris Michael 4d505eed1c When checking for engine info changes, use the New engine info passed
in to us for the checks (not the old existing engine info).

NB: Fixes T134 and T135 buggers

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-05 13:24:09 +01:00
Carsten Haitzler d32758e2de evas: mirror partial swap fix in wl egl and move to alloca for rect buf. 2013-06-05 18:11:46 +09:00