Commit Graph

1809 Commits

Author SHA1 Message Date
Dongyeon Kim 1a2c6ba1e1 Evas GL: Fix build errors for glx backend
Summary:
Fix build errors for glx backend made from previous commit
Revert parameter naming

Test Plan: Local Evas GL tests for 1.1, 2.0, and 3.0

Reviewers: jpeg

Subscribers: mythri, wonsik, cedric, mer.kim

Differential Revision: https://phab.enlightenment.org/D2117
2015-03-16 15:56:49 +09:00
Dongyeon Kim d8fc60e0e6 Evas GL: Use EGL image to share between Evas GL and GL backend
Summary:
When the context version between Evas GL and GL backend differs,
we cannot share texture between them.
So, when the driver has support for KHR_gl_texture_2D_image extension,
use EGL image to share between Evas GL and GL backend

Test Plan: Local Evas GL tests for 1.1, 2.0 and 3.0

Reviewers: jpeg

Subscribers: mythri, mer.kim, wonsik, cedric

Differential Revision: https://phab.enlightenment.org/D2115
2015-03-16 15:56:49 +09:00
Dongyeon Kim eae786917c Evas GL: change function naming and small bug fixes
Summary:
Remove gles1 prefixes for functions that are also used by gles3.
Refactor evgl_make_current a little bit.
Destroy indirect context properly.
Some log message changes and typo fixes.

Test Plan: Local tests on desktop PC

Reviewers: jpeg

Subscribers: mythri, mer.kim, wonsik, cedric

Differential Revision: https://phab.enlightenment.org/D2104
2015-03-16 15:56:48 +09:00
Jean-Philippe Andre 8cf1dda9df Evas GL: Fix logic in debug check 2015-03-16 15:56:48 +09:00
Jean-Philippe Andre 8f57cbcdd6 Evas GL: Fix build errors and warnings from previous commit 2015-03-16 15:56:48 +09:00
mythri.venugopal 4d1a45627f Evas GL: Add support for Evas GL 3.0
Summary:
This should enable applications to use GLES 3.0 through evas gl.
Todo: Fix indirect rendering issue occuring because texture objects
cannot be shared between different version of GLES contexts.
Todo: extension pointers need to be updated for GLES 3.0

Reviewers: wonsik, spacegrapher, jpeg

Subscribers: cedric

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

@feature
2015-03-16 15:56:43 +09:00
Jean-Philippe Andre bb134a5cc3 Evas GL: Remove excessive debug
- Check debug flag before warning that a surface is not direct
- Remove notes about surface reconfigure, as this will not be implemented
  (see previous commit).
2015-03-16 14:55:40 +09:00
Wonsik Jung 25502e37f8 evas_gl: Add feature to set depth/stencil/msaa bit to window surface.
Summary:
When Evas GL runs with direct rendering, it can not set depth, stencil and msaa to Window surface.
This patch is possible to use "option" input paramater of ecore_evas_gl_x11_options_new.
So, new API is not needed.

The other patch is in elementary. The elementary patch will be used this patch.

Test Plan: Test elm gl veiw in elementary_test and JP's test app.

Reviewers: spacegrapher, cedric, raster, jpeg

Reviewed By: jpeg

Subscribers: cedric, mer.kim

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
Note: jpeg changed the original patch a bit (fix style and depth value)
2015-03-16 14:50:56 +09:00
kabeer khan af48f3455d evas: correcting transpose and transverse of software_generic image rotation support.
Summary:
Current definition of transpose and transverse was wrong. Corrected it by
interchanging both definitions.

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-13 09:33:29 +01:00
Nicolas Aguirre cf730014cf evas: symetric lock/unlock calls in gl_cocoa backend.
this code add symetric calls to lock and unlock focus view

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:59 +01:00
Nicolas Aguirre 3c14cab0c6 evas: free EvasGlView when the evas is freed in gl_cocoa backend.
EvasGLView is now correctly freed when the Evas is destroyed

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:58 +01:00
Romain Perier 6e193e2006 evas: lock and unlock focus on Cocoa view when drawing surface
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:58 +01:00
Romain Perier c80d7adbc2 evas: use a shared OpenGL context in gl_cocoa backend.
Evas GL backend uses a global OpenGL context for all windows inside
an application. Each window has its own texture to render its
content. We use a singleton NSOpenGLContext shared between all
NSOpenGLView, it solves rendering issues for multiple windows.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:58 +01:00
Romain Perier 422178b216 ecore_evas: add support for multiple windows to cocoa backend.
Each new Ecore_Evas was already stored into the evases container, however only
the first one was returned and used from events handler, which is not correct if
the application uses multiple windows. This commit adds support to handle
Ecore_Event_Cocoa_Window event type from event handlers and modify
_ecore_evas_cocoa_match() to find the right Ecore_Evas associated with the window
indentifier passed throught Ecore_Event_Cocoa_Window.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:58 +01:00
Nicolas Aguirre 1818f96004 evas: remove warnings due to unused variables from gl_cocoa backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:58 +01:00
Jean-Philippe Andre b7d1615be7 Evas GL texture: Fix invalid interpolation pixel
The pixel on the top-right of a texture was set using an invalid offset.
"luckily" this never crashed but probably could have with wide
single-row images.

Also, the output was not perfectly correct.
2015-03-09 20:32:01 +09:00
Subodh Kumar 554b2cd9da eina: minimize fragmentation of chainned mempool.
Summary:
Previously: Each allocation happened in the first chain after any free.
Now: All allocation will happen in one chain until all buckets are full, this can reduce
fragmentation to some extent.

Reviewers: seoz, govi, shilpasingh, raster, cedric

Reviewed By: cedric

Subscribers: cedric, rajeshps

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-06 20:19:20 +01:00
Jean-Philippe Andre 03ab2e27c8 Evas GL common: Create OpenGL ES 3.x contexts by default
Automatically fallback to OpenGL ES 2.0 if OpenGL ES 3 is not supported.
This is a first step in trying to support GLES 3 for Evas GL.

This commit is also a wild test to see whether using GLES 3 contexts
by default will break anything. The theory says that GLES 3 is
backwards compatible with GLESv2.

So, if anything GL breaks for you... scream loudly!
But before reporting any bugs, please set the env variable:
- export EVAS_GL_DISABLE_GLES3=1

This does not add any requirement for GLESv3 support.
2015-03-05 20:59:53 +09:00
Jean-Philippe Andre 611741e65d Evas GL: Fix list of extensions with GLESv1
EGL/EvasGL extensions are also valid with GLESv1.
This means evasglCreateImage could be used.

@fix
2015-03-05 20:59:50 +09:00
Jean-Philippe Andre fecc487b3b Evas GL: Fix CRI message on shutdown
Just a simple log domain issue (EvasGL was not initialized, so
ERR() would trigger a fatal error). EvasGL is now initialized
on demand when a new GL surface is requested.
2015-03-05 16:19:18 +09:00
Mike Blumenkrantz 07a6d138a9 ee-wl should probably clamp configure event resize to output size for fs wins
fs configures are 0x0, so reuse existing output size here to get accurate sizes
2015-03-04 16:49:19 -05:00
Chris Michael da80ee8cc2 ecore-evas-drm: Fix function call to ecore_evas_pointer_xy_get for drm
engine

Summary: This changes the ecore_evas_pointer_xy_get function call (on
drm engine) to use the new ecore_drm_device_pointer_xy_get so we can
center mouse pointer on an output at startup.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-04 11:49:44 -05:00
Jean-Philippe Andre f020171bf2 Evas GL common: Disable evas gl preload by default
Unfortunately, this "feature" has many problems and does not really
fix those it was supposed to address:

- Elm Photocam becomes horrible to use (the transition from
  low-res to high-res tiles triggers this miniature path).

- Evas async preload callback is called before the full image
  is ready (ie. the texture is not uploaded yet), when really
  the preload callback should be triggered only once the image
  is 100% ready. (TODO)

- Sometimes the miniature image keeps being used even though the
  main image has been uploaded (eg. with E background). Maybe the
  object image is not redrawn when it should.

- This uses a separate thread for the upload, which is both a good
  and bad idea because we need to do a make current. Also, this does
  not upload the full-res image tile by tile, but only in one pass,
  thus blocking the render loop until finished.

This patch changes the env var from "EVAS_GL_NOPRELOAD" to
"EVAS_GL_PRELOAD" (and only "1" will enable).

Sorry Cedric, we can talk later about how to improve this.
2015-03-04 17:31:31 +09:00
Jean-Philippe Andre 53d3cb4fec Evas GL common: Improve quality of miniature image
Sample in the middle of the "macro pixels" and fool around with the
borders (usually used to limit linear sampling artifacts) to improve
image quality on the edges.

Those miniatures are still 16x16 but MAAAYYYYYBE they will look a bit
less awful.

NOTE: The first row still doesn't scale properly (interpolates with
      garbage above y=0).
2015-03-04 17:31:07 +09:00
Jean-Philippe Andre b19d3599a5 Evas GL common: Force smooth scaling on miniature images
When evas GL uploads textures, it will first upload a 16x16 miniature
image, and then wait for some idle time in the main loop to upload the
high-res image.

