Commit Graph

827 Commits

Author SHA1 Message Date
Jean-Philippe Andre 8d6f873354 Evas GL: Add API evas_gl_error_get()
Similar in meaning to eglGetError()

@feature
2014-10-20 12:16:06 +09:00
Jean-Philippe Andre 08889de92b Evas GL: Add some thread safety
This is only the core evas gl support.
TODO: gl_x11 and other engines
2014-10-20 12:16:06 +09:00
ChunEon Park 5718763ca3 evas/gl: code refactoring.
improve code readibility.
2014-10-19 15:39:51 +09:00
Cedric BAIL 4ea75113ca evas: GL_X11 context need to always be with alpha or it will fail to change.
@fix
2014-10-09 12:20:53 +02:00
Chris Michael 6480b8b75d evas-gl-common: Fix compile for EGL due to missing GL_LINE_SMOOTH
Summary:
When compiling for EGL, GL_LINE_SMOOTH ends up not being defined so
compile breaks. This fix just checks if GL_LINE_SMOOTH is missing and
if so it defines it.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-08 09:04:21 -04:00
ChunEon Park 026e767b86 evas: support anti-alias for gl line drawing. 2014-10-08 15:47:58 +09:00
Cedric BAIL dccbd559d4 evas: GL_X11 - add some more error message. 2014-09-30 18:31:51 +02:00
Cedric BAIL af40a4b4e1 evas: GL_X11 - remove lef over unref. 2014-09-30 18:06:12 +02:00
Cedric BAIL ebaec0dfaf evas: GL_X11 - fix use of deleted memory by pointing to the right data. 2014-09-30 17:23:25 +02:00
Cedric BAIL 59501027c0 evas: fix gl_context to correctly match window description after a change.
This was affecting use of GL backend when having a transparent window. It
is actually a fix for a bug reported by Thanatermesis. It has been inspired
by D1229.

To reproduce the issue just do ELM_ACCEL=gl elementary_test -to "Icon transparent".
2014-09-30 16:25:46 +02:00
Jérémy Zurcher 119134751f evas/engines: avoid redefinition of typedef Outbuf
'typedef struct _Outbuf Outbuf' is in software_generic/Evas_Engine_Software_Generic.h
that is always included
2014-09-23 11:16:47 +02:00
Jean Guyomarc'h ffb518fcdd evas: Gl_Cocoa - fix early segfault caused by unloaded symbols
Summary:
evas_gl_symbols() (introduced in commit 9a9d78d) was not dlsym()ed
which led to unloaded symbols, so NULL function pointers which were happily
dereferenced, leading to an early segfault, and therefore to a broken engine.

@fix

Reviewers: cedric, raoulh

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-09-22 14:59:27 +02:00
Jean-Philippe Andre 0d9005aa0c Evas GLX: Simplify code
if (A) then B else B
2014-09-19 10:29:58 +09:00
Gwanglim Lee bcf887153e evas/gl_drm: Remove drm own_fd handling from gl_drm engine
Summary:
These are obsolete codes because evas engines no longer
has a use case for handling the drm file descriptor. And also it
is the same change as what Stefan Schmidt did to evas_drm.

Test Plan: N/A

Reviewers: devilhorns, stefan_schmidt, cedric, raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1452
2014-09-16 11:17:39 +02:00
Chinmaya Panigrahi fdd501b773 Evas: fix resource leak.
Summary: Variable palpriv is going out of scope and leaks the storage it points to,
if we do not free it before exiting.

Test Plan: NA

Reviewers: seoz, raster, cedric

