| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This also includes changes which allow QGLContext to not own it's
own QEglContext. With X11GL, the QEglContext gets reused by multiple
QGLContexts so it is important QGLContext doesn't delete it.
Reviewed-By: TrustMe
|
|
|
|
|
|
|
| |
Note: This changes QX11PixmapData::gl_surface to a void* to enable
build on 64-bit systems where EGLSurface is a pointer.
Reviewed-By: TrustMe
|
|
|
|
|
|
| |
This should fix build on Symbian & WinCE
Reviewed-By: TrustMe
|
|
|
|
|
|
|
| |
The old qt_chooseEGLConfigForPixmap & qt_createEGLSurfaceForPixmap
code will remain until QX11GLPixmapData can be re-written properly.
Reviewed-By: TrustMe
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QEgl::createSurface() on X11 will now check to see if the device's
X11 Visual is compatible with the EGLConfig passed in. If it is not
compatible, the function will re-create the QPaintDevice's native
drawable with a different Visual (one which is compatable with the
EGLConfig). This represented the bulk of the QGLWidget::setContext
method which is now much simpler.
As a consequense of this change, QWidgets with graphicssystem opengl
will behave much more like QGLWidget as most of the code is re-used.
So things like WA_TranslucentBackground should now work with opengl
graphicssystem too.
Reviewed-By: TrustMe
|
|
|
|
| |
Reviewed-By: TrustMe
|
|
|
|
| |
Reviewed-By: TrustMe
|
|
|
|
|
|
|
|
|
|
| |
QEgl::createSurface was virtually identical for every platform apart
from the line which returned the native window type. This patch just
adds QEgl::nativePixmap and QEgl::nativeWindow which are platform
specific (though the default widget->winId() works for everything
apart from symbian).
Reviewed-By: Aleksandar Sasha Babic
|
|
|
|
|
|
|
|
| |
We keep the methods in QEglContext, but these are useful helpers
which wrap the QEgl version of the functions, which is where the
bulk of the logic is (for these functions anyway).
Reviewed-By: Aleksandar Sasha Babic
|
|
|
|
| |
Reviewed-By: Aleksandar Sasha Babic
|
|
|
|
|
|
|
|
| |
This puts the QEgl namespace in a single file which can be used by
both qeglcontext and qeglproperties. Files which need QEglContext
should now include qeglcontext_p.h.
Reviewed-By: Aleksandar Sasha Babic
|
|
|
|
| |
Reviewed-By: Trustme
|
|
|
|
|
| |
Explicit EGLNativeDisplayType casts are needed since maemo6 defines
EGL_DEFAULT_DISPLAY as ((void*)0).
|
|
|
|
|
|
|
|
|
| |
This basicaly replaces display(), openDisplay() & defaultDisplay()
methods with a single display() and nativeDisplay(), the latter
being implemented in the platform-specific files and everything
else being cross-platform code.
Reviewed-By: Trond
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
| |
The previous code might have failed if the desired extension name
was a prefix of another name: "EGL_foo" member of "EGL_foo_bar".
This change introduces a more precise check.
Task-number: QTBUG-6454
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
|
| |
When mixing GL and VG in the same thread, some devices require
that eglBindAPI() be called before eglMakeCurrent() when switching
between context types. The EGL spec indicates that this shouldn't
be required unless the context parameter is EGL_NO_CONTEXT, but it
isn't a big deal to work around slightly non-compliant devices.
Reviewed-by: Tom Cooksey
|
|
|
|
|
|
|
|
| |
Context sharing was enabled on EGL systems, but QGLContext::isSharing()
was still returning false because the flag in QGLContextPrivate
was not updated.
Reviewed-by: Sarah Smith
|
|
|
|
| |
Reviewed-By: Rhys Weatherley
|
|
|
|
|
|
|
|
|
|
| |
Allow higher layers in QtOpenGL and QtOpenVG to set the EGLConfig
and EGLContext manually if they have some other way to determine
what the values should be (e.g. constructing a special config for a
specific platform). Also add a QEglProperties argument to
createContext() to allow fine-tuning of the context parameters.
Reviewed-by: Sarah Smith
|
|
|
|
| |
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QtOpenVG was doing a lot of housekeeping to avoid having to
switch EGL contexts if the same surface was used over and over.
This housekeeping really belongs in the QEgl layer so that
QtOpenGL could potentially use it as well.
This change also adds some overrides for makeCurrent(),
swapBuffers(), and destroySurface() that take an EGLSurface
directly. This is the first step in separating EGL surface
management from context management.
Reviewed-by: Sarah Smith
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
| |
This is private API
Reviewed-By: Trustme
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
| |
According to the spec, if we pass a 0 out pointer,
EGL should tell us how many configurations are available.
However, we pass a 0 out pointer, but say that it's 256 elements big,
it confuses some implementations. Fix that by passing a 0 out pointer
and saying that it has space for 0 elements. Now we correctly get the
amount of available configs.
Reviewed-by: Rhys Weatherley <rhys.weatherley@nokia.com>
|
|
|
|
| |
Reviewed-By: Rhys Weatherley
|
|
This change also moves the EGL support classes from QtOpenGL to QtGui
so they can be shared between OpenGL and OpenVG.
|