Some images may not have smooth scaling enabled which results in the
miniature scaled with GL_NEAREST, showing big ugly squares. Let's
force smooth scaling instead, for a blur image rather than a
checkerboard.
2015-03-04 15:27:21 +09:00
Jean-Philippe Andre be3b011822 Evas GL: Fix build error on some systems w/o Wayland
Thanks Mythri for the report.
wl_display and wl_resource is declared in eglmesaext.h but older
systems may not have that.
2015-03-03 20:57:59 +09:00
Jean-Philippe Andre bea9567d0e Evas GL: Kill runtime warnings caused by auto fallback
The previous commit modifies the concept of direct rendering
vs. indirect rendering, so some runtime checks (in debug mode
only) will fail.

This commit introduces two new engine functions:
 - gl_get_pixels_pre
 - gl_get_pixels_post

The latter will be used in a later patch for optimization.
2015-03-03 20:08:16 +09:00
Jean-Philippe Andre a14492ef73 Evas GL: Automatic fallback to indirect rendering when the scene has
not changed.

Automatically fallback to indirect rendering on FBO or X11 Pixmap
if the Evas Object Image is not marked as dirty. This should
improve the performance and/or power consumption in those
rare cases where this area of the canvas needs to be redrawn
but the GL content has not changed.

@feature
2015-03-03 18:11:32 +09:00
Jean-Philippe Andre 21051d3252 Evas masking: Use mask_smooth to differentiate "shaders"
If mask_smooth changes, it should trigger a flush of
the pipeline (and call glDrawArrays).

This may or may not fix some potential bugs with masking.
2015-03-02 20:47:17 +09:00
Jean-Philippe Andre e531ab9bc0 Evas GL: Use Eina_Strbuf for the extensions list
The usage of strcat/strncat was not safe, and even Coverity reported
about it.

Fixes CID 1256197:
CID 1256197 (#1 of 2): Buffer not null terminated (BUFFER_SIZE_WARNING)
1. buffer_size_warning: Calling strncpy with a maximum size argument
of 10240 bytes on destination array _gl_ext_string of size 10240 bytes
might leave the destination string unterminated.
2015-03-02 19:51:30 +09:00
Dongyeon Kim 753b2b6e78 Evas GL: remove evgl_init in gl_get_pixels_set
Summary:
gl_get_pixels_set is called in evas_object_image_render
even when evas gl is not used.
As gl_get_pixels_set does not actually call evas gl functions,
we can safely remove evgl_init macro here.

Reviewers: raster, cedric, jpeg, Hermet

Subscribers: cedric, mer.kim, wonsik

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-03-02 16:29:22 +09:00
Dongyeon Kim 80b21a7d3f evas/gl_x11: fix duplicated egl error check
Summary:
When egl window surface creation fails, eglGetError() is called twice,
thus removing error state.

Reviewers: cedric, Hermet, jpeg

Reviewed By: jpeg

Subscribers: mer.kim, wonsik, cedric

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-03-02 16:22:12 +09:00
Minkyoung Kim de797bbd3b Evas GL: Fix abnormal extension name.
Summary: Fix abnormal extension name.

Test Plan: local test.

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: wonsik, cedric, spacegrapher

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-03-02 16:20:07 +09:00
Dongyeon Kim a32edfaf19 evas/gl: implement dynamic hint set using tbm surface
Summary:
Currently dynamic hint set is implemented using eglMapImageSEC extension,
which is no longer supported by any drivers (should be deprecated)
This patch implements dynamic hint set using Khronos extension EGL_TIZEN_image_native_surface.
Since tbm surface library is required for this, libtbm.so is queried at context new.

Test Plan: Local tests

Reviewers: raster, Hermet, cedric, jpeg

Subscribers: mer.kim, wonsik, cedric

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>

jpeg: I also fixed a few minor style issues and two warnings (bad function
names, glsym instead of secsym).
2015-03-02 15:55:47 +09:00
Jean-Philippe Andre 433d24cfa0 Evas GL common: Remove uniform-related stuff
Remove last traces of the uniforms stuff for shaders, that was
removed in the following commits: 6b48c106d3 and cfd337a758.

Don't use uniforms in the evas GL pipeline, at least not like that.
2015-03-02 11:30:34 +09:00
Chris Michael d7a8626f5b evas-gl-drm: Fix T2158: compile fails when --with-opengl=full is passed
Summary: This fixes compile for the gl_drm engine if
--with-opengl=full is passed on the cmd line. These changes are
based on the diff provided by spotrh in the above ticket.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-01 10:49:10 -05:00
Chris Michael f14a893ce5 evas-gl-drm: Cleanup compiler warnings for dbg/err messages
Summary: This commit compiles out the debug messages that were
generating compiler warnings during build. You can reenable these
messages if you uncomment GL_DRM_DBG in evas_engine.h

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-01 10:45:39 -05:00
Chris Michael 3bb11b938c evas-software-x11: Provide TBM Native Surface support for xcb engine
Summary: This adds support for native surfaces in xcb. Previously when
the TBM Native Surface support was added, it broke the xcb build.
These commits fix that issue.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-27 10:36:58 -05:00
Chris Michael 24c92d8caf evas-software-x11: Remove improper EINA_UNUSED for function parameter
Summary: In the _native_bind_cb function, the data parameter is
actually used inside here, so having EINA_UNUSED on the function
parameter is incorrect.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-27 10:29:06 -05:00
Jean-Philippe Andre 2e3ee0e658 Evas masking: Fix double free() with scaled images
The function image_scaled_update() frees() the old scaled image
passed as input if it doesn't match the old dimensions. This commit
will avoid double frees.
2015-02-27 17:56:49 +09:00
Jean-Philippe Andre ab89dc401c Evas masking: Check fill properties to consider image as filled
Edje may not set the filled flag on an image even if its fill
properties make it fill the whole object. For masking, it can
then be considered as a filled image.
2015-02-27 15:57:36 +09:00
Jean-Philippe Andre 87aed21c05 Evas masking: Remove commented-out code
I shouldn't have pushed this :)
2015-02-27 14:11:59 +09:00
Jean-Philippe Andre 0da6278af8 Evas masking: Fix masking of maps in GL
This completes the transition to auto-scaled mask images when
using the GL engine. Now the shaders do the work on-the-fly of
resizing the mask.
2015-02-27 13:06:09 +09:00
Jean-Philippe Andre fab0d7f9d3 Evas masking: Simplify previous commit
Call object's function to get the private engine_data (here, the
image object). Thanks Dongyeon for your patch which inspired me to
do that instead of forcing pre_render.
2015-02-27 13:06:09 +09:00
Jean-Philippe Andre fddaf62fcc Evas masking: Add fast path for image-only masks in GL.
This will currently optimize most of the masks when using the
GL engine[1].

This is a very special case that adds a highly optimized path
for masking in GL. It works by creating a virtual image, containing
a pointer to the original image and a new geometry[2].

Instead of creating a new FBO-based surface (image_map_surface),
we refer to the original image and adjust the mask geometry on
the fly.

KNOWN BUGS:
- masking a map with such a scaled image is now broken.

[1] Right now all masks are simple Evas Object Image, so that means
    all cases of masking, except masks of masks, or masks of maps,
    will be optimized with this new method.

[2] This virtual image mechanism is still quite hackish and may
    be improved (for memory usage, refcounting, etc...)
2015-02-27 13:06:09 +09:00
Bogdan Devichev 5eba6ae468 evas-3d: fix incorrect reading of .obj file which had an empty line before data in unix encoding.
Summary:
For example of a bug, part of .obj file:
vn 0.5536 -0.7200 -0.4185\n
vn -0.5536 -0.7200 -0.4185\n
\# 239 vertex normals\n
\n
vt 0.4998 0.2618 0.0000\n(lines like this were ignored)
vt 0.5205 0.2550 0.0000\n
vt 0.5249 0.2618 0.0000\n

@fix

Test Plan: Run colorpick example. Before and after this update. ("M15.obj" has fixed places.)

Reviewers: cedric, Hermet, raster

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-26 21:06:38 +01:00
Jean-Philippe Andre b815f57078 Evas masking: Simplify map masking shaders.
Use vertex shader for all coordinates computations.
This reduces the number of varyings used.
2015-02-26 17:49:21 +09:00
Jean-Philippe Andre 964d6e559f Evas GL: Fix leak of surfaces with GLES 1.1
When destroying a GLES 1.1 surface, it is necessary to also
destroy and remove the main surface from the list.

This issue probably never really showed up because people
don't:
- use GLES 1.1
- constantly create & destroy new Evas GL surfaces
- but mostly no one cares about 1.1 anymore :)

@fix
2015-02-25 15:01:45 +09:00
Jean-Philippe Andre 29da1113ee Evas GL: Restore viewport and scissor test for GLESv1
This is necessary when switching back to direct rendering.
But I suspect there are other corner cases that we didn't spot.
2015-02-24 22:18:53 +09:00
Jean-Philippe Andre ae2061dbe2 Evas GL: Fix support for GLES 1.1 indirect rendering
This requires a special context that matches the configuration
required for GLES 1.1. Otherwise eglMakeCurrent() would fail
miserably with EGL_BAD_MATCH in case of indirect rendering
(at least on some drivers).
2015-02-24 22:12:00 +09:00
Minkyoung Kim 9a0f591314 Evas GL: Wrap glGetString() for gles1.x.
Summary:
- Implement glGetString() wrapper func in the same way as gles2.x.
- Small bug fix glGetString() for gles2.x.

Reviewers: cedric, raster, jpeg

Subscribers: cedric, mythri, wonsik, spacegrapher

