summaryrefslogtreecommitdiff
path: root/platform/linux
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-04-05 15:57:47 +0200
committerKonstantin Käfer <mail@kkaefer.com>2017-04-05 23:05:46 +0200
commit6fcac0f580786adbb71040dfc69b36bdbb6f94e1 (patch)
tree2701796f95729b73fd066af5457aeef7acbb5ff8 /platform/linux
parent7c69cfa6de6e09f096ce27e437b4e2ca0b9bc35a (diff)
downloadqtlocation-mapboxgl-6fcac0f580786adbb71040dfc69b36bdbb6f94e1.tar.gz
[core] always create a pixelbuffer surface in the EGL backend
We need a surface to activate a context. Some implementation don't seem to error when passing EGL_NO_SURFACE, but it doesn't seem standards compliant.
Diffstat (limited to 'platform/linux')
-rw-r--r--platform/linux/src/headless_backend_egl.cpp11
-rw-r--r--platform/linux/src/headless_display_egl.cpp4
2 files changed, 6 insertions, 9 deletions
diff --git a/platform/linux/src/headless_backend_egl.cpp b/platform/linux/src/headless_backend_egl.cpp
index cfe82d3ccc..d98b2edc03 100644
--- a/platform/linux/src/headless_backend_egl.cpp
+++ b/platform/linux/src/headless_backend_egl.cpp
@@ -14,11 +14,13 @@ struct EGLImpl : public HeadlessBackend::Impl {
: glContext(glContext_),
display(display_),
config(config_) {
-#if __ANDROID__
- // Create a pixel buffer surface (in conjunction with EGL_SURFACE_TYPE, EGL_PBUFFER_BIT).
+ // Create a dummy pbuffer. We will render to framebuffers anyway, but we need a pbuffer to
+ // activate the context.
+ // Note that to be able to create pbuffer surfaces, we need to choose a config that
+ // includes EGL_SURFACE_TYPE, EGL_PBUFFER_BIT in HeadlessDisplay.
const EGLint surfAttribs[] = {
- EGL_WIDTH, 512,
- EGL_HEIGHT, 512,
+ EGL_WIDTH, 8,
+ EGL_HEIGHT, 8,
EGL_LARGEST_PBUFFER, EGL_TRUE,
EGL_NONE
};
@@ -27,7 +29,6 @@ struct EGLImpl : public HeadlessBackend::Impl {
if (glSurface == EGL_NO_SURFACE) {
throw std::runtime_error("Could not create surface: " + std::to_string(eglGetError()));
}
-#endif // __ANDROID__
}
~EGLImpl() {
diff --git a/platform/linux/src/headless_display_egl.cpp b/platform/linux/src/headless_display_egl.cpp
index eddc05feaf..03c8e16a59 100644
--- a/platform/linux/src/headless_display_egl.cpp
+++ b/platform/linux/src/headless_display_egl.cpp
@@ -32,11 +32,7 @@ HeadlessDisplay::Impl::Impl() {
}
const EGLint attribs[] = {
-#if __ANDROID__
- // Android emulator requires a pixel buffer to generate renderable unit
- // test results.
EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
-#endif // __ANDROID__
EGL_NONE
};