Commit Graph

818 Commits

Author SHA1 Message Date
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
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
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
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