Differential Revision: https://phab.enlightenment.org/D2033
2015-02-24 22:12:00 +09:00
Jean-Philippe Andre 93d167ac87 Evas GL: Add hidden config values for direct rendering options
Those 2 new values are here to avoid using environment variables
that have side effects on the whole application.

I'm actually wondering if we shouldn't just kill off the env
vars altogether. Also, direct override is a terrible option that
should never be used.
Memory optimization can make sense (needs more testing tho).
2015-02-24 22:12:00 +09:00
Minkyoung Kim 65775c2e04 Evas GL:Add evasgl extension macro '_EVASGL_EXT_DRVNAME_PRIVATE'.
Summary:
To distinguish supported extension name from not supported.
This patch can be solution to the problem, glGetString() returns non-supported extention name.

Test Plan: Local tests

Reviewers: raster, jpeg, Hermet, cedric

Subscribers: cedric, spacegrapher, wonsik

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-02-24 13:57:17 +09:00
kabeer khan 4f7718539d evas: fix evas software_generic backend while doing rotation in stress test.
Summary:
Resolved T2133 by using eng_image_data_get instead of evas_cache_image_pixels to
get image pixels. Also made other minor changes for error handling.

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: cedric

Subscribers: cedric

Maniphest Tasks: T2133

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-23 15:46:54 +01:00
Dmytro Dadyka 1b142d09d9 evas: Evas_3D - add parallax occlusion shading.
Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2018
2015-02-23 15:46:25 +01:00
Dmytro Dadyka 49f350d046 evas: Evas_3D - add texture units count checking.
Reviewers: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-23 15:41:37 +01:00
mythri.venugopal 88fc0e0568 Evas GL: Fix issues in gles extensions initialisation
Summary:
Fix 1- If extension is not listed in GL_EXTENSIONS, do not try
to get the function address of the extension functions.
Fix 2- For GL_EXT_robustness, for GLESv1 version, do not try to
export glGetnUniformXXX functions.

Reviewers: jpeg

Subscribers: cedric

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-02-23 21:21:28 +09:00
Cedric BAIL 93333ede15 evas: refactor shutdown. 2015-02-23 11:35:29 +01:00
Cedric BAIL 552a38cde5 evas: refactor software engine initialisation. 2015-02-20 15:04:52 +01:00
Cedric BAIL b115fe108d evas: apparently some configuration can't generate this file correctly, so putting it in. 2015-02-19 23:48:52 +01:00
Cedric BAIL d6f2dd4dd0 evas: remove compilation warning. 2015-02-18 22:42:17 +01:00
Dmytro Dadyka b9b5ced501 evas: Evas_3D - refactor shader system.
Reviewers: Hermet, raster, jpeg, cedric

Subscribers: artem.popov, cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-18 22:42:07 +01:00
Minkyoung Kim 4aeb8a4e7d evas: fix error checking of eglBindAPI.
Summary: If eglGetError sequencially called, second eglGetError() doesn't give the information of real Error.

@fix

Reviewers: raster, jpeg, cedric, Hermet

Subscribers: cedric, spacegrapher, wonsik

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-17 16:34:41 +01:00
Minkyoung Kim c972994e01 evas: Evas GL - add glGetError() after surface capability test.
Summary:
After using gl funcs, must call glGetError().
To prevent wrong error catch for subsequent glGetError().

Test Plan: Local tests

Reviewers: raster, jpeg, Hermet, cedric

Reviewed By: cedric

Subscribers: spacegrapher, wonsik, cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-16 11:54:27 +01:00
Jean-Philippe Andre 968751f835 Evas: Free variable in error path
Fixes CID 1270032
  Resource leaks  (RESOURCE_LEAK)
  Variable "exim" going out of scope leaks the storage it points to.
2015-02-13 11:07:39 +09:00
Mike Blumenkrantz 38f1f9c5f2 ee-win32 probably might compile now
<vtorri> bad Mike !
<vtorri> the name of the function is not good, so compilation fails on Windows
<vtorri> remove 'object' in the name of the definition of the function :)

@fix
2015-02-12 16:21:52 -05:00
Jean-Philippe Andre 6b48c106d3 Revert "Evas GL: Add support for uniforms in the shaders"
This reverts commit 21d08f86e6.
2015-02-12 15:18:19 +09:00
Jean-Philippe Andre cfd337a758 Revert "Evas GL common: Use uniform instead of attribute for sample"
This reverts commit 986b60eaf0.
Added PUSH_SAMPLE for simplicity.

It was dumb of me to use uniforms, so I added a comment to prevent
other dumb people from making the same mistake later.
2015-02-12 15:01:39 +09:00
Jean-Philippe Andre 651f0ae241 Evas GL common: Improve code readability (simplify macro)
The exact same ugly macro would appear hundreds of times in the GL
code:
  GLERR(__FUNCTION__, __FILE__, __LINE__, "");

Instead, override the common GL functions iif GL_ERRORS is defined.
This greatly simplifies code and removes tons of useless lines.
Also, this will give better debugging output as the exact code line
is printed, and the function name is also printed.

Also, fix linking to the glerr function.

This is a code cleanup. Hopefully I didn't break anything with this
big operation of find & replace.
2015-02-12 11:23:03 +09:00
Jean-Philippe Andre 9eaadb2eb7 Evas GL common: Simplify GL pipe code with macros
A lot of the code was just brutal copy & paste.
Reduced by using simpler macros, which I believe are even
more readable.
2015-02-12 11:23:03 +09:00
Jean-Philippe Andre 7e26c30522 Evas GL common: Call glGetUniformLocation as early as possible
This should speed up setting uniforms in the shaders, by storing
their locations in the Evas_GL_Program description.

I kept the previous solution with name as fallback, but it won't
actually be used with the current shaders.
2015-02-12 11:23:03 +09:00
Jean-Philippe Andre 986b60eaf0 Evas GL common: Use uniform instead of attribute for sample
Image and texture programs "12", "21" and "22" used tex_sample
as a texture attribute passed to the vertex shader. Instead of
this seemingly hackish solution, use a vec2 uniform.
2015-02-12 11:23:03 +09:00
Bogdan Devichev 1506130866 evas: Evas_3D - iport/export of Obj format can be read even if obj-file does not have normals or tex-coords.
Summary:
This commit fixed several bugs, and show what was be fixed.

Bugs:
- When designer save obj file in Blender, he/she can set flags (fig 1). Normals and UV coords flags was necessary  for obj loader. Loader crushed when they are not set as true. It fixed by this commit.
- Another loaders set default values to data which aren't in loading file, so mesh need more memory for unused data. It fixed by this commit for obj and will be fixed for another formats in future.
- Saver saved incorrect data if normals or tex_coords was not set in mesh in evas. Now it fixed.
- Saver failed if it save mesh without material. It fixed and in this case material file is not created now.
- Also fixed some leaks and undefined behavior which valgrind shows.

Example:
- Example shows cases described above. Example use files saved with different flags for it.

Resources:
- man_mesh is replaced by several smaller file, to use them for showing new features and fixes. For example, similar to that models can be added when implement work with material for obj, work with different flags for obj loader/saver etc. (big count of man_meshes is to much memory).
- texture for home is flipped, because of bug with texture in efl to see if tex_coords is incorrect.

Test:
- test should be rewritten in future, because another formats still use default values for normals and tex_coords. And test can not pass for all types of obj file because of standardization for any format in him.

Test Plan: Test suit will be rewritten after correcting of other formats (they will set NULL to file when save an empty data (like mesh without normals))

Reviewers: Hermet, raster, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-11 18:31:53 +01:00
kabeer khan 46b9b23144 evas: add image orient set/get API in software backend for now.
Summary:
Added API's to rotate(0, 90, 180, 270), flip(horizontal, vertical, transpose, transverse)
evas image object. Also added example to demonstrate this.

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: raster, stephenmhouston, cedric

Subscribers: stephenmhouston, cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-11 17:30:54 +01:00
Jean-Philippe Andre b643dabc36 Evas masking: Force BLEND mode in case of image masking (GL)
This fixes some cases where the image has no alpha and COPY mode
is used, but a mask is also applied. In that case, masking
takes precedence and BLEND mode is used.

@fix
2015-02-10 18:18:05 +09:00
Jean-Philippe Andre 2450a249e7 evas/software_x11: Restore legacy compatibility with old SLP DRM
I really REAAALLLY doubt that was necessary, but I'm still adding
these few changes for legacy compatibility.

This lib seriously should have had a stable API.
2015-02-10 17:42:01 +09:00
Dongyeon Kim 21bc9bee48 evas/software_x11: replace drm_slp with tbm
Summary:
libdrm_slp has been replaced with libtbm, so modify xlib swapper
to use tbm apis instead of drm_slp apis

Test Plan: Local tests

Reviewers: raster, Hermet, cedric, jpeg

Reviewed By: jpeg

Subscribers: cedric, wonsik

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-02-10 17:05:06 +09:00
Jean-Philippe Andre 4702670146 Evas sw_x11: Fix previous patches
Restore support for Evas GL with the software engine (OSMesa).
2015-02-10 15:10:23 +09:00
Dongyeon Kim c0d990c724 evas/software_x11: implement tbm native surface type
Summary:
This native surface type is based on the tbm surface used for the tizen platform.
For the software_x11 backend, image data is retrieved from tbm surface
and color format converted appropriately.
This will only work when libtbm.so is present in the system.
@feature

Test Plan: Local tests

Reviewers: raster, cedric, jpeg, Hermet