Subscribers: cedric, seoz

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-09-11 12:56:02 +02:00
Daniel Zaoui cabdbb2f3c Warning-- 2014-09-11 08:35:15 +03:00
Stefan Schmidt fd1b0053d7 evas-drm: Remove unused function prototype. 2014-09-08 16:21:23 +02:00
Stefan Schmidt 96b767ef77 evas/drm: Remove evas-drm handling of the drm fd
We now longer have a use case for opening the drm file descriptor in the evas
engine itself. This is now all handled in ecore_drm or ecore evas.
2014-09-08 15:14:42 +02:00
Stefan Schmidt 95b1b13c5e evas/drm: Remove trailing whitespace.
That one was looking at me each time I opened the file. Get away!
2014-09-05 16:26:59 +02:00
Stefan Schmidt 79660ae4ae evas/gl_drm: Follow change form evas_drm and remove tty_won and tty struct members
The evas_gl_drm engine followed the changes from evas_drm so we can safely
remove them here as well.
2014-09-05 16:15:22 +02:00
Stefan Schmidt bff3bee8a5 evas/drm: Remove now obsolete tty and own_tty struct members
We used these when expedite was using evas directly without ecore_evas.
That changed and we can now leave tty custody to ecore_evas and ecore_drm.
2014-09-05 15:55:08 +02:00
Chris Michael d3a207bf9a evas-drm: Fix evas-drm picking incorrect resolution/mode for outputs
This fixes an issue where we had to hard-code the resolution in the
wl_drm module. Instead, we now properly get the current screen
resolution/mode from the drm library and use that.

NB: This is needed to fix wl_drm module in Enlightenment to setup the
proper resolution.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-04 11:18:23 -04:00
Chris Michael 127acd0b26 evas-drm: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-04 11:18:23 -04:00
Gwanglim Lee 0d9f0d8ffb gl-drm: Make use of ecore_drm for handling tty
Summary:
Now, evas gl-drm engine is using ecore_drm instead of its own code to handle tty.
This patch has removed obsolete tty handling codes from engine. It is almost the same as what
Stefan Schmidt did to evas drm engine.

Test Plan: N/A

Reviewers: devilhorns, cedric, raster, stefan_schmidt

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1409
2014-09-04 13:20:17 +02:00
Gwanglim Lee a797d1a8ef gl-drm: Fix build warnings
Summary: Fix unused paramater and parentheses around assignment.

Test Plan: N/A

Reviewers: devilhorns, cedric, stefan_schmidt, raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1408
2014-09-04 09:58:23 +02:00
Cedric BAIL 6bb522cc6b evas: let's bet consistent and not break the build. 2014-09-04 08:54:08 +02:00
Dmytro Dadyka 0d2f4dbc11 [Evas/evas-3d] Add shadow maps. Added two scene-API functions for enable and disable shadows on the scene. Added 6 light-API function for set and get the light projection.
Reviewers: raster, cedric, Hermet

Subscribers: raster, cedric

Differential Revision: https://phab.enlightenment.org/D1330
2014-09-03 21:19:16 +09:00
Stefan Schmidt 2761b71c68 evas/engine/drm: Hold a reference to the Ecore_Drm_Device
We will need this in more places of the evas drm engine so keep a reference
in Evas_Engine_Info_Drm for later access.
2014-08-29 15:55:44 +02:00
Stefan Schmidt 5cc2a13763 evas/drm: Remove includes for TTY we no longer need here 2014-08-29 15:55:29 +02:00
Stefan Schmidt 5551567847 evas/drm: Remove rest of the tty handling which is now unused
With the move to ecore_drm for tty handling these all became unused.
Ecore_drm already takes care of setting up the SIGUSR1/2 handler and
the rest of the tty setup.

