diff options
Diffstat (limited to 'platform/darwin/src/headless_view_cgl.cpp')
-rw-r--r-- | platform/darwin/src/headless_view_cgl.cpp | 51 |
1 files changed, 6 insertions, 45 deletions
diff --git a/platform/darwin/src/headless_view_cgl.cpp b/platform/darwin/src/headless_view_cgl.cpp index dc58463b5d..08f0da8751 100644 --- a/platform/darwin/src/headless_view_cgl.cpp +++ b/platform/darwin/src/headless_view_cgl.cpp @@ -1,37 +1,14 @@ #include <mbgl/platform/default/headless_view.hpp> -#include <mbgl/platform/default/headless_display.hpp> -#include <CoreFoundation/CoreFoundation.h> +#include <mbgl/gl/gl.hpp> -namespace mbgl { - -gl::glProc HeadlessView::initializeExtension(const char* name) { - static CFBundleRef framework = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.opengl")); - if (!framework) { - throw std::runtime_error("Failed to load OpenGL framework."); - } - - CFStringRef str = CFStringCreateWithCString(kCFAllocatorDefault, name, kCFStringEncodingASCII); - void* symbol = CFBundleGetFunctionPointerForName(framework, str); - CFRelease(str); - - return reinterpret_cast<gl::glProc>(symbol); -} - -void HeadlessView::createContext() { - CGLError error = CGLCreateContext(display->pixelFormat, nullptr, &glContext); - if (error != kCGLNoError) { - throw std::runtime_error(std::string("Error creating GL context object:") + CGLErrorString(error) + "\n"); - } +#include <cassert> - error = CGLEnable(glContext, kCGLCEMPEngine); - if (error != kCGLNoError) { - throw std::runtime_error(std::string("Error enabling OpenGL multithreading:") + CGLErrorString(error) + "\n"); - } -} +namespace mbgl { -void HeadlessView::destroyContext() { - CGLDestroyContext(glContext); +void HeadlessView::bindFramebuffer() { + assert(fbo); + MBGL_CHECK_ERROR(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo)); } void HeadlessView::resizeFramebuffer() { @@ -76,8 +53,6 @@ void HeadlessView::resizeFramebuffer() { } void HeadlessView::clearBuffers() { - assert(active); - MBGL_CHECK_ERROR(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0)); if (fbo) { @@ -96,18 +71,4 @@ void HeadlessView::clearBuffers() { } } -void HeadlessView::activateContext() { - CGLError error = CGLSetCurrentContext(glContext); - if (error != kCGLNoError) { - throw std::runtime_error(std::string("Switching OpenGL context failed:") + CGLErrorString(error) + "\n"); - } -} - -void HeadlessView::deactivateContext() { - CGLError error = CGLSetCurrentContext(nullptr); - if (error != kCGLNoError) { - throw std::runtime_error(std::string("Removing OpenGL context failed:") + CGLErrorString(error) + "\n"); - } -} - } // namespace mbgl |