Commit Graph

72 Commits

Author SHA1 Message Date
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
Carsten Haitzler 20834f0925 match egl changes in x11 with wl. 2013-06-04 15:46:24 +09:00
Cedric Bail ad5d75dfcd evas: add support for engine specific extention during thread task. 2013-06-04 11:20:25 +09:00
Chris Michael b524b31256 Add new wayland_egl engine that does buffer age, double/triple
buffering, etc, and uses evas gl_common (so glview/simple tests in elm work).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael 30bd7c27e0 Add evas_wl_main file.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael c5355d32ee Add start of new wayland_egl engine code.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael ae9246beae Add evas_engine header file
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael a6dcda0adc Add new Evas_Engine_Wayland_Egl header.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael a0ed1b5b5d Remove old wayland_egl engine code in prep for rewrite to use gl_common.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael 23fc3b3da7 Fix possible memory leak reported by klockwork.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-29 13:11:54 +01:00
Eduardo Lima (Etrunko) 4c3242ca62 evas/wayland-egl: Don't crash when re->win is NULL
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
2013-05-16 15:04:55 -03:00
Stefan Schmidt efb05eb717 evas: No need to finish a block with NULL statement. 2013-05-14 15:45:22 +01:00
Sung W. Park 97806103eb evas: fix evas flushing its command queue to wrong gl context in gl-backends
For native surface rendering (glX, egl) in gl-backend,  if pixel get callback
function is called for native rendering, there is a case where evas will
try to call evas_gl_common_context_flush() to flush its remaining commands
in its command queue while the context is set current to the native surface/
context that is called within the pixel get callback.  So, I've added an
engine function that forces a flush before it enters the pixel get callback
function.
2013-05-13 14:12:36 +09:00
Rafael Antognolli aeb3669c6f evas/wayland_egl: Implement image_mmap engine method.
It looks like several methods like this one should be moved to a common
place (gl_common, maybe).
2013-05-08 17:47:55 -03:00
Rafael Antognolli 868206826a evas/wayland_egl: Update this engine after flags and attributes move. 2013-05-06 12:53:37 -03:00
Carsten Haitzler f8c9a8d167 revert the revert... damn you git!
Revert "Revert "Efl: replace eo_data_get for objects data referencing.""

This reverts commit b64a2994b3.
2013-05-02 16:47:16 +09:00
Carsten Haitzler b64a2994b3 Revert "Efl: replace eo_data_get for objects data referencing."
This reverts commit 654a3f5f94.
2013-05-02 14:17:19 +09:00
Daniel Zaoui 654a3f5f94 Efl: replace eo_data_get for objects data referencing. 2013-05-01 10:37:08 +03:00
Rafael Antognolli 1ec6dd5fbc evas/wayland_egl: Fix resize to the left or top when rotated. 2013-04-25 19:58:03 -03:00