diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index c3d285899..7c116279e 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -208,7 +208,8 @@ jobs: -DCMAKE_BUILD_TYPE=${{ env.BUILDTYPE }} \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_C_COMPILER=gcc-12 \ - -DMLN_WITH_NODE=ON + -DMLN_WITH_NODE=ON \ + -DMLN_WITH_OPENGL=ON - name: Get vcpkg commit id if: runner.os == 'Windows' @@ -235,7 +236,8 @@ jobs: -G Ninja ` -DCMAKE_BUILD_TYPE=${{ env.BUILDTYPE }} ` -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ` - -DMLN_WITH_NODE=ON + -DMLN_WITH_NODE=ON ` + -DMLN_WITH_OPENGL=ON - name: Build maplibre-native (MacOS/Linux) if: runner.os == 'MacOS' || runner.os == 'Linux' diff --git a/.github/workflows/node-release.yml b/.github/workflows/node-release.yml index 5829a375d..7d52fd5df 100644 --- a/.github/workflows/node-release.yml +++ b/.github/workflows/node-release.yml @@ -177,7 +177,8 @@ jobs: -DCMAKE_BUILD_TYPE=${{ env.BUILDTYPE }} \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_C_COMPILER=gcc-12 \ - -DMLN_WITH_NODE=ON + -DMLN_WITH_NODE=ON \ + -DMLN_WITH_OPENGL=ON - name: "Create directory '${{ github.workspace }}/platform/windows/vendor/vcpkg/bincache' (Windows)" if: runner.os == 'Windows' @@ -205,7 +206,8 @@ jobs: -G Ninja ` -DCMAKE_BUILD_TYPE=${{ env.BUILDTYPE }} ` -DCMAKE_CXX_COMPILER_LAUNCHER=sccache ` - -DMLN_WITH_NODE=ON + -DMLN_WITH_NODE=ON \ + -DMLN_WITH_OPENGL=ON - name: Build maplibre-native (MacOS/Linux) if: runner.os == 'MacOS' || runner.os == 'Linux' diff --git a/.github/workflows/qt-ci.yml b/.github/workflows/qt-ci.yml index 5466ab285..6c70f3d49 100644 --- a/.github/workflows/qt-ci.yml +++ b/.github/workflows/qt-ci.yml @@ -199,7 +199,8 @@ jobs: -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \ -DCMAKE_OSX_DEPLOYMENT_TARGET="${DEPLOYMENT_TARGET}" \ -DCMAKE_OSX_ARCHITECTURES="${DEPLOYMENT_ARCH}" \ - -DMLN_WITH_QT=ON + -DMLN_WITH_QT=ON \ + -DMLN_WITH_OPENGL=ON ninja - name: Build maplibre-native (Linux, Qt6) @@ -211,7 +212,8 @@ jobs: -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \ -DCMAKE_C_COMPILER_LAUNCHER="ccache" \ -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \ - -DMLN_WITH_QT=ON + -DMLN_WITH_QT=ON \ + -DMLN_WITH_OPENGL=ON ninja - name: Build maplibre-native (Linux, Qt6, internal libraries) @@ -225,7 +227,8 @@ jobs: -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \ -DMLN_WITH_QT=ON \ -DMLN_QT_WITH_INTERNAL_ICU=ON \ - -DMLN_QT_WITH_INTERNAL_SQLITE=ON + -DMLN_QT_WITH_INTERNAL_SQLITE=ON \ + -DMLN_WITH_OPENGL=ON ninja - name: Run tests (Linux) @@ -247,5 +250,6 @@ jobs: -DCMAKE_CONFIGURATION_TYPES="${BUILD_TYPE}" \ -DCMAKE_C_COMPILER_LAUNCHER="ccache.exe" \ -DCMAKE_CXX_COMPILER_LAUNCHER="ccache.exe" \ - -DMLN_WITH_QT=ON + -DMLN_WITH_QT=ON \ + -DMLN_WITH_OPENGL=ON ninja.exe diff --git a/CMakeLists.txt b/CMakeLists.txt index 501f48980..0fb7b4dcb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,9 +8,10 @@ option(MLN_WITH_NODE "Build MapLibre Native Node.js bindings" OFF) option(MLN_WITH_GLFW "Set up targets for GLFW platform" ON) option(MLN_WITH_SANITIZER "Use [address|thread|undefined] here" OFF) option(MLN_WITH_RTTI "Compile with runtime type information" OFF) -option(MLN_WITH_OPENGL "Build with OpenGL renderer" ON) +option(MLN_WITH_OPENGL "Build with OpenGL renderer" OFF) option(MLN_WITH_EGL "Build with EGL renderer" OFF) option(MLN_WITH_VULKAN "Build with Vulkan renderer" OFF) +option(MLN_WITH_METAL "Build with Metal renderer" OFF) option(MLN_WITH_PMTILES "Build with PMTiles support" ON) option(MLN_WITH_WERROR "Make all compilation warnings errors" ON) option(MLN_USE_UNORDERED_DENSE "Use ankerl dense containers for performance" ON) diff --git a/benchmark/android/app/build.gradle b/benchmark/android/app/build.gradle index f89a4cb16..4b0c4dfa0 100644 --- a/benchmark/android/app/build.gradle +++ b/benchmark/android/app/build.gradle @@ -25,6 +25,7 @@ android { cmake { arguments '-DANDROID_CCACHE=ccache' arguments '-DANDROID_STL=c++_static' + arguments '-DMLN_WITH_OPENGL=ON' targets 'mbgl-benchmark-runner' } } diff --git a/platform/android/MapLibreAndroid/build.gradle.kts b/platform/android/MapLibreAndroid/build.gradle.kts index acd5a37dd..07dcd0b9c 100644 --- a/platform/android/MapLibreAndroid/build.gradle.kts +++ b/platform/android/MapLibreAndroid/build.gradle.kts @@ -76,6 +76,11 @@ android { productFlavors { create("opengl") { dimension = "renderer" + externalNativeBuild { + cmake { + arguments("-DMLN_WITH_OPENGL=ON", "-DMLN_WITH_VULKAN=OFF") + } + } } create("vulkan") { dimension = "renderer" diff --git a/render-test/android/app/build.gradle.kts b/render-test/android/app/build.gradle.kts index 6f9298b0a..67d3435ba 100644 --- a/render-test/android/app/build.gradle.kts +++ b/render-test/android/app/build.gradle.kts @@ -60,6 +60,11 @@ android { productFlavors { create("opengl") { dimension = "renderer" + externalNativeBuild { + cmake { + arguments("-DMLN_WITH_OPENGL=ON") + } + } } create("vulkan") { dimension = "renderer" diff --git a/src/mbgl/renderer/paint_parameters.cpp b/src/mbgl/renderer/paint_parameters.cpp index 1b80741d3..4f29d2932 100644 --- a/src/mbgl/renderer/paint_parameters.cpp +++ b/src/mbgl/renderer/paint_parameters.cpp @@ -156,7 +156,7 @@ void PaintParameters::clearStencil() { vulkanRenderPass.clearStencil(); context.renderingStats().stencilClears++; -#else // !MLN_RENDER_BACKEND_METAL +#elif MLN_RENDER_BACKEND_OPENGL context.clearStencilBuffer(0b00000000); #endif } @@ -247,7 +247,7 @@ void PaintParameters::renderTileClippingMasks(const RenderTiles& renderTiles) { vulkanContext.renderingStats().stencilUpdates++; } -#else // MLN_RENDER_BACKEND_OPENGL +#elif MLN_RENDER_BACKEND_OPENGL auto program = staticData.shaders->getLegacyGroup().get(); if (!program) { diff --git a/src/mbgl/shaders/gl/legacy/program.hpp b/src/mbgl/shaders/gl/legacy/program.hpp index eba7a62c4..9d285499e 100644 --- a/src/mbgl/shaders/gl/legacy/program.hpp +++ b/src/mbgl/shaders/gl/legacy/program.hpp @@ -55,7 +55,7 @@ public: case gfx::Backend::Type::Vulkan: { break; } -#else // MLN_RENDER_BACKEND_OPENGL +#elif MLN_RENDER_BACKEND_OPENGL case gfx::Backend::Type::OpenGL: { programBase = std::make_unique>(programParameters.withDefaultSource( {gfx::Backend::Type::OpenGL, diff --git a/test/android/app/build.gradle.kts b/test/android/app/build.gradle.kts index a34da1abe..bd37f9f99 100644 --- a/test/android/app/build.gradle.kts +++ b/test/android/app/build.gradle.kts @@ -33,7 +33,8 @@ android { externalNativeBuild { cmake { arguments += listOf( - "-DANDROID_STL=c++_static" + "-DANDROID_STL=c++_static", + "-DMLN_WITH_OPENGL=ON" ) targets += "mbgl-test-runner" }