Commit Graph

1398 Commits

Author SHA1 Message Date
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
Chris Michael 4078e0af9b evas-wayland-egl: Fix function prototype for eng_context_create
Summary: Apparently, somewhere down the line, the function prototype
for eng_context_create was changed in the EVGL_Interface, but nobody
decided to fix All engines. This commit fixes the function prototype
for evgl_eng_context_create

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-21 09:40:32 -04:00
Stefan Schmidt a7ef5bd7da Revert "evas: GL_X11 context need to always be with alpha or it will fail to change."
Need to also revert this in master. Cedric seems busy with other things and this
should not end up in 1.12  alpha1

This reverts commit 4ea75113ca.
2014-10-21 09:23:58 +02:00
Jean-Philippe Andre 904b1c5249 Evas: Fix some debug output formatting
Remove trailing newline.
2014-10-21 15:59:50 +09:00
Jean-Philippe Andre 25aaee99af Evas GL: Fix gl_x11/GLX engine
Forgot to set the TLS value after creating a new context.
No problem would show up in most cases, even in my test app.
But elementary_test GLView would just not work at all, spitting
incomplete FBO errors at me. Damn this one line was hard to find.

But introduced in df66916cd22ec6c4.
2014-10-20 12:16:08 +09:00
Jean-Philippe Andre c17cfbd13e Evas GL: Add support for PBuffer surfaces with GLX
Not fully tested, but allows calling evas_gl_make_current, so
it works for dummy surfaces (eg. 1x1 for a render thread).
2014-10-20 12:16:08 +09:00
Jean-Philippe Andre 47ddb889ad Evas GL: Add support for OpenGL-ES 1.1 (part 3)
This introduces XPixmap usage for indirect rendering.
Of course this works only for the gl_x11 engine... and for
now only when using EGL... and only on some drivers...
damn limitations.
Direct rendering should work on more platforms (eg. some desktop
nvidia cards with the EGL drivers).
2014-10-20 12:16:08 +09:00
Jean-Philippe Andre 4315537820 Evas GL: Add support for OpenGL-ES 1.1 (part 2)
Add version param to context_create.
Add support for 1.1 contexts in the GL_X11 engine, and checks
for version in all other engines (return NULL).
Add API wrappers for all OpenGL-ES 1.1 APIs (normal and debug
modes).
2014-10-20 12:16:08 +09:00
Jean-Philippe Andre 38aa72d139 Evas GL: Fix sigsegv with recent Nvidia EGL driver
Welp, glGetString() crashes if called before eglInit... And this
piece of code is now useless because "safe native" mode is not
used anymore (safe_native is never read).

Remove all safe native-related code.
2014-10-20 12:16:08 +09:00
Jean-Philippe Andre f30f55f9f4 Evas GL: Fix compilation for EGL/GLES
Configure with --with-opengl=es --enable-egl
Fixes runtime link dependencies
2014-10-20 12:16:08 +09:00
Jean-Philippe Andre a0712e25e1 Evas GL: Add support for pbuffer surfaces
Supports only EGL for now :(

These pbuffer surfaces can be used to create dummy surfaces for
make_current and render threads.

@feature
2014-10-20 12:16:08 +09:00
Jean-Philippe Andre 29e7f54ea0 Evas GL: Add evas_gl_surface_query
When using EGL, this function should return the properties of
a surface. Limited to a subset of known attributes.

Right now, this function will only work fine with EGL.
GLX support or any other engine is not implemented.

@feature
2014-10-20 12:16:08 +09:00