Commit Graph

12 Commits (6d96b8c4af00c37f954d2d70d295c679d74647fb)

Author SHA1 Message Date
Martin Gräßlin 6d96b8c4af Move egl context creation into AbstractEglContext
Code was more or less copied into each backend, so it's better to
have a shared implementation.
2015-11-16 09:08:14 +01:00
Martin Gräßlin f2ad98aa3a Add O2ES as possible value for KWIN_COMPOSE
If KWIN_COMPOSE is set to O2ES, an OpenGL ES context is tried to
be created instead of an OpenGL context.

REVIEW: 125919
2015-11-03 09:30:12 +01:00
Martin Gräßlin 14d943caea Runtime depend on GLES in all egl backends
As we don't have GLPLatform before the backend is fully created
the AbstractEglBackend has a new method isOpenGLES() -> bool
which determines based on QOpenGLContext::openGLModuleType().
2015-11-03 09:29:31 +01:00
Martin Gräßlin 68b7274c5d Initialize AbstractEglTexture::m_image
If not set to EGL_NO_IMAGE_KHR the dtor might call eglDestroyImageKHR
for an image which never got created resulting in undefined behavior.
2015-10-09 12:26:17 +02:00
Martin Gräßlin c56bbc0ddf Composite windows from a QOpenGLFramebufferObject
This change introduces a mechanism for internal windows to be rendered
to a QOpenGLFramebufferObject to be composited using the texture bound
to the FBO. This is useful for in-process rendering (e.g. QtQuick) and
at the same time bypassing the windowing system.

The OpenGL context of the QOpenGLFramebufferObject needs to be sharing
with the compositing OpenGL context.
2015-08-25 14:33:50 +02:00
Martin Gräßlin 3139dcd3b9 Drop cmakedefine HAVE_WAYLAND
Now a required build dependency.
2015-08-12 11:39:20 +02:00
Martin Gräßlin a9f1f3d85e [wayland] Properly handle case that EGL_WAYLAND_Y_INVERTED_WL is not supported
According to spec eglQueryWaylandBufferWL returns EGL_FALSE if
EGL_WAYLAND_Y_INVERTED_WL is not supported and in that case we should
treat it as af the value were set to EGL_TRUE.
2015-05-21 15:49:46 +02:00
Martin Gräßlin 79c94d42f3 [wayland] Support shm buffers on GLES 2015-05-11 11:11:16 +02:00
Martin Gräßlin 209b62d522 [wayland] Pass EGLDisplay to KWayland::Server::Display
This allows the Server to calculate the size of a Buffer and we don't
need to use the queryBuffer for the size.
2015-05-08 12:43:44 +02:00
Martin Gräßlin 7c8c1dac0a [SceneOpenGL] Render per DrmOutput in EglGbmBackend
For each DrmOutput a gbm_surface and EglSurface is created. When
rendering per screen the context is made current on each of the
surfaces.

Note: viewport handling needs to be improved by e.g. passing through
the scene to restore to correct viewport after dropping an FBO.

Furthermore it seems like buffer age is not working correctly in this
setup (not overly surprising).

Dynamic changes are not yet supported.
2015-04-24 12:03:20 +02:00
Martin Gräßlin 8d8c6b09ac Fix build without Wayland (try 1) 2015-03-20 15:46:24 +01:00
Martin Gräßlin dae8eed3a8 Introduce a shared base class for the EGL backends
There's quite some overlap and duplicated code. This AbstractEglBackend
tries to merge the two backends a little bit again.

This also introduces an AbstractEglTexture which supports both X11 and
Wayland "pixmaps" so that EglOnXBackend can support Wayland buffers.
2015-03-20 14:08:54 +01:00