Now that this is gone evas_drm_init/shutdown have no functionality
anymore either.
2014-08-27 16:01:06 +02:00
Stefan Schmidt 9df3bb10bb evas/drm: Make sure the engine has the correct tty when called from expedite
When getting called from expedite we don't have ecore_evas in between which
normally sets things up for tty. Handle this special case here so the evas
drm engine keeps working for expedite.
2014-08-27 16:01:06 +02:00
Stefan Schmidt 9236a6d972 evas/drm: No need to check info.fd < 0 again as we just did that.
We are in a block here which already checked fro that. Remove this
and adjust indent.
2014-08-27 16:01:06 +02:00
Stefan Schmidt 92ba0c600f evas/drm: Remove obsolete tty open function
Ecore_drm handles this now for use. No need for duplicated functionality here.
2014-08-27 16:01:06 +02:00
Carsten Haitzler 75a04d6c7f evas gl - remove unused pointer variable return
fixes CID1039920
2014-08-25 12:55:40 +09:00
Carsten Haitzler 0b6fb19b77 evas - fix unused variable
fixes CID 1039921
2014-08-25 12:51:17 +09:00
Carsten Haitzler 489404c785 evas gl x11 - fix structurally dead code
fix previous "shut up unused params warnings code bits and use
EINA_UNUSED. fixes CID 1039495
2014-08-22 20:14:59 +09:00
Carsten Haitzler b21d6cfd0c evas gl common - remove logically dead code
fix CID 1039444
2014-08-22 20:14:59 +09:00
Carsten Haitzler f5d9fb1320 evas software generic - dont check ptrs - already not null.
we dont check these anywhere else - thus they are valid.

fix CID 1039390 1039391 1039392 1039393
2014-08-22 20:14:59 +09:00
Chris Michael bbe563b33b gl-drm: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-21 10:52:11 -04:00
Chris Michael 3fdbb9e855 gl-drm: Remove useless else block
Swap mode is already defaulted to MODE_FULL, so we don't need this
else here.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-21 10:52:11 -04:00
Chris Michael 97d53c1910 gl-drm: Remove blank line
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-21 10:52:11 -04:00
Mun, Gwan-gyeong f5b8109397 evas: add evas gl-drm engine
Summary: This is the first step to introduce a gl-drm backend.

Test Plan: "ecore evas" create with ecore_evas_gl_drm_new(). It creates "ecore evas" with gl_drm evas backend.
@feature

Reviewers: raster, Hermet, cedric, devilhorns

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-08-21 12:04:53 +02:00
Gwanglim Lee 53eebe014e evas: Evas_Wayland_Egl - change size of common gl context after egl make current according to current Outbuf's size
Summary:
This fixes broken rendering of the main surface when new surface is created.
Rendering on main surface can be broken due to invalid size of common gl context.
Since common gl context is shared between surfaces, if new surface has been changed
size of common gl context, then rendering on main surface can be broken.
In order to fix problem, engine has to change size of common gl context after egl
make current according to size of current Outbuf.
@fix

Test Plan:
run elementary_test with wayland_egl engine under wayland and click any
button to create new surface. watch the main surface of elementary_test.

Reviewers: devilhorns, raster, stefan_schmidt, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-08-21 12:04:53 +02:00
Gwanglim Lee 1563956299 evas: Evas_wayland_Egl - fix black surface during resize
Summary:
use eng_output_resize of software_generic engine and move wl_egl_window_resize to
eng_outbuf_reconfigure. and remove eng_output_resize of wayland_egl.
@fix

Test Plan: run elementary_test with wayland_egl engine under wayland

Reviewers: devilhorns, raster, stefan_schmidt, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-08-21 12:04:53 +02:00
Gwanglim Lee cba164072d evas: Evas_Gl_X11 - add missing eng_window_free
Summary:
add missing eng_window_free before return from eng_setup.
@fix

Test Plan: N/A

Reviewers: cedric, raster, devilhorns, stefan_schmidt

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-08-21 12:04:53 +02:00
Julien Isorce d3c56d5c74 xlib: fix undefined behaviour when freeing colormap too early
Summary:
On Ubuntu 14.04 it makes a 32 bit depth window un-responsive
to any XEvent.

Reviewers: cedric, raster

Reviewed By: raster

Subscribers: raster, capOM, cedric

