summaryrefslogtreecommitdiff
path: root/platform/default/headless_display.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/default/headless_display.cpp')
-rw-r--r--platform/default/headless_display.cpp75
1 files changed, 4 insertions, 71 deletions
diff --git a/platform/default/headless_display.cpp b/platform/default/headless_display.cpp
index b98aef7903..4ab111f775 100644
--- a/platform/default/headless_display.cpp
+++ b/platform/default/headless_display.cpp
@@ -1,82 +1,15 @@
#include <mbgl/platform/default/headless_display.hpp>
-#if MBGL_USE_GLX
-#include <GL/glx.h>
-#endif
-
-#include <cstring>
-#include <stdexcept>
-#include <string>
-
namespace mbgl {
-HeadlessDisplay::HeadlessDisplay() {
-#if MBGL_USE_CGL
- // TODO: test if OpenGL 4.1 with GL_ARB_ES2_compatibility is supported
- // If it is, use kCGLOGLPVersion_3_2_Core and enable that extension.
- CGLPixelFormatAttribute attributes[] = {
- kCGLPFAOpenGLProfile,
- static_cast<CGLPixelFormatAttribute>(kCGLOGLPVersion_Legacy),
- static_cast<CGLPixelFormatAttribute>(0)
- };
-
- GLint num;
- CGLError error = CGLChoosePixelFormat(attributes, &pixelFormat, &num);
- if (error != kCGLNoError) {
- throw std::runtime_error(std::string("Error choosing pixel format:") + CGLErrorString(error) + "\n");
- }
- if (num <= 0) {
- throw std::runtime_error("No pixel formats found.");
- }
-#endif
-
-#if MBGL_USE_GLX
- if (!XInitThreads()) {
- throw std::runtime_error("Failed to XInitThreads.");
- }
+class HeadlessDisplay::Impl {};
- xDisplay = XOpenDisplay(nullptr);
- if (xDisplay == nullptr) {
- throw std::runtime_error("Failed to open X display.");
- }
-
- const char *extensions = reinterpret_cast<const char *>(glXQueryServerString(xDisplay, DefaultScreen(xDisplay), GLX_EXTENSIONS));
- if (!extensions) {
- throw std::runtime_error("Cannot read GLX extensions.");
- }
- if (!strstr(extensions,"GLX_SGIX_fbconfig")) {
- throw std::runtime_error("Extension GLX_SGIX_fbconfig was not found.");
- }
- if (!strstr(extensions, "GLX_SGIX_pbuffer")) {
- throw std::runtime_error("Cannot find glXCreateContextAttribsARB.");
- }
-
- // We're creating a dummy pbuffer anyway that we're not using.
- static int pixelFormat[] = {
- GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT,
- None
- };
-
- int configs = 0;
- fbConfigs = glXChooseFBConfig(xDisplay, DefaultScreen(xDisplay), pixelFormat, &configs);
- if (fbConfigs == nullptr) {
- throw std::runtime_error("Failed to glXChooseFBConfig.");
- }
- if (configs <= 0) {
- throw std::runtime_error("No Framebuffer configurations.");
- }
-#endif
+HeadlessDisplay::HeadlessDisplay() {
+ // no-op
}
HeadlessDisplay::~HeadlessDisplay() {
-#if MBGL_USE_CGL
- CGLDestroyPixelFormat(pixelFormat);
-#endif
-
-#if MBGL_USE_GLX
- XFree(fbConfigs);
- XCloseDisplay(xDisplay);
-#endif
+ // no-op
}
} // namespace mbgl