Subscribers: wonsik, cedric

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-02-10 14:48:53 +09:00
Dongyeon Kim defcc1f2ac evas/software_x11: implement native surface set for x11 type
Summary:
implement native surface set for EVAS_NATIVE_SURFACE_X11 type
on software_x11 backend.
@feature

Test Plan: local tests on PC

Reviewers: jpeg, cedric, raster, Hermet

Subscribers: wonsik, cedric

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-02-10 14:48:22 +09:00
Dongyeon Kim 72f3e684d9 evas/gl_x11: introduce tbm native surface type
Summary:
This native surface type is based on the tbm surface used for the tizen platform.
EGL_TIZEN_image_native_surface EGL extension is used to map
tbm surface to an egl image
@feature

Reviewers: raster, cedric, jpeg

Subscribers: cedric, wonsik

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-02-10 14:48:22 +09:00
Jean-Philippe Andre 5df768a43a Evas 3d: Fix compilation with EGL/GLES
Please verify this. I'm not sure what the function is supposed
to return (alpha or red?).
2015-02-10 12:00:37 +09:00
Jean-Philippe Andre 21d08f86e6 Evas GL: Add support for uniforms in the shaders
This will simplify greatly the code for map masking.
2015-02-10 12:00:37 +09:00
Oleksandr Shcherbina 00c2451656 evas: Evas_3D - ColorPick mechanism finding node and mesh in scene.
Summary:
Added additional texture and framebuffer for rendering meshes to it.
Added function that return OpenGL id additional texture
Added function that return color from target texture by mouse pick coordinates
Added function that render need meshes to target texture
Added engine wrappers for possibility force render to texture

@feature

Reviewers: Hermet, raster, cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-09 22:03:26 +01:00
Carsten Haitzler e54af4291f evas - gl engine - pipe renderer - disabling of unused arrays for lines
@fix - this fixes disabling of unused texa and texsam arays when line
drawing - spotted in code review and bug hunting of another bug.
2015-02-10 02:30:10 +09:00
Carsten Haitzler 2ca0756ad6 evas - gl enigne - mask logic fix with texa draw arrays
this fixes a logic oops in addition of masking to evas which caused
crashes with a null texa array causing a crash in gldrawarrays
2015-02-10 02:30:10 +09:00
mythri.venugopal 48d8cdb4dd Evas GL: Fix GLES1.1 extension initialisation bug
Summary:
Extension function pointer initialisation requires glGetString(GL_EXTENSIONS).
To get GLESv1 extension string, GLESv1 context has to be bound.
Change involves updating extensions after GLESv1 context has been bound.

Reviewers: jpeg

Subscribers: cedric

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-02-09 14:28:16 +09:00
Mike Blumenkrantz 7171135792 ecore evas should not crash when unsetting pointer
ref D812

disappointed.jpg
2015-02-06 17:54:08 -05:00
Jean-Philippe Andre 88e5369eee Evas masking: Add forgotten file in previous commit 2015-02-06 12:35:12 +09:00
Jean-Philippe Andre 73b16a4962 Evas masking: Also fix map masking with non-bgra images 2015-02-06 12:33:29 +09:00
Jean-Philippe Andre 7d6bb7fe5a Evas masking: Fix GL masking with maps and stuff
This fixes an issue spotted after the previous fix.
Passing the Y-invert flag is necessary because in the usual
case a map is rendered with Y-invert (OpenGL coords vs. Evas coords)
but in case a map is rendered in an FBO (another map's surface)
then Y-invert must be unset.
2015-02-05 22:31:35 +09:00
Carsten Haitzler e483d25082 ecore-x - undo api/abi break with input selecting before release 2015-02-04 18:58:48 +09:00
Chris Michael 17a47136c9 evas-image-loaders: Fix compiler warning of comparison between signed
and unsigned values

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:51 -05:00
Chris Michael adc9cbce26 evas-software: Fix compile errors when using xcb
Summary: This fixes compile issues when building evas software engine
using xcb. When calling xcb_outbuf_free, the Render_Engine has no 'ob'
field, so remove that call. Also fix call to
render_engine_software_generic_init using the proper function
parameters.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:51 -05:00
Chris Michael 3b69593761 evas-software: Fix software engine to compile using xcb
Summary: Fix several compile issues with software engine when compiled
against xcb. This fixes an improper call to
evas_software_xcb_outbuf_flush with improper parameters, and adds a
missing EINA_UNUSED to that function.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:51 -05:00
Chris Michael e203b32171 evas-software: Fix call to evas_software_xcb_outbuf_setup function
Summary: Seems we were missing a comma here and this was causing a
compile break.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:51 -05:00
Chris Michael b53e125640 ecore-evas-drm: Fix improper shutdown sequence
Summary: As the launcher code now uses some fields from the
Ecore_Drm_Device, we need to free the device After the launcher has
been disconnected.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 08:37:09 -05:00
Cedric BAIL 154e5103c6 evas: fix signed/unsigned warning.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-01-26 11:22:33 +01:00
jiin.moon 0a758d10c9 evas: fix to load BMP file compressed with RLE.
Summary:
If the file size of RLE compressed image is bigger than original image,
BMP loader doesn't work as well.
@fix

Reviewers: Hermet, cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-01-26 11:21:37 +01:00
Mike Blumenkrantz 6a934f703c ee engines should not crash when re-setting the same title/name_class
@fix
2015-01-22 14:39:10 -05:00
Jean-Philippe Andre 02594a2519 Evas masking: Simplify ref/unref code
Those masks are always render surfaces so we should
treat them as such. Plus, there are proper functions
to ref/unref GL images.
2015-01-22 18:22:17 +09:00
Jean-Philippe Andre 04ba5a3b99 Evas masking: Aaaand fix another series of memleaks
Don't inc-ref more than we can dec-ref.
2015-01-22 17:56:09 +09:00
Jean-Philippe Andre 5cd200194e Evas masking: Fix potential GPU memory leak
This should free the mask surface properly, like we do
in software.
2015-01-22 17:25:59 +09:00
Jean-Philippe Andre 84c0ea0423 Evas masking: Fix potential crash
This adjusts the clip to match the mask image data.
To be fair, I'm not sure in which situation those two
don't match well. This patch fixes a rare crash.
2015-01-22 16:39:03 +09:00
Cedric BAIL cb1aae1fd2 evas: do not compute things twice.
Fix CID 1265599, 1265597, 1265598 and 1265596.
2015-01-21 16:13:50 +01:00
Jean-Philippe Andre 15f7cefa68 Evas masking: Fix major memory leak
The memory usage graph was going up and to the right!
I was told this is always a good thing!

... maybe not this time :)

Hopefully I didn't forget a case. An intense session of
genlist scrolling with masks all over the place and masks
of masks didn't show any glitch, crash or memory leak.
2015-01-21 17:51:15 +09:00
Mike Blumenkrantz 836650e364 ecore-evas-x should check itself before it wrecks itself when re-setting the same name/class 2015-01-15 01:30:27 -05:00
Jean-Philippe Andre 323db06279 Evas GL common: Remove unused filter_prog 2015-01-14 16:37:11 +09:00
Jean-Philippe Andre 80fe4b1673 Evas GL common: Add shader ID as debug info in the pipe
Simplifies code readability a bit and helps for debugging (with GDB).
2015-01-14 16:37:06 +09:00
Jean-Philippe Andre 1874ea9890 Evas masking: Fix evas map masking in GL
While this may look like a feature, it's definitely a fix.
2015-01-14 16:35:20 +09:00
Chris Michael bb8b00b956 ecore-evas-drm: Init outputs before inputs so that input devices can
have a pointer to outputs

Summary: In order to limit pointer motion, we need to assign an Output
to each Input device. In order to accomplish that, we need to
initialize Outputs first

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-13 10:35:52 -05:00
Jihoon Kim 2c8fbb81a8 ecore_imf/scim: Fix logically dead code in scim module
CID 1261449

@fix
2015-01-10 09:27:10 +09:00
kabeer khan 9bf76ddc8a ecore_evas/wayland_egl: Set alpha of ecore_evas object if parent alpha is set
Summary:
Resolved FIXME ecore_evas_wayland_egl_new_internal to set alpha if parent alpha is set

@fix

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1861
2015-01-09 13:24:03 -05:00
Chris Michael 9e485439d7 ecore-evas-wayland: Port fix of min/max size calculations to the
configure event handler

Summary: This patch ports the fix for windows without a min/max size
being set over to the configure event handler (which was also not
taking into account the fact that Some windows may Not have a min/max
property set on them.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-09 09:42:43 -05:00
Myoungwoon Kim 10582235c5 ecore_evas_x: Free XCounter values leak.
Summary:
Whenever creating a window via elm_win_add(), save netwm_sync_counter values to edata->netwm_sync_counter
by ecore_x_sync_counter_new().
However, never free the values when a window has been destroyed.
So this patch is for free the values in _ecore_evas_x_free().

@fix

Reviewers: cedric, raster, Hermet, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D1855
2015-01-08 08:35:55 -05:00
vivek 2da804f616 ecore_imf: Add null check condition in ecore_imf module
Summary: Fixed null pointer dereference issue in ecore_imf module

@fix

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: raster, cedric

Differential Revision: https://phab.enlightenment.org/D1813
2015-01-08 08:34:21 -05:00
Chris Michael bf9c5873fb ecore-evas-wayland: Fix min/max size calculations
Summary: This fixes an issue for windows which do not set a min or max
size in the properties. This was discovered when running Enlightenment
in a Wayland-Only scenario, and trying to bring up the settings panel
which would cause an endless loop in calculating the proper window
size due to min/max not being set.

@fix

NB: Thanks to Mike for the help in tracing this ! :)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-07 14:50:00 -05:00
Chris Michael d136391108 ecore-evas-wayland: Fix formatting
Summary: no functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-07 14:50:00 -05:00
Chris Michael 2cae004592 ecore-evas-drm: Fix formatting
Summary: No functional changes, just formatting cleanup

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-07 09:52:34 -05:00
kabeer khan 200a9f3421 ecore_evas_drm: Added support for initial rotation in ecore_evas_drm
Summary:
Resolved FIXME added support for initial rotation in ecore_evas_drm initialisation