Differential Revision: https://phab.enlightenment.org/D1236
2014-08-21 18:40:02 +09:00
Chris Michael 37b4bcdbd9 evas-gl-generic: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-19 13:47:22 -04:00
Chris Michael e8023b06e0 evas-gl-generic: Remove useless returns
There is really No point in having the 'return' here as we fall out of
the function anyway.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-19 13:47:10 -04:00
Chris Michael 1fc4ccf67a software-generic: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-19 13:47:10 -04:00
Chris Michael b44a068b4b evas-wayland-egl: Fix wayland egl engine not rendering
Reset the Outbuf's Engine information pointer.
We also don't need to do an eng_window_free during reconfigure because the
software_generic_update function will free it anyway.
We should also re-setup the tilebuffer during eng_setup.
Fix gl_context resize to work even if there is no wl_egl window setup
yet.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-18 16:11:15 -04:00
Chris Michael 958a14e416 evas-wayland-egl: Don't resize gl_context during first_rect
This is the first part of the wayland-egl engine fix. Don't resize the
gl_context during the first_rectangle function, and don't set any
preserve bits on the gl_context

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-18 16:09:57 -04:00
Chris Michael facec1852f evas-wayland-egl: Increment frame count after flush
When we flush the Outbuf, we should be incrementing frame count

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-18 10:44:55 -04:00
Chris Michael 89fb7bf249 evas-wayland-egl: Check for valid tilebuffer before setting tile size
We should check for a valid Tilebuffer before calling tile_strict_set

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-18 10:43:38 -04:00
Chris Michael db31d0ba97 evas-wayland-egl: Free Outbuf if gl_generic_init fails
If we fail to init gl_generic then we should cleanup properly and free
the recently created Outbuf.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-18 10:42:07 -04:00
Cedric Bail 396433bbc2 evas: handle GL_LUMINANCE_ALPHA.
This fix T1459. I have added an ERR to catch this kind of issue earlier.
I am wondering if that should not be even a CRI.

The reason why we do see the problem only after the introduction of the
use of Eina_Rectangle_Pool is due to how efficiently they pack data, resulting
in ressource ending up in the wrong format bucket. Nothing wrong with the
patch itself.
2014-08-16 15:15:07 +02:00
Cedric Bail dde9a1e977 evas: allocate enougth atlas for all supported format. 2014-08-16 15:15:07 +02:00
Carsten Haitzler 401d788bd6 evas gl - fix undefined return added from coverity fixing 2014-08-16 12:40:42 +09:00
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
Carsten Haitzler 2098e8c856 evas gl - fix yuv smooth rendering
i found that we are not setting u and v to be smooth (linear
interpolate) for yuv reendering, even when asked. they remain at a
default "nearest". this enables linear for u and v always, meaning
even when smooth is off, we still interpolate u and v (not y), and
even when at 1:1 with no scaling u and v get interpolation for better
quality.

@fix!
2014-08-15 12:11:33 +09:00
Carsten Haitzler 5a722ca6fe fix structurally dead code warning
CID 1039494
2014-08-14 20:21:19 +09:00
Carsten Haitzler 111fd9339c evas gl - fix structurally dead code
unused var protection in ifdef - use unused macro instead. fixes
CID 1039495
2014-08-14 20:18:56 +09:00
Carsten Haitzler 03f7ff5f27 evas sw-x11 - fix pointless code in dri swapper
this fixes CID 1039620 - it pointed out a pointless null check.
2014-08-14 19:49:34 +09:00
Carsten Haitzler 1294a91201 evas gl generic - remove dead code
coverity CID 1039633 pointed out dead code and some invalid null
checks. fixed!
2014-08-14 19:44:16 +09:00
Carsten Haitzler 31045df0d2 evas gl - fix possible null tls resource access in bindframebuffer
this fixes CID 1181887
2014-08-14 17:41:55 +09:00
Chris Michael 15064d51c9 evas-software-x11: Remove EINA_UNUSED for function paramater that is
used

