From 7c66ec671e3077f0ccfc457befd33485456922a1 Mon Sep 17 00:00:00 2001 From: tdcosta100 Date: Wed, 30 Aug 2023 19:04:31 -0300 Subject: [PATCH] Windows: update OSMesa HeadlessBackend to OpenGL ES 3.0 (#1383) --- .../windows/src/headless_backend_osmesa.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/platform/windows/src/headless_backend_osmesa.cpp b/platform/windows/src/headless_backend_osmesa.cpp index c00dc118a..381aac3a0 100644 --- a/platform/windows/src/headless_backend_osmesa.cpp +++ b/platform/windows/src/headless_backend_osmesa.cpp @@ -14,8 +14,9 @@ namespace gl { class OSMesaBackendImpl final : public HeadlessBackend::Impl { public: - OSMesaBackendImpl() { - context = OSMesaCreateContextAttribs(std::initializer_list({OSMESA_FORMAT, + OSMesaBackendImpl() + : buffer(std::make_unique(2048 * 2048 * 4)), + context(OSMesaCreateContextAttribs(std::initializer_list({OSMESA_FORMAT, OSMESA_RGBA, OSMESA_DEPTH_BITS, 24, @@ -23,10 +24,13 @@ public: 8, OSMESA_PROFILE, OSMESA_COMPAT_PROFILE, + OSMESA_CONTEXT_MAJOR_VERSION, + 3, + OSMESA_CONTEXT_MINOR_VERSION, + 0, NULL}) .begin(), - NULL); - } + nullptr)) {} ~OSMesaBackendImpl() final { OSMesaDestroyContext(context); } @@ -36,11 +40,11 @@ public: void activateContext() final { OSMesaMakeCurrent(context, buffer.get(), GL_UNSIGNED_BYTE, 2048, 2048); } - void deactivateContext() final {} + void deactivateContext() final { OSMesaMakeCurrent(nullptr, nullptr, GL_UNSIGNED_BYTE, 0, 0); } private: - std::unique_ptr buffer = std::make_unique(2048 * 2048 * 4); - OSMesaContext context = NULL; + std::unique_ptr buffer; + OSMesaContext context; }; void HeadlessBackend::createImpl() {