@fix

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1837
2015-01-07 09:51:19 -05:00
Jean-Philippe Andre bb923d5586 Evas masking: Minor fixes in GL masking 2015-01-07 15:06:03 +09:00
Jean-Philippe Andre f876cf31f8 Evas masking: Fix invalid geometry after mask redraw
The proper geometry should be set when rendering the mask,
otherwise we can't create a new surface if it changed dimensions.
2015-01-07 15:06:03 +09:00
Jean-Philippe Andre 44387b60a3 Evas masking: Add rectangle masking for GL 2015-01-07 15:06:03 +09:00
Jean-Philippe Andre 61b847d47a Evas masking: Simplify and fix vertex logic in GL
There was some geometry problem, and this commit also
simplifies a lot of code by factorizing it a lot.
2015-01-07 15:06:03 +09:00
Jean-Philippe Andre 2bd5cf6e6f Evas masking: Use new texm sampler instead of texa
texa should be used only for RGB+A whereas texm should
be used for masking. This should fix RGB+A masking, too.
2015-01-07 15:06:03 +09:00
Jean-Philippe Andre 6552e8a6cc Evas masking: Add support for YUV, YUY2, NV12 masking in GL
RGB+A masking needs to be implemented, because there's a
clash (only one texture name "texa" is available).
2015-01-07 15:06:03 +09:00
Jean-Philippe Andre a2604956f9 Evas masking: Add support for BGRA/ARGB masking
Also, refactor font & image GL masking.
2015-01-07 15:06:03 +09:00
Jean-Philippe Andre 1fac1dcf57 Evas masking: Font masking for GL 2015-01-07 15:06:03 +09:00
Jean-Philippe Andre 124ab102b7 Evas masking: Implement image masking for GL engines 2015-01-07 15:06:02 +09:00
Jaeun Choi 62f3170874 Evas masking: Implement support for map draw (SW) 2015-01-07 15:06:02 +09:00
Jaeun Choi 4eb3a58edd Evas masking: Implement support for polygon draw (SW) 2015-01-07 15:06:02 +09:00
Jaeun Choi 6747fadd9a Evas masking: Implement support for line draw (SW)
Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-01-07 15:06:02 +09:00
Jean-Philippe Andre a9630a77b6 Evas masking: Add clip_image_[un]set functions to draw context
This allows passing a mask image to the render functions.

@feature
2015-01-07 15:06:02 +09:00
Jaeun Choi 9af60b1b04 Evas masking: Use alpha mask in SW engine draw functions
Work done by Jaeun Choi, rebased & squashed by jpeg.

This commit introduces changes to the low-level draw functions
of the SW engine considering the existence of an alpha mask image.

Features:
- Font masking (TEXT, TEXTBLOCK),
- Rectangle masking,
- Image masking (all image scaling functions should be handled).

The mask image itself is not yet set in the draw context (see
following commits).

@feature

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-01-07 15:06:02 +09:00
Dmytro Dadyka e7752ff7d7 [Evas: Evas_3D]Fixed bug with shadows and blending of vertex position
Reviewers: cedric, Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1850
2015-01-07 12:00:47 +09:00
Chris Michael 5eb11e1285 ecore-evas-drm: Perform shutdown in proper order
Summary: This fixes an incorrect order with shutdown of drm library.
Sprites are created (during init) before inputs, so they should be
shutdown After inputs are.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-06 11:10:44 -05:00
Chris Michael 7f82494459 ecore-evas: Fix compiler warnings about inproper returns
Summary: This fixes missing return values in functions that return
non-void

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-05 12:14:46 -05:00
kabeer khan c1d805d2b4 ecore_evas/wayland_shm: Set alpha of ecore_evas object if parent alpha is set
Summary:
Resolved FIXME ecore_evas_wayland_shm_new_internal to set alpha if parent alpha is set

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1842
2015-01-05 09:12:30 -05:00
vivek c5f6c3941c ecore_evas_wayland: Add null check conditions in ecore evas wayland module
Summary:
Added null check conditions to check ecore_evas pointer in various places
of ecore evas wayland common module

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1812
2015-01-05 09:09:03 -05:00
Daniel Juyung Seo 6e2c311f9d Revert "evas/gl_x11: set EGL_PLATFORM environment variable" as cedric wants to change it.
This reverts commit 6fe870de14.
2014-12-29 20:56:14 +09:00
MinJeong Kim 6fe870de14 evas/gl_x11: set EGL_PLATFORM environment variable
Summary:
Without EGL_PLATFORM environment variable, eglInitialize() can be
failed because egl tried to load DRM platform instead of X11 platform and it
tried to handle XDisplay pointer as a gbm_device pointer as well.
The failure seems to be occured especially if the egl was built
with DRM platform as native platform.

This revision can prevent the failure by indicating proper egl platform using
EGL_PLATFORM environment variable.

@fix

Reviewers: gwanglim, jaehwan, seoz

Reviewed By: seoz

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1828
2014-12-29 20:14:07 +09:00
Cedric BAIL 61b6986880 evas: first destroy the rectangle, then the pool. 2014-12-27 14:10:37 +01:00
Bogdan Devichev 243df1aaba evas: the eet loader use eet_mmap that take an Eina_File instead of eet_open. 2014-12-23 21:20:21 +01:00
Bogdan Devichev 61aab62be0 evas: entry points to modules is Eina_File. Model_Common_Loader is deleted. 2014-12-23 21:20:20 +01:00
Bogdan Devichev 17baa3fa6f evas: entry points to modules is new struct with Eina_file, not const char *file. 2014-12-23 21:20:20 +01:00
Bogdan Devichev e024f861e1 evas: ply_loader and obj_loader work with Eina_File. 2014-12-23 21:19:20 +01:00
Bogdan Devichev 4acbae6947 evas: test cases are changed according to changes of API in step 4. Specific logic in obj_saver is removed for standardization of API. 2014-12-23 21:16:19 +01:00
Bogdan Devichev 02c85b9fe8 evas: add lib/evas/common/evas_model_<action>.c. Functions are renamed similar to functions in image_save_load process. 2014-12-23 21:14:52 +01:00
Bogdan Devichev 9b7e22f5a5 evas: replace and rename savers/loaders. 2014-12-23 21:14:30 +01:00
Bogdan Devichev 8c09ad1b81 evas: dummies for model_saver_loader are created. 2014-12-23 21:14:15 +01:00
Bogdan Devichev 043055fc8e evas: preparation of places for model_saver_loader separated from image_saver_loader. 2014-12-23 21:13:43 +01:00
Jean-Philippe Andre af43bc67e4 Evas GL: Try harder to find a matching config for GLESv1
If MSAA was requested, it is very likely that no config was
found (depending on the driver), so we'll try again without
MSAA. Yeah, this might not look very smooth but it should be
better that failing at eglMakeCurrent.
2014-12-22 22:15:12 +09:00
kabeer khan 48920920a5 evas: fix memory leak in evas_swapper.
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

@fix

Reviewers: devilhorns

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-22 12:06:16 +01:00
Jean-Philippe Andre 8f6b34d4cc Evas GL: Fix list of GLES 1.1 extensions
We should use GLESv1 functions in a GLESv1 context to scan for
GLESv1 extensions. Makes sense yeah?

This should expose the proper list... especially enabling FBO
extension when it's supported by the driver.
2014-12-19 18:14:25 +09:00
Jean-Philippe Andre 3572b3bf3d Evas GL: Add a warning in gl_x11 about MSAA & RGBA for GLES1
We've discovered some bugs on some drivers related to
MSAA and RGBA blending. Dunno yet if the same problem can affect
GLES2 as well.
2014-12-19 18:14:25 +09:00
Jaehyun Cho c8a993d1f7 evas - generic loaders - fix possible string overflow on decoders
Summary:
fix possible string overflow on decoders.
         this commit is based on commit 3c5412f728
         that fixes CID 1039580.

Reviewers: raster

Reviewed By: raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1783
2014-12-17 17:49:07 +09:00
kabeer khan 256761bf2f evas/tgv: Added DSSIM metric in evas_image_save_tgv
Summary:
Resolved TODO to add DSSIM metric in DEBUG_STATS

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: cedric

Subscribers: devilhorns, cedric

Differential Revision: https://phab.enlightenment.org/D1773
2014-12-17 16:40:59 +09:00
MinJeong Kim 792af971f1 ecore: Added getting "WarningLevel" on upower module.
Summary:
From UPower 0.99.0, a property "OnLowBattery" was removed and
upower have recommended to use "WarningLevel" instead.
This revision provides "WarningLevel" using the property "DaemonVersion"
and it keeps dealing with "OnLowBattery" as well for old system.

Fixes T1909

Reviewers: gwanglim, barbieri, zmike, stefan_schmidt

Reviewed By: barbieri