Render_Mode is used here so we don't need EINA_UNUSED for it in the
function.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-13 10:23:47 -04:00
Chris Michael 4ad176e481 evas-gl-common: Fix invalid use of Texture
We cannot use the texture to find a valid format Before the texture is
actually created. This is invalid, leads to "warning: tex is used
uninitialized' message from the compiler, and just plain wrong.
Instead, use the alpha property of the Evas_GL_Image to find the
proper texture format, Then create the texture.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-13 09:38:33 -04:00
Carsten Haitzler a44f15ec8e evas software generic engine - fix tb configuring to be consistent
this addresses CID 1224761 - consistent checks for tb in render engine
2014-08-13 19:11:49 +09:00
Carsten Haitzler 05d839e854 evas gl x11 engine do extra check to make coverity happen
this fixes CID 1226192
2014-08-13 18:27:46 +09:00
Carsten Haitzler 2ac4f520d6 fix resource leak on format lookup fail
so in fixing one CID for a format lookup failing and thus invalid mem
access, a possible leak was made in this case. fix that by doing
lookup before any allocation and if lookup fails, return there

this fixes CID 1230999 1230998 1230997
2014-08-13 08:49:07 +09:00
Carsten Haitzler a97f5d7bb8 evas gl common - fix possible negative array accesses if search format fails
this should fix CID 1223506, 1223505, 1223504
2014-08-12 17:32:04 +09:00
Carsten Haitzler 8845ecb2b2 evas gl common - fix potential invalid access during texture free
this should address CID 1223507
2014-08-12 17:25:15 +09: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
Stefan Schmidt 9283575490 evas/gl_common: Use the right list when removing aptt
Another classical copy and paste error. All references but one replaced.

CID: 1223502
2014-08-08 14:54:56 +02:00
Carsten Haitzler 01cd90b6c3 evas gl - glx - sety current to NULL on free of window or context
hunting a mem leak i found we dont nuke the current context when
freeing it or the window bound to the current context. fix this.
2014-08-07 19:39:16 +09:00
Carsten Haitzler f5cff9490e evas gl - did not free all atlas formats - fix
we have expanded atlas formats long since - so use #define to free
correct amount instead of 6
2014-08-07 18:25:20 +09:00
Carsten Haitzler 8b796edce7 evas gl - fixz minor leak on exit of rectangles
these were static rect cutouts, so they stayed around on exit and thus
we "lost" them. this nukes them on context free and each new frame.
fixes the "leak"
2014-08-07 18:15:50 +09: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
Carsten Haitzler beb7e6e611 evas - gl-x11 - extensions - be more specific about video_sync extn
this should avoid false-positive detection for this extension - other
extensions share string content
2014-07-30 21:40:16 +09:00
Chris Michael aea57d7a8e evas-wayland-shm: Free allocated rectangle after sending damages
We allocate a new eina_rectangle here, but we never free it after
sending damages to the surface.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-29 17:45:24 -04:00
Cedric BAIL 3c179cdb87 evas: move to SDL2 and use GL_Generic infrastructure. 2014-07-25 20:24:29 +02:00
Cedric BAIL 9a9d78dfcb evas: provide GetProcAddress by the engine. 2014-07-25 20:24:28 +02:00
Chris Michael 278d55bf0f evas-drm: Remove extra blank line
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-16 11:35:26 -04:00
Stefan Schmidt 18989020d7 evas/drm: Make use of ecore_drm for opening DRM device
We use this functionality already from ecore_drm. The evas version does
not even use udev to acquire the device which means we could not support
hotplugging. The only missing feature was the capability check for
DUMB_BUFFER which I added to ecore_drm now.

This is the second iteration of this patch. Thsi time also taking expedite
runs of he evas drm engine in account.
2014-07-16 08:53:43 +02:00
Cedric BAIL de2536e892 evas: remove useless declaration from GL_Generic. 2014-07-14 15:46:54 +02:00
Cedric BAIL cec904cd03 evas: make gl_x11 rely on gl_generic.
Note that we can't access gl_common directly as it is not possible to link it
2 times. I also didn't want to force evas to be linked with GL/EGL. So I rely
now on dlsym on about 20 symbols to get that backend going.
2014-07-11 15:32:51 +02:00
Cedric BAIL ac9cd35892 evas: add gl_generic backend.
This is the first step to introduce a common gl infrastructure for all gl based backend.
For now it is strictly doing the exact same thing that the gl_x11 was doing, but I already
spoted that a lot of the optimization in gl_x11 where not incorporated in other gl backend.
So this is going to help everyone by sharing more code on a crucial part of our infrastructure.
2014-07-11 15:32:51 +02:00
Cedric BAIL 0d00b476cb evas: export symbol from gl_common so that loading gl_generic can expose them. 2014-07-11 15:32:51 +02:00
Cedric BAIL 4f18b499ac evas: check if Render_Engine was created before using it in error case. 2014-07-11 15:32:51 +02:00
ChunEon Park 7e8d43ee85 Revert "evas/gl: improve the rendering quality."
This reverts commit 5e18223f67.

Conflicts:

	src/modules/evas/engines/gl_common/evas_gl_context.c

we've got a side effect(another quality issue) of the patch. so revert it.
2014-07-11 14:50:20 +09:00
Jean-Philippe Andre 7512a54954 Evas gl: Fix upload of RGB+A textures [INCOMPLETE]
The textures have duplicated borders, take them into account.
2014-07-11 13:41:38 +09:00
Jean-Philippe Andre 24f38eaf6d Evas gl: Replace all remaining references to mask stuff by alpha
Masking is not used (there even was a recent commit by Hermet to
remove most of the occurences of mask shaders in GL), and I've
introduced a new ETC1+Alpha feature. Replace the old texm and
associated variables by texa for alpha texures.
2014-07-11 12:20:07 +09:00
Cedric BAIL 255ceb419c evas: gl_common already provide the infrastruture to manipulate ImageSEC. 2014-07-10 11:34:34 +02:00
Chris Michael d7b7f19e5e evas-engine-wayland-shm: Check for depth being INHERIT on reconfigure
Software Generic backend can send us OUTBUF_DEPTH_INHERIT during a
reconfigure. If we are inheriting the previous depth, let's check that
so we don't get needless destrouction/recreation of shm buffers.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-09 12:57:17 -04:00
Chris Michael d5443ffbce evas-engine-drm: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-09 11:39:46 -04:00
Chris Michael a20a12bfbc evas-engine-drm: Fix evas drm engine bufer depth
Seems the new software_generic backend is passing in
OUTBUF_DEPTH_INHERIT during a reconfigure, so let's add a check for
that else if not, the entire drm engine stops rendering due to output
buffers not being created to match the framebuffer depth.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-09 11:39:46 -04:00
Chris Michael 89d4384b14 evas-engine-drm: Fix update of output buffer size
Adjust the ob->w/h dimensions After the framebuffer has been setup
because we cannot have output buffers smaller than the framebuffer

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-09 11:17:21 -04:00
Chris Michael 4f8b8cd398 evas-engine-drm: Fix software_generic_update to use the correct size.
We cannot use epd->output.w/h in these calls as the setup of the
output buffer May cause a resize. Drm buffers cannot be allocated
Smaller than the framebuffer size, so evas_drm_outbuf_setup function
May resize the ob->w/h to match the framebuffer.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-09 11:15:39 -04:00
Cedric BAIL 8d53f4ca3b evas: correct multi buffer support. 2014-07-09 16:14:57 +02:00
Cedric BAIL 68110c63b6 evas: actually put the specific code in the right place. 2014-07-09 15:17:03 +02:00
Jean-Philippe Andre c65918eaed Evas gl: Add errors when using ETC1+Alpha as a normal texture 2014-07-09 14:01:11 +09:00
Jean-Philippe Andre ec9ffd0ae8 Evas gl: Fix invalid number of atlasses
Left-over from a local experiment where ETC1+Alpha had its own
texture pool. Not required.
2014-07-09 12:39:18 +09:00
Jean-Philippe Andre c7d290b447 Evas gl: Remove non-existent filters from compile.sh 2014-07-09 10:40:25 +09:00
Jean-Philippe Andre 698f7f1770 Evas gl: Don't use glCompressedTexSubImage2D for ETC1
Eeeeh. Not only we don't support atlasses with this RGB+A thing
yet, but ETC1 does not even support SubImage2D (according to the
current spec).