Subscribers: zmike, stefan_schmidt, cedric

Differential Revision: https://phab.enlightenment.org/D1717
2014-12-12 16:41:40 +01:00
Chris Michael 251c300b8f evas-gl-common: Fix issue with Coverity reporting null dereferences
Summary: This fixes Coverity CID1257606 and CID1257607: Dereferencing
null return value. _evgl_tls_resource_get Can return NULL so we should
be checking that returned value before trying to use it

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-10 13:30:51 -05:00
Chris Michael 68ede67850 ecore-evas-drm: Fix up error handling
Summary: Due to the change of order in creating outputs & inputs, we
need an additional goto error for destroying inputs if output_create
fails

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-10 12:01:59 -05:00
Chris Michael 61d03472a4 ecore-evas-drm: Create inputs before we create outputs
Summary: Call function to create drm input devices Before we create
outputs. This is done so that when outputs Do get created, it will
update the input's known size of output for device coordinate
transformation

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-10 12:01:59 -05:00
Stefan Schmidt 4d2373e03d modules/tgv: Switch from obsolete LZ4_uncompress function to LZ4_decompress_fast
The function is declared as obsolete and in some newer headers it is no
longer defined. The new function is the same besides the name change.
2014-12-10 14:52:58 +01:00
Jean-Philippe Andre 4cf2d75715 Evas GL: Fix direct rendering with client-side rotation
There was a problem when checking whether the current surface
is compatible with direct rendering. In case of client-side
rotation (it's a flag set on the surface by the app), a surface
can be directly rendered even if the rotation is not 0.

But, before this patch, it was assumed that the surface was
current. Which doesn't make sense because make_current is
called by the pixel callback, from the application, and this
happens *after* we check for direct rendering.

As a consequence, it was not possible to mix directly rendered
surfaces with FBO-based ones, and use client-side rotation.

This patch should solve that issue.
2014-12-10 10:52:22 +09:00
Seunghun Lee b10ab1a86f ecore-drm: added drm launcher that is allow to determine whether to launch with logind or root privilege.
Summary:
- allow to launch drm backend without systemd-logind with root privilege.
- allow to open drm device node via logind, not directly open it, in case exist systemd-logind.
- fixes issue that couldn't switch session, because ecore-drm couldn't drop master to drm device with no permission. (allow to switch session appropriate.)

Reviewers: gwanglim, devilhorns

Subscribers: torori, cedric

Differential Revision: https://phab.enlightenment.org/D1704
2014-12-09 09:36:42 -05:00
kabeer khan 25db7de813 evas_xcb_outbuf: fix memory leak
Summary: This fixes a leak in the xcb engine where the Outbuf_Region
was not being freed.

@fix

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1750
2014-12-09 09:23:12 -05:00
Jean-Philippe Andre e4a11c008c Evas GL: Fix scissors with direct rendering
If an app calls glDisable(SCISSORS) and uses direct rendering,
then the DR scissors were dropped and so glClear would erase
the contents of the entire canvas, instead of being restricted
to the image object.
2014-12-09 18:38:08 +09:00
Jean-Philippe Andre 2a69980959 Evas GL: Fix current FBO after make_current(0, 0)
Example scenario:
- Create a direct rendered Evas GL 'sfc' 'ctx'
- Create a PBuffer dummy surface, make it current
- Do some stuff
- Make current (NULL, NULL) to go back to no target
- Make current (sfc, ctx)
--> glClear() will not render anything on screen

Reason:
The current FBO binding is still set to the implicit FBO
bound to the PBuffer surface (it could be any surface, really).
2014-12-09 18:38:08 +09:00
Mike Blumenkrantz 0c6844707f upower module now errors and kills itself off when unsupported new version detected
0.99.0 removed the OnLowBattery property and added the per-device WarningLevel property. this requires what will effectively be a full rewrite of the module to track all the power levels of all the attached batteries and set the ecore power level somehow based on a combination of their levels

since I have no desire to spend any more hours working on and debugging this module which is based on a known-unstable api, I'm making it disable itself if it detects a version >= 0.99.0. hopefully someone will decide to maintain both this and eldbus in the future so that we can more accurately track upstream when they make changes to these things

ref T1908

ref T1909
2014-12-08 15:22:19 -05:00
Gwanglim Lee 353a533ff5 evas/gl_drm: Fix warning
Using int instead of uint32_t.
2014-12-08 19:07:27 +09:00
Chris Michael 9cd2d614e9 ecore-evas-wayland: Fix issue with ELM_PROFILE=mobile and windows not
showing up correctly.

Summary: If elm config profile is set to Mobile, then the
auto_norender_withdrawn is set to 1, which was causing Elm windows to
not draw properly due to the ee->withdrawn property not being updated.
It was not getting updated due to these checks for override.

NB: Tested this with all elm profiles, tested in weston, and tested in
Enlightenment (Wayland).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-05 12:52:22 -05:00
Mun, Gwan-gyeong d1b8d52e0e evas/gl_drm: add native surface for wayland_egl_client.
Reviewers: zmike, devilhorns, cedric, gwanglim

Reviewed By: cedric, gwanglim

Subscribers: jpeg, torori, cedric

Differential Revision: https://phab.enlightenment.org/D1507
2014-12-04 17:59:30 +09:00
Carsten Haitzler 83512198b8 evas - gif loader - fix technically "wrong" sizeof (doesnt cause a bug)
go from sizeof(char **) to sizeof(char *) ... effectively. so no real bug.
2014-12-04 16:03:32 +09:00
Dmytro Dadyka 720a3726e9 Evas: Evas_3D - Add check of visibilty node.
If the node is not visible, it is not rendered, which improves performance.
@feature.

Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-03 09:58:02 +01:00
perepelits.m b1f8f3fb17 evas: Evas_3D - fix typo.
Summary:
A little fix of copy-paste, there were problems while changing texture coordinates of indices.

@fix

Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-03 09:58:02 +01:00
Jean-Philippe Andre 0514cbc1a3 Evas GL: Add preventive padding after Evas_GL_API
Since this struct is likely to grow in size over time, client apps
built against future versions of EFL might start indexing fields
that are not present in the current form.

Also, don't reset the struct memory as this would break
multithreaded GL applications.

While this is not exactly a fix, I'll backport this.

@fix
2014-12-03 16:57:49 +09:00
MinJeong Kim ad0f10950c evas-gl-drm: remove initalizing gbm on engine setup
Summary: Removed evas_drm_gbm_init() on the initial setup of evas gl_drm engine.

Reviewers: gwanglim

Reviewed By: gwanglim

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1728
2014-12-03 16:30:13 +09:00
Gwanglim Lee 9eefb3ea89 Evas GL: Add support for bind_wayland_display extension
This provides EGL_WL_bind_wayland_display EGL extension to bind
and unbind the wl_display of a wayland server to an EGLDisplay.

@feature
2014-12-02 22:45:36 +09:00
Chris Michael c1eb5de916 evas-gl: Fix evas-gl to compile for EGL
Summary: Evas compilation was broken for --with-opengl=es due to the
use of GL_R16 (which is not defined for EGL).

NB: This may Not be the Proper fix, but at least it compiles now.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 10:31:47 -05:00
Chris Michael 077261689d evas-gl: Fix improper #ifdef check
Summary: We should be using #ifdef here, not #if

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 10:29:53 -05:00
Dmytro Dadyka 6762af0beb evas: Evas_3D - add mesh blending mode.
Reviewers: Hermet, raster, cedric

Subscribers: Oleksander, cedric

@feature

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-01 08:09:29 +01:00
Dmytro Dadyka 4366057dc6 evas: Evas_3D - fix depth texture size.
Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

The texture used to store the depth map should be a single-channel texture.

@fix

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-01 05:57:05 +01:00
Carsten Haitzler 8fcfae57d1 evas - gl - fix warning for unused var in glx build 2014-11-29 12:07:33 +09:00
Hosang Kim cc89a541de ecore_evas_x: Fixed strange condition.
Summary:
To satisfy this condition, ee->visible will be EINA_FALSE. But when iconify is requested, ee->visible is usually EINA_TRUE.

@fix

Reviewers: raster, Hermet, seoz

Reviewed By: seoz

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1710
2014-11-29 01:10:39 +09:00
Jean-Philippe Andre 151eeacec8 Evas GL: Use strncat and strncpy for safety
Fixes Coverity reports:
- CID 1256183

Coverity was a bit stupid there. It knows the size of both
strings and complained about unsafe strcpy. It should have
complained about unsafe strcat instead.
2014-11-28 16:26:49 +09:00
Jean-Philippe Andre 07c68ac42b Evas: Fix shader gen script for Ubuntu
dash was the shell on that machine.
Also, GCC complained about a non const initializer.

Thanks SeoZ for the report.
2014-11-27 21:47:02 +09:00
Jean-Philippe Andre 02d123be77 Evas GL: Fix up some more desktop GL extensions
OpenGL 1.2 already supports some of the features that
GLESv2 has as extensions:
- GL_EXT_read_format_bgra
- GL_EXT_texture_format_BGRA8888
- GL_EXT_texture_type_2_10_10_10_REV

Also, we need to check the proper ARB name of some extensions when
running on desktop, instead of their OES/IMG/EXT equivalent:
- GL_ARB_texture_float
- GL_ARB_texture_half_float
- GL_ARB_texture_non_power_of_two
- GL_ARB_half_float_vertex
- GL_EXT_packed_depth_stencil
2014-11-27 21:07:24 +09:00
Jean-Philippe Andre 45374e2536 Evas GL: Also add read bgra for desktop GL 2014-11-27 20:50:47 +09:00
Jean-Philippe Andre 9be96f4b96 Evas GL: Advertise support for npot on desktop
The extension name is GL_ARB_texture_non_power_of_two
for desktop GL, but GL_OES_texture_npot for GLES.

We will consider the extensions compatible, I believe
the GLES version is a subset of the desktop one. Not sure
if that's 100% true.
2014-11-27 20:50:47 +09:00
Jean-Philippe Andre eaefb7c047 Evas GL: Always support BGRA8888 on desktop GL 2014-11-27 20:50:47 +09:00
Jean-Philippe Andre d8a4792612 Evas GL: Also return fake GLSL version string 2014-11-27 20:50:47 +09:00
Jean-Philippe Andre 9f38aadd38 Evas GL: Always return "OpenGL ES 2.0" as version
This time it's for desktop GL.

I decided to keep some vendor info, as it can help for debugging
purposes.
2014-11-27 20:50:47 +09:00
Jean-Philippe Andre 6d652589ad Evas GL: Print GLSL version with EVAS_GL_INFO 2014-11-27 20:50:40 +09:00
Jean-Philippe Andre af1b679e6c Evas GL: Return supported extensions list in glGetString() 2014-11-27 18:36:29 +09:00
Jean-Philippe Andre 129ba38cc7 Evas GL: Return current framebuffer based on ctx information
ctx->current_fbo should contain the visible FBO value, even
if indirect rendering is used.
2014-11-27 16:46:31 +09:00
Jean-Philippe Andre e2a6f5129c Evas GL: Remove useless field
- fbo_attached is not used.
- buffers_allocated is just a bool
2014-11-27 16:46:31 +09:00
Jean-Philippe ANDRE 85b0992657 Evas GL: Remove unnecessary check
We already checked that re->func.get_pixels wasn't NULL.
2014-11-27 00:46:47 +09:00
Jean-Philippe Andre 8771c78a90 Evas GL: Fix indirect rendering surfaces for GLES 1.1
Carefully select the requested EGL config and match it with
the available visual from X, including the following options:
- Stencil
- Depth
- MSAA

TODO: The same thing for GLX. And fix direct rendering as well.
2014-11-26 22:56:06 +09:00
ChunEon Park 215b52ecc1 evas/map : set antialias context for map rendering. 2014-11-26 12:22:55 +09:00
Jason Gerecke 26c943bac0 Expose device (e.g. pen) axis information to applications
Summary:
This patch set adds the necessary code to expose device axis state to applications. This was primarily written with graphics tablets in mind, which -- in addition to acting like a mouse -- also provide information about pen pressure, tilt, etc. Other devices could potentially benefit from this API as well: touchscreens, joysticks, knob controllers, "spaceballs", etc.

Whenever an update to the device state is recieved, an "Axis update" event is synthesized. This event contains the updated information, typically scaled and normalized to a particular logical range (e.g. zero to one for pressure, -pi to pi radians for angles, etc.). Information about the tool which generated the event is also stored so that applications can disambiguate events from multiple devices (or in the case of multitouch screens, individual fingers).

This API is only wired up for use with X11 at the moment. Support for other backends (e.g. Wayland) should be easy to add for those familiar them.

**Note**: The following is a list of changes from the "v2" patches originally sent to the mailinglist

//Define and implement new Ecore_Event_Axis_Update events//
 * Harcode axis labels instead of including xserver-properties.h
 * Use C89-style comments
 * Use doxygen comments
 * Update comment text to note axes with unbounded/undefined ranges/units
 * Create "Ecore_Axis" and "Ecore_Axis_Label" typedefs
 * Reference typedef'd instead of raw types
 * Adjust how we count through valuators to support tilt/az
 * Add support for tilt and azimuth
 * Tweak memory management in case number of valuators differ
 * Expand TWIST axis normalization to declared range
 * Only normalize TWIST axis if resolution == 1 (wacom bug)
 * Cache label atoms on first use to minimize round-trips

//Implement EVAS_CALLBACK_AXIS_UPDATE event and friends//
 * Update to doxygen comments
 * Update comment text to note axes with unbounded/undefined ranges/units
 * Typedef 'Evas_Axis_Label', 'Evas_Axis'
 * Move typedef for 'Evas_Event_Axis_Update'
 * Reference typedef'd instead of raw types

//Wire the Ecore and Evas implementations of axis update events together//
 * Expose ecore_event_evas_axis_update in Ecore_Input_Evas.h
 * Move ecore_event_evas_axis_update to more logical position

//DEBUG: Add axis update logging to evas-multi-touch.c//
 * Removed from patch set

//Make evas-multi-touch demo use new axis functionality//
 * Have pressure adjust rectangle brightness instead of size
 * Use more available axis data when rendering rectangle (azimuth, tilt, twist)

Test Plan: The evas-multi-touch demo was updated to support axis update events. A graphics tablet was then used to verify that the pressure, azimuth, tilt, and twist data was coming through correctly.

Reviewers: cedric, raster

Subscribers: cedric

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

Conflicts:
	src/lib/ecore_input/Ecore_Input.h

Carsten Haitzler -

** fixed forward enum typedefs (make things unhappy)
** fixed conflict above
** fixed wrong param type for _evas_canvas_event_feed_axis_update()
** fixed @sinces to be 1.13
** fixed formatting/indeting
** fixed order of operation reliance in if's with ()'s to be clear
** fixed functions to be static that should have been
2014-11-25 12:43:15 +09:00
Jean-Philippe Andre f6e73c7903 Evas GL common: Cosmetic change
Don't cast "ext" a hundred times when you can do it once.
2014-11-24 18:52:14 +09:00
Jean-Philippe Andre 2e83b076db Evas GL common: Scan extension string for ETC1 subimage
There is an official name for it:
GL_EXT_compressed_ETC1_RGB8_sub_texture

Thanks Mythri for pushing that specification.
2014-11-24 18:52:14 +09:00
Jean-Philippe Andre 09934be788 Evas GL common: Fix RGB+A textures draw
Also rename texm into texa for consistency.
Even though texa might be a mask image, it's still used only
for it's a (alpha) channel.
2014-11-24 18:52:14 +09:00
Carsten Haitzler 516691de9b ecore-evas - fix focus skip flag to be one way
this fixes focus skip being set if someone else sets skip
pager/taskbar. it's a one-way prop. if focus skip is set THEN skip
pager/taskbar is set. not the other way.
2014-11-23 22:01:34 +09:00
Jean-Philippe Andre f902de616e Evas: Check load_error before loading again (GL)
This is a new attempt at avoiding reload of an image
that failed to load during async preload.

See 42d2f8a12b (reverted).

I still can't figure out why setting load_error does not
work as expected (E pager becomes blank).
2014-11-19 19:47:33 +09:00
Jean-Philippe Andre 64238ca9f1 Revert "Evas: Set image load_error after load"
Oops, I didn't test this enough.
This causes some problems with E's pager for instance.

This reverts commit 42d2f8a12b.
2014-11-19 19:19:56 +09:00
Jean-Philippe Andre 42d2f8a12b Evas: Set image load_error after load
In case of async preload, this avoids loading an image twice
if it already failed loading.

Thanks Minkyoung Kim for spotting this.
2014-11-19 19:07:19 +09:00
Jean-Philippe Andre 9afe5ffb9d Evas: Cosmetic changes in evas_gl_image 2014-11-19 18:54:36 +09:00
Jean-Philippe Andre 54afef04c2 Evas GL: Change comment and DBG message 2014-11-19 16:22:37 +09:00
Jean-Philippe Andre 1a403849dc Evas GL: Wrap glGetString for VERSION
- glGetString(GL_VERSION) should not return "OpenGL ES 3.0" because
  GLESv3 is not supported yet.

- GL_EXTENSIONS should return only the list of supported extensions
  --> disabled for now as the whitelist of safe extensions is way
      too small.
2014-11-19 16:22:37 +09:00
Jean-Philippe Andre 1608d30390 Evas GL: Create TLS during make_current if there isn't any
Apps would crash if they call make current without creating
a surface in the same thread. I don't see a good reason why
we should have this a limitation.
2014-11-18 18:46:58 +09:00
Jean-Philippe Andre f663980111 Evas GL: Add some debug
It will be triggered when EVAS_GL_API_DEBUG is set.
Yeah, that's abusing the variable a bit, as it was intended for
GL calls only, but this is pretty harmless.

Also add string  "GL_DEPTH_STENCIL".
2014-11-18 18:46:58 +09:00
Jean-Philippe Andre f3a53acbf0 Evas GL: Fix bug in evgl_eng_pbuffer_surface_create (EGL)
Thanks Henry Song for the report.

@fix
2014-11-14 11:32:56 +09:00
Jean-Philippe Andre cd8d68cda4 Evas GL: Import a few more extensions and fix a name 2014-11-14 11:32:46 +09:00
Jean-Philippe Andre 0be124ca4d Evas GL: Add extension string for ETC2 2014-11-14 10:43:00 +09:00
Jean-Philippe Andre 198a508f9d Evas GL: Scan extensions for OpenGL-ES 1.1 2014-11-14 10:43:00 +09:00
Jean-Philippe Andre cd63cb0215 Evas GL: Enable some more GLES2 extension APIs
NOTE: The draw_buffers extension might need to be checked more and
wrapped, if it can have adverse effects on how Evas works (could
it replace the default render target?).

This adds support for the following extensions:
- disjoint_timer_query
- occlusion_query_boolean
- alpha_test
- draw_buffers
- read_buffer
- read_buffer_front
- framebuffer_blit
2014-11-14 10:43:00 +09:00
Jean-Philippe Andre d2aee4e5ca Evas GL: Add support for some required extensions
- debug
- debug_label
- debug_marker
2014-11-14 10:43:00 +09:00
Jean-Philippe Andre 56a64756eb Evas GL: Introduce concept of safe extensions
This will mark some extension functions as "safe", which means
we don't need to wrap them in order to expose them.

All the known extensions from Evas_GL_API have been marked as safe
for now.

In the future, we may encounter extensions that are not safe
out of the box, but can be wrapped. At that time, we will have
to mark them as safe but return the pointer to the wrapper instead.
Until then, only whitelisted extensions will be supported.

@feature
2014-11-14 10:43:00 +09:00
Jean-Philippe Andre cb534366f3 Evas GL: Pass calls to getProcAddress down to the engines
Later we need to add a whitelist of supported functions.
2014-11-14 10:43:00 +09:00
Jean-Philippe Andre aff423e3bd Evas GL: Introduce macro _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR
It will be used to link to extension functions that need no
wrapping.
2014-11-14 10:43:00 +09:00
Jean-Philippe Andre 9741f298c0 Evas GL: Scan for GL-ES 1.1 extensions 2014-11-14 10:42:59 +09:00
Jean-Philippe Andre ce3146b262 Evas GL: Add original extension names to the EVAS_GL_EXTENSIONS string
The idea is that normal opengl applications might very well want to
check for an extension using the usual string and not have to do
something special just because they're using evas_gl and not egl.
2014-11-14 10:42:59 +09:00
Jean-Philippe Andre e18886a2a3 Evas GL: Fix list of shaders to distribute
Some shader files (shd) were not included in EXTRA_DIST. This didn't break
the build because the .x file was correctly generated.
I guess the missing files in previous releases also had no impact because
the .h files would be generated and shipped.

Also generate the enum automagically. New shaders need to be added
to Makefile_Evas.am.
2014-11-14 10:01:30 +09:00
Jean-Philippe Andre ae4f7f4e61 Evas shaders: Auto-generate the shaders from Makefile
Let's regenerate the shaders when a SHD file changes.
I've removed the Git commit id because only touching a file
would insert a code change.
2014-11-12 16:28:56 +09:00
Jean-Philippe Andre 8e52ade2e2 Evas shaders: Write new shader generator script
All shaders will be in a single .x (C) file.
There shall be no more useless .h files.

This also removes the need for awk (replaced by sed and bash stuff)
2014-11-12 16:28:52 +09:00
Jean Guyomarc'h 704c448141 warnings: remove 2 "equality comparison with extraneous parentheses"
Reviewers: stefan_schmidt, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-11-05 00:15:52 +01:00
Carsten Haitzler adc1465049 clean up glx context code to remove legacy and avoid server segv
this cleans oyt a few bits o9f old glx context handling code that are
no longer used as well as avoids  causing server-side to crash on
tryng to set a "none" glxwindow as current. this is what cases the
nvidia server-side crashes.
2014-11-02 11:36:21 +09:00
ChunEon Park 6eb76b9eb9 evas/gl_generic: remove dead code. 2014-10-31 19:27:49 +09:00
ChunEon Park 3ffcdb67de evas/gl_common: remove dead code. 2014-10-31 19:19:15 +09:00
Chris Michael ae00e44269 ecore-evas-wayland: Fix wayland windows not showing up after 5954289c6c
Summary: Wayland windows should follow X11 windows fairly closely,
thus only set withdrawn property if they are override windows. If not,
internal dialogs do not show up in Enlightenment (wayland-only).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-29 14:55:17 -04:00
Chris Michael 40247decd3 evas-gl-3d: Fix compiler warning about 'ld' may be used uninitialized
Summary: This commit fixes compiler warning:
modules/evas/engines/gl_common/evas_gl_3d.c:1322:48: warning: 'ld' may
be used uninitialized in this function [-Wmaybe-uninitialized]. We
declare 'ld' as NULL now, and check it is valid before using it.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-29 12:12:39 -04:00
Chris Michael cc4921a873 evas-gl-3d: Fix formatting
Summary: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-29 12:11:21 -04:00
Chris Michael 9599007a68 evas-gl-x11: Don't call gl_common_error_set if MakeContextCurrent fails
Summary: glsym_evas_gl_common_error_set used here leads to an implicit
declaration in compiler warnings. Remove the call to that function and
just print out an error message. This is a cleanup function anyway.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-29 12:07:48 -04:00
Chris Michael 300d20f47b Revert "evas-gl-x11: Fix copy/paste error from Coverity fix"
This reverts commit fb4ad043f6.

Revert this. This also leads to an implicit declaration of the
error_set function.
2014-10-29 12:07:03 -04:00
Chris Michael fb4ad043f6 evas-gl-x11: Fix copy/paste error from Coverity fix
Summary: In fixing a Coverity issue, I copy/pasted a call to
evas_gl_common_error_set without compiling :( Bad me !! This commit
fixes the issue (data was undefined). Since evas_gl_common_error_set can
take NULL as the data parameter, lets use that.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-29 12:02:26 -04:00
Stefan Schmidt 2f49ec1115 evas/gl_x11: Do not shadow another local variable. 2014-10-29 16:05:42 +01:00
Chris Michael b1bf718f1b evas-gl-x11: Check return value of glXMakeContextCurrent
Summary: Fix Coverity CID1249651 (unchecked return value)

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-29 10:28:50 -04:00
Carsten Haitzler 5954289c6c ecore_evas - ecore_evas's should start withdrawn then normal on show
this fixes initial state of an ee where you couldn't detect when the
window had been accepted by the wm (goes to normal state from
withdrawn).

@fix
2014-10-29 19:34:33 +09:00
Jean-Philippe Andre f3226f5e81 Evas GL: Fix potential crash
Welp, it looks like this crash actually happened once even though
it should not. glGetString() seems to have returned NULL somehow.
2014-10-29 15:12:53 +09:00
Carsten Haitzler e164d14208 evas - fix new issue with segv when switching to alpha win with gl
evas gl window was freed before new one was created getting shared ctx
to 0 refcount thus freeing everything there - BAD. fix. new issue in
git, not from release
2014-10-28 20:10:40 +09:00
Jean-Philippe Andre 0198fbfee4 Evas: Fix lock usage around async_current (gl preload)
Fixes Coverity:
 - CID 1039361
2014-10-28 11:19:24 +09:00
Jean-Philippe Andre 8e4dafcf28 Evas GL: Set umask before calling mkstemp
Fixes Coverity issues:
 - CID 1039609
 - CID 1039608
2014-10-28 10:54:51 +09:00
Carsten Haitzler 43acb28cdb evas - sw generic - fix osmesa to not use rgb buffers as evas doesnt know
this fixes incorrect sw osmesa rendering when no alpha cannel is used
on evas gl targets.
2014-10-27 19:52:03 +09:00
Jean-Philippe Andre 5a9d8d6f03 Evas GL: string_query returns a const char *
Why cast to/from void* in the first place?
2014-10-27 16:12:38 +09:00
Jean-Philippe Andre 3fe232cd95 Evas GL: Fix typo in an extension's name
This could potentially break applications relying on this
typo to check for the extension. The chances are very slim.
2014-10-27 16:12:38 +09:00
Carsten Haitzler 696346c467 evas gl rgba visual/rendering fix try ... again
so this is a re-try at the evas gl destination alpha fix. this is what
cedric tried, but done RIGHT. it required adding an ecore_x call to
create a window with correct visual/colormap. it requires doing
visuals totally correctly all the way from ecore_evas to the evas
gl_x11 core. nvidia drivers are very picky about visuals. i also had
to vid the egl/gles code too to do the same thing. nvidia gles/egl
drivers are also picky, mesa is not. this all requires a lot of code
changes. it's far from trivial

this isn't backported for a few reasons:

1. verify this fix doesn't break for anyone.

i tested:

nvidia glx + egl/gles
intel glx + egl/gles
radeon glx

it needs wider testing. nouveau, fglrx for starters and maybe
some other gles/egl drivers.

2. have some review time
3. time to settle before blasting to stable branches

@fix
2014-10-26 00:34:40 +09:00
Chris Michael b7e959c715 evas-gl-drm: Fix initialization from incompatible pointer type
Summary: The function prototype for eng_context_create has recently
changed in gl_common, however nobody thought it wise to update all
engines using it, so this commit fixes the function for the gl_drm
engine.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-24 08:37:51 -04:00
Chris Michael b41867cd77 evas-gl-drm: Cleanup formatting
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-22 09:24:14 -04:00
Jean-Philippe Andre d4eb07b4bb Evas GL: Don't pass shared context for GLX with 1.1 API
Not sure if this is very relevant, since GLX does not support
GL-ES as such, anyways... We should be using the extension
GLX_EXT_create_context_es_profile to create proper contexts.

Note: GLX + OpenGL-ES 1.1 crashes at any function call on my
machine (binary bloc driver), while EGL + GLES1.1 is fine.
2014-10-22 10:44:06 +09:00
Cedric BAIL 8606eed0f5 evas: don't redefine macro in tgv saver. 2014-10-21 23:42:03 +02:00