Also, fix a few typos in that same function.
2014-07-09 10:18:34 +09:00
Jean-Philippe Andre cb0eef29c8 Evas gl: Fix potential memleak
Fixes CID 1224765.
This CID reports a potential memleak in an "assert" situation.
2014-07-09 09:41:40 +09:00
Jean-Philippe Andre c0b7957d17 Evas gl: Simplify cspace matching for textures
Some colorspaces (ETC, S3TC, GRY, ...) don't care about the value
of BGRA support or the alpha flag. So, let's introduce the
new boolean^Wenum value MATCH_ANY ;)

Note: the compressed texture formats with alpha support have been
marked as matching both TRUE and FALSE for alpha. The images
should always have the alpha flag set to TRUE, though.
The BGRA flag really doesn't matter.
2014-07-09 09:05:37 +09:00
Jean-Philippe Andre 48bcf182b4 Evas gl: Add support for ETC1+Alpha textures
Compile-in the required shaders, add support for the
new EVAS_COLORSPACE_ETC1_ALPHA, and upload textures as RGB+A
pairs.

@feature
2014-07-09 09:04:55 +09:00
Jean-Philippe Andre 224506171f Evas gl: Add shaders for RGB+Alpha mode
These shaders take two textures as input and sample RGB from
texture 1 and alpha from texture 2. This is the non-premultiplied
version, so RGB' = RGB*A.

This includes only the GLSL code.
2014-07-09 09:04:55 +09:00
Jean-Philippe Andre 23e60bd6ff Evas gl: Fix path resolution in compile.sh
Let's make compile.sh work from anywhere (not just from its
containing directory). Also fix problem with calling make-c-str.sh
without setting PATH.
2014-07-09 09:04:55 +09:00
Chris Michael d929151458 evas-engine-drm: Fix invalid variable check
We need to check if evas_outbuf_setup Failed and did not return a new
ob for us to work with...so this if check was invalid

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-08 14:43:29 -04:00
Chris Michael 8534fe1179 evas-engine-drm: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-08 14:43:21 -04:00
Chris Michael 69bac9d701 evas-engine-drm: Fix drm engine breakage from Frenchie
We need to have the drm fd & tty setup Prior to creating the output
buffer so that the output buffer knows what drm card to use

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-08 12:20:42 -04:00
Chris Michael ea8ffdf433 Revert "evas/drm: Make use of ecore_drm for opening DRM device"
This reverts commit 31ad73efa9.

Conflicts:
	src/modules/evas/engines/drm/evas_engine.c

Revert this commit as these functions are needed to run evas engine
standalone (expedite) on drm
2014-07-08 12:09:31 -04:00
Chris Michael e2ad7a18f9 Revert "evas/drm: Remove obsolete tty open function"
This reverts commit 1db13194a2.

Revert this commit as this is needed to run the evas engine in
standalone situations like expedite.
2014-07-08 12:09:23 -04:00
Cedric BAIL 5bf4ae22cb evas: fix bogus update rect, that's what I call black magic. 2014-07-08 14:27:08 +02:00
Cedric BAIL 1b14531146 evas: fix use of already freed data use. 2014-07-08 11:00:23 +02:00
Dmytro Dadyka 8e496570a7 evas: Evas_3D - add fog effect. add two API function for enable and disable fog effect for given mesh.
Reviewers: Hermet, raster, cedric

CC: cedric

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

Signed-off-by: Cedric BAIL <c.bail@partner.samsung.com>
2014-07-07 19:26:48 +02:00
Cedric BAIL e85bcfafa4 evas: fix wayland_shm to report buffer state as expected by software generic backend. 2014-07-07 18:27:32 +02:00
ChunEon Park b3d11fae4c evas/gl - removed MASK ramains. 2014-07-07 17:08:22 +09:00
Gwanglim Lee e3192c374d evas: gl_x11 - add missing function pointer glsym_eglSwapBuffersWithDamage
Summary: added missing global function pointer to gl_x11

Test Plan: N/A

Reviewers: cedric, raster, devilhorns

CC: cedric

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

Signed-off-by: Cedric BAIL <c.bail@partner.samsung.com>
2014-07-06 20:19:34 +02:00
Chris Michael 0168b96040 evas-software-generic: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-07-06 12:36:46 -04:00
Cedric BAIL 235caec745 evas: remove multiple definition of glsym_eglSwapBuffersWithDamage. 2014-07-06 18:18:29 +02:00
Cedric BAIL 6d7df3cc90 evas: fix warning due to change in software generic backend. 2014-07-06 18:16:45 +02:00
Cedric BAIL f1590e06b0 evas: fix build break with GLES. 2014-07-06 18:16:10 +02:00
Cedric BAIL 87bcb1da23 evas: missing shared declaration. 2014-07-05 21:03:36 +02:00
Cedric BAIL 410a2a7953 evas: missed replacement. 2014-07-05 13:13:43 +02:00
Cedric BAIL 914b529e38 evas: make partial update extention compile for every one in gl_x11 backend. 2014-07-05 12:50:56 +02:00
Cedric BAIL 380115c025 evas: update Windows backend to use the software generic interface. 2014-07-04 16:07:52 +02:00
Cedric BAIL 14d22c5a08 evas: migrate GL_X11 to use more infrastructure of software_generic. 2014-07-04 15:11:22 +02:00
Cedric BAIL 289b3691b0 evas: add more infrastructure to software_generic backend to be ready for GL_X11 migration. 2014-07-04 15:11:22 +02:00
Cedric BAIL 4be4991315 evas: rename Evas_GL_X11_Window to Outbuf. 2014-07-04 15:11:22 +02:00
Cedric BAIL ab6dd99ed8 evas: add support for merging redraw area across multiple frame with different logic. 2014-07-04 15:11:22 +02:00
Cedric BAIL 35648c09be evas: remove unused include that can lead to problematic include on some platform. 2014-07-04 15:11:22 +02:00
Cedric BAIL c4aa53bef0 evas: make DDraw backend use more software generic. 2014-07-04 15:11:22 +02:00
Cedric BAIL 38117f9a25 evas: Make GDI backend use more software generic infrastructure. 2014-07-04 15:11:22 +02:00
Cedric BAIL 0fdf8fab3a evas: simplify Wayland_SHM backend to use software generic infrastructure. 2014-07-04 15:11:22 +02:00
Cedric BAIL e4a4304dc4 evas: simplify DRM backend to use Software generic infrastructure more. 2014-07-04 15:11:22 +02:00
ChunEon Park dad74f7455 evas/gl - removed redundant shader masking code. 2014-07-04 21:10:20 +09:00
Carsten Haitzler 1eaf26989b evas - gl common - fix drop of image on cache hit in gl engine images
@fix - this fixes a leak (reference count leak)
2014-07-04 12:26:16 +09:00
Jean-Philippe Andre b0df307927 Evas gl: Add support for S3TC textures
Add support for DXT1, DXT3 and DXT5 textures (4 formats in total).

@feature Add support for S3TC textures if the GPU supports them
2014-07-03 15:36:22 +09:00