diff --git a/.github/workflows/linux-ci.yml b/.github/workflows/linux-ci.yml index 8fd1d776a..9ee806c34 100644 --- a/.github/workflows/linux-ci.yml +++ b/.github/workflows/linux-ci.yml @@ -62,7 +62,7 @@ jobs: libpng-dev \ libglfw3-dev - - name: Build Maplibre GL Core + - name: Build MapLibre Native Core run: | cmake --version cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Debug -DMLN_WITH_CLANG_TIDY=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DMLN_WITH_COVERAGE=ON diff --git a/docs/mdbook/src/design/android-map-rendering-data-flow.md b/docs/mdbook/src/design/android-map-rendering-data-flow.md index 50b47a7d0..466871536 100644 --- a/docs/mdbook/src/design/android-map-rendering-data-flow.md +++ b/docs/mdbook/src/design/android-map-rendering-data-flow.md @@ -66,9 +66,9 @@ actors. The key philosophy of rendering tiles is tiles are rendered layer by layer. A collection of tiles is called a tile set. To optimize tile -rendering, MapLibre Native GL only renders *dirty* tiles. A dirty tile +rendering, MapLibre Native only renders *dirty* tiles. A dirty tile is a tile rendered in the viewport that has changed due to user -interaction. To initiate this process, MapLibre Native GL loads the +interaction. To initiate this process, MapLibre Native loads the tileset to be rendered first. In a rendering request, if the tileset is already loaded, MapLibre Native will use a cached tile set. diff --git a/docs/mdbook/src/design/coordinate-system.md b/docs/mdbook/src/design/coordinate-system.md index 57e901f41..f26d80af8 100644 --- a/docs/mdbook/src/design/coordinate-system.md +++ b/docs/mdbook/src/design/coordinate-system.md @@ -1,6 +1,6 @@ # Coordinate System -Before we jump into the coordinate system of MapLibre Native GL, let's +Before we jump into the coordinate system of MapLibre Native, let's quickly review the concepts of translating a position on the face of Earth to a map tile. This is not a comprehensive refresher of coordinate reference systems or rendering basics. Rather this intends to guide the @@ -21,7 +21,7 @@ Native. This document uses the word *Earth* when it refers to the planet in which we all live in and make map tiles for. This document uses the word -*World* to denote the world MapLibre Native GL renders. The word *world* +*World* to denote the world MapLibre Native renders. The word *world* in rendering terms mean the *world* to render. It could be a set of cones and boxes, a modeled city, anything composed of 3D objects. MapLibre Native renders map tiles in a range of zoom levels on a 3D @@ -31,13 +31,13 @@ containing a set of map tiles to be rendered, not the *Earth*. #### Transformations -MapLibre GL requires a series of coordinate transformations to render a +MapLibre Native requires a series of coordinate transformations to render a geometry from map tile. This is where we refresh our rendering knowledge a bit. To render anything through a GPU: 1. Design and define model in the *Local Space*. We call anything that needs to be renderer a *model.* In the Local space, a model lives in - its own coordinate system. For MapLibre Native GL, in local space + its own coordinate system. For MapLibre Native, in local space each individual tile is modeled. This map tile is already populated by a map tile generation process. The longitude, latitude bound per tile is now translated to pixel bounds in this local space. @@ -214,7 +214,7 @@ rendering workflow is to translate object coordinates to world coordinates. This is important to understand if we are to render multiple objects in the world. If we treat all tiles in a zoom level being rendered in a single 3D horizontal plane, then the World Space has -only one object. And in MapLibre GL, this plane has an origin of (0,0), +only one object. And in MapLibre Native, this plane has an origin of (0,0), positioned on the top left. ## Device Coordinates @@ -255,7 +255,7 @@ Perspective projection matrix introduces the sense of depth perspective through the camera. As in objects further from the camera will look smaller and objects closer to the camera will look bigger. This perspective component is defined by parameter *w.* That is why the -shaders that MapLibre Native GL at the time of writing uses 4 +shaders that MapLibre Native at the time of writing uses 4 dimensional vectors over 3 dimensional vectors. The 4^th^ dimension is this parameter *w*. Therefore, theoretically a GL coordinate is of the form `(x, y, z, w)`. diff --git a/docs/mdbook/src/design/expressions.md b/docs/mdbook/src/design/expressions.md index ffbf93fbc..bbbdda928 100644 --- a/docs/mdbook/src/design/expressions.md +++ b/docs/mdbook/src/design/expressions.md @@ -76,14 +76,14 @@ implementation follows right after. Another part to notice here is the implementation evaluates both inputs because they are expressions too. Expressions can be nested. -**Although it looks like JavaScript, for MapLibre Native GL**, **the +**Although it looks like JavaScript, for MapLibre Native**, **the parser for any expression is written in MapLibre Native Core**. Each platform such as iOS, Android has their own Expression class which provides builders to build an expression and add it to a layer. When an expression is added to a layer, the rendering part of the code picks it -up in the MapLibre Native GL Core. +up in the MapLibre Native Core. -Also, inside MapLibre GL Core, this definition mechanism allows +Also, inside MapLibre Native Core, this definition mechanism allows extending expressions library with custom expressions if desired. ## Expression Types diff --git a/docs/mdbook/src/design/ten-thousand-foot-view.md b/docs/mdbook/src/design/ten-thousand-foot-view.md index ba497d44f..eb1164c6e 100644 --- a/docs/mdbook/src/design/ten-thousand-foot-view.md +++ b/docs/mdbook/src/design/ten-thousand-foot-view.md @@ -4,14 +4,14 @@ *Figure 1: MapLibre Native Components – Ten Thousand Foot view* From ten thousand foot, MapLibre Native is composed of *Map View* and a -*Renderer*. MapLibre Native GL supports iOS, Android, Linux, QT, MacOS, +*Renderer*. MapLibre Native supports iOS, Android, Linux, QT, MacOS, and nodeJS at the time of writing. Each of these *platforms* have their own *Map View* and *Map Renderer* component. A *Map Renderer* talks to a shared codebase that renders map by using device GPU. This shared piece of code at the time of writing supports OpenGL as its choice of rendering API. -Apart from the platform code, *MapLibre Native GL* offers shared +Apart from the platform code, *MapLibre Native* offers shared implementation for *Style, Layers, Text, Glyphs*, and *Tiles*. To summarize: @@ -161,7 +161,7 @@ processing. The platforms also include worker threads for processing for platform-specific tasks such as running HTTP requests in the background. But the core code is agnostic about where those tasks get performed. Each platform is required to provide its own implementation of -concurrency/threading primitives for MapLibre GL core to use. The +concurrency/threading primitives for MapLibre Native core to use. The platform code is also free to use its own threading model. For example, Android uses a *GLSurfaceView* with a *GLThread* where the iOS SDK uses *Grand Central Dispatch* for running asynchronous tasks. @@ -175,15 +175,15 @@ simplify, there is only one thread allocated for rendering loop, background or foreground[^7]. A *Tile Worker* is a thread that prepares a tile of a specific type. Geometry Tile Worker by the name of it, prepares a tile for rendering tiles that contains vector geometry. -Following that same trend, MapLibre Native GL offers tile worker for +Following that same trend, MapLibre Native offers tile worker for raster tiles and elevation tiles. Messages sent to a tile worker can be processed by any thread, with the assumption that only one thread at a time will work with a tile worker instance. Tile workers are not based on a common interface or base class. Tiles -are. MapLibre Native GL offers a base Tile class. Raster, Geometry, and +are. MapLibre Native offers a base Tile class. Raster, Geometry, and Elevation tile instances are inherited from Tile base class. Through -this inheritance MapLibre Native GL maintains the association of Tile +this inheritance MapLibre Native maintains the association of Tile types and tile workers. Any Tile Worker is an actor that accepts messages of a specific Tile type. For a Geometry Tile Worker, the type is a Geometry Tile. diff --git a/package.json b/package.json index 98ff07941..7c9718ccc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@maplibre/maplibre-gl-native", "version": "5.2.0", - "description": "Renders map tiles with Maplibre GL", + "description": "Renders map tiles with MapLibre Native", "keywords": [ "maplibre", "gl" diff --git a/platform/ios/platform/ios/README.md b/platform/ios/platform/ios/README.md index a0ffbd2c8..2b93e3395 100644 --- a/platform/ios/platform/ios/README.md +++ b/platform/ios/platform/ios/README.md @@ -16,8 +16,8 @@ MapLibre Native for iOS is distributed using the [Swift Package Index](https://s There is a an open bounty to extend this Getting Started guide ([#809](https://github.com/maplibre/maplibre-native/issues/809)). In the meantime, refer to one of these external guides: -- [Get Started with MapLibre GL Native for iOS using SwiftUI](https://docs.maptiler.com/maplibre-gl-native-ios/ios-swiftui-basic-get-started/) -- [Get Started With MapLibre GL Native for iOS using UIKit](https://docs.maptiler.com/maplibre-gl-native-ios/ios-uikit-basic-get-started/) +- [Get Started with MapLibre Native for iOS using SwiftUI](https://docs.maptiler.com/maplibre-gl-native-ios/ios-swiftui-basic-get-started/) +- [Get Started With MapLibre Native for iOS using UIKit](https://docs.maptiler.com/maplibre-gl-native-ios/ios-uikit-basic-get-started/) ## Developing diff --git a/platform/ios/platform/ios/ios.xcodeproj/project.pbxproj b/platform/ios/platform/ios/ios.xcodeproj/project.pbxproj index 8c128a323..417e762d6 100644 --- a/platform/ios/platform/ios/ios.xcodeproj/project.pbxproj +++ b/platform/ios/platform/ios/ios.xcodeproj/project.pbxproj @@ -1093,7 +1093,7 @@ DA17BE2F1CC4BAC300402C41 /* MLNMapView_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNMapView_Private.h; sourceTree = ""; }; DA1AC01B1E5B8774006DF1D6 /* lt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/Localizable.strings; sourceTree = ""; }; DA1AC0201E5B8917006DF1D6 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = uk; path = uk.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA1DC94A1CB6C1C2006E619F /* MapLibre GL.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "MapLibre GL.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + DA1DC94A1CB6C1C2006E619F /* MapLibre Native.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "MapLibre Native.app"; sourceTree = BUILT_PRODUCTS_DIR; }; DA1DC9501CB6C1C2006E619F /* MBXAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBXAppDelegate.h; sourceTree = ""; }; DA1DC9531CB6C1C2006E619F /* MBXViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBXViewController.h; sourceTree = ""; }; DA1DC95E1CB6C1C2006E619F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -1799,7 +1799,7 @@ DA1DC94B1CB6C1C2006E619F /* Products */ = { isa = PBXGroup; children = ( - DA1DC94A1CB6C1C2006E619F /* MapLibre GL.app */, + DA1DC94A1CB6C1C2006E619F /* MapLibre Native.app */, DABCABA81CB80692000A7C39 /* Bench GL.app */, DA8847D21CBAF91600AB86E3 /* Mapbox.framework */, DAA4E4131CBB71D400178DFB /* libMapbox.a */, @@ -2684,7 +2684,7 @@ ); name = iosapp; productName = iosapp; - productReference = DA1DC94A1CB6C1C2006E619F /* MapLibre GL.app */; + productReference = DA1DC94A1CB6C1C2006E619F /* MapLibre Native.app */; productType = "com.apple.product-type.application"; }; DA2E88501CC036F400F24E7B /* test */ = { @@ -3744,7 +3744,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl; - PRODUCT_NAME = "MapLibre GL"; + PRODUCT_NAME = "MapLibre Native"; PROVISIONING_PROFILE_SPECIFIER = ""; }; name = RelWithDebInfo; @@ -3776,7 +3776,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench; PRODUCT_NAME = "Bench GL"; - PROVISIONING_PROFILE_SPECIFIER = "MapLibre GL Bench Development"; + PROVISIONING_PROFILE_SPECIFIER = "MapLibre Native Bench Development"; }; name = RelWithDebInfo; }; @@ -4324,7 +4324,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl; - PRODUCT_NAME = "MapLibre GL"; + PRODUCT_NAME = "MapLibre Native"; PROVISIONING_PROFILE_SPECIFIER = ""; }; name = Debug; @@ -4344,7 +4344,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl; - PRODUCT_NAME = "MapLibre GL"; + PRODUCT_NAME = "MapLibre Native"; PROVISIONING_PROFILE_SPECIFIER = ""; }; name = Release; @@ -4585,7 +4585,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench; PRODUCT_NAME = "Bench GL"; - PROVISIONING_PROFILE_SPECIFIER = "MapLibre GL Bench Development"; + PROVISIONING_PROFILE_SPECIFIER = "MapLibre Native Bench Development"; }; name = Debug; }; @@ -4616,7 +4616,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench; PRODUCT_NAME = "Bench GL"; - PROVISIONING_PROFILE_SPECIFIER = "MapLibre GL Bench Development"; + PROVISIONING_PROFILE_SPECIFIER = "MapLibre Native Bench Development"; }; name = Release; }; @@ -4664,7 +4664,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.maplibregl; - PRODUCT_NAME = "MapLibre GL"; + PRODUCT_NAME = "MapLibre Native"; PROVISIONING_PROFILE_SPECIFIER = ""; }; name = MinSizeRel; @@ -4696,7 +4696,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.maplibre.bench; PRODUCT_NAME = "Bench GL"; - PROVISIONING_PROFILE_SPECIFIER = "MapLibre GL Bench Development"; + PROVISIONING_PROFILE_SPECIFIER = "MapLibre Native Bench Development"; }; name = MinSizeRel; }; diff --git a/platform/ios/platform/ios/ios.xcodeproj/xcshareddata/xcschemes/iosapp.xcscheme b/platform/ios/platform/ios/ios.xcodeproj/xcshareddata/xcschemes/iosapp.xcscheme index 235c9068e..f5eb3b67d 100644 --- a/platform/ios/platform/ios/ios.xcodeproj/xcshareddata/xcschemes/iosapp.xcscheme +++ b/platform/ios/platform/ios/ios.xcodeproj/xcshareddata/xcschemes/iosapp.xcscheme @@ -15,7 +15,7 @@ @@ -31,7 +31,7 @@ @@ -79,7 +79,7 @@ @@ -103,7 +103,7 @@ diff --git a/platform/ios/platform/macos/app/AppDelegate.m b/platform/ios/platform/macos/app/AppDelegate.m index b456d8ce3..6a677f833 100644 --- a/platform/ios/platform/macos/app/AppDelegate.m +++ b/platform/ios/platform/macos/app/AppDelegate.m @@ -292,7 +292,7 @@ NSString * const MLNLastMapDebugMaskDefaultsKey = @"MLNLastMapDebugMask"; - (IBAction)showShortcuts:(id)sender { NSAlert *alert = [[NSAlert alloc] init]; - alert.messageText = @"MapLibre GL Help"; + alert.messageText = @"MapLibre Native Help"; alert.informativeText = @"\ • To scroll, swipe with two fingers on a trackpad, or drag the cursor, or press the arrow keys.\n\ • To zoom in, pinch two fingers apart on a trackpad, or double-click, or hold down Shift while dragging the cursor down, or hold down Option while pressing the up key.\n\ diff --git a/platform/ios/scripts/size-check.sh b/platform/ios/scripts/size-check.sh index 9c8a0c845..13e4cbf33 100755 --- a/platform/ios/scripts/size-check.sh +++ b/platform/ios/scripts/size-check.sh @@ -68,7 +68,7 @@ for ((i=0; i<${TOTAL_TESTS}; i++)); do fi # The path to the maplibre dynamic lib - LIB_PATH="${OUTPUT_DIR}/${ARCHIVE_NAME}/Products/Applications/MapLibre GL.app/Frameworks/Mapbox.framework/Mapbox" + LIB_PATH="${OUTPUT_DIR}/${ARCHIVE_NAME}/Products/Applications/MapLibre Native.app/Frameworks/Mapbox.framework/Mapbox" if [[ ! -f "$LIB_PATH" ]]; then echo "${RED}MapLibre dynamic lib not found: $LIB_PATH${NORMAL}" exit 6 diff --git a/platform/qt/app/mapwindow.cpp b/platform/qt/app/mapwindow.cpp index 96a1d1a24..cf198bb6c 100644 --- a/platform/qt/app/mapwindow.cpp +++ b/platform/qt/app/mapwindow.cpp @@ -57,7 +57,7 @@ void MapWindow::changeStyle() { auto &styles = m_map->defaultStyles(); m_map->setStyleUrl(styles[currentStyleIndex].first); - setWindowTitle(QString("MapLibre GL: ") + styles[currentStyleIndex].second); + setWindowTitle(QString("MapLibre Native: ") + styles[currentStyleIndex].second); if (++currentStyleIndex == styles.size()) { currentStyleIndex = 0; @@ -456,7 +456,7 @@ void MapWindow::initializeGL() { changeStyle(); } else { m_map->setStyleUrl(styleUrl); - setWindowTitle(QString("MapLibre GL: ") + styleUrl); + setWindowTitle(QString("MapLibre Native: ") + styleUrl); } m_bearingAnimation = new QPropertyAnimation(m_map.get(), "bearing"); diff --git a/platform/qt/config.qdocconf b/platform/qt/config.qdocconf index fa916dc3f..e6275f89b 100644 --- a/platform/qt/config.qdocconf +++ b/platform/qt/config.qdocconf @@ -7,7 +7,7 @@ include($QT_INSTALL_DOCS/global/qt-html-templates-online.qdocconf) Cpp.ignoretokens = Q_MAPLIBRE_EXPORT project = QMapLibreGL -description = MapLibre GL Maps SDK for Qt +description = MapLibre Native SDK for Qt language = Cpp outputdir = docs diff --git a/platform/qt/qt.cmake b/platform/qt/qt.cmake index cd9022012..ef2d96dab 100644 --- a/platform/qt/qt.cmake +++ b/platform/qt/qt.cmake @@ -6,10 +6,10 @@ set(MLN_QT_VERSION_COMPATIBILITY 2.0.0) message(STATUS "Version ${MLN_QT_VERSION}") option(MLN_QT_LIBRARY_ONLY "Build only libraries" OFF) -option(MLN_QT_STATIC "Build MapLibre GL Qt bindings staticly" OFF) +option(MLN_QT_STATIC "Build MapLibre Native Qt bindings staticly" OFF) option(MLN_QT_INSIDE_PLUGIN "Build QMapLibreGL as OBJECT library, so it can be bundled into separate single plugin lib." OFF) -option(MLN_QT_WITH_HEADLESS "Build MapLibre GL Qt with headless support" ON) -option(MLN_QT_WITH_INTERNAL_SQLITE "Build MapLibre GL Qt bindings with internal sqlite" OFF) +option(MLN_QT_WITH_HEADLESS "Build MapLibre Native Qt with headless support" ON) +option(MLN_QT_WITH_INTERNAL_SQLITE "Build MapLibre Native Qt bindings with internal sqlite" OFF) option(MLN_QT_DEPLOYMENT "Autogenerate files necessary for deployment" OFF) find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED) @@ -35,7 +35,7 @@ endif() if(CMAKE_SYSTEM_NAME STREQUAL "Linux") find_package(Threads REQUIRED) - option(MLN_QT_WITH_INTERNAL_ICU "Build MapLibre GL Qt bindings with internal ICU" OFF) + option(MLN_QT_WITH_INTERNAL_ICU "Build MapLibre Native Qt bindings with internal ICU" OFF) if(NOT MLN_QT_WITH_INTERNAL_ICU) find_package(ICU COMPONENTS uc REQUIRED) else() diff --git a/platform/qt/src/map.cpp b/platform/qt/src/map.cpp index 231434f3e..9d960fd34 100644 --- a/platform/qt/src/map.cpp +++ b/platform/qt/src/map.cpp @@ -1243,7 +1243,7 @@ void Map::render() { } /*! - If MapLibre GL needs to rebind the default \a fbo, it will use the + If MapLibre Native needs to rebind the default \a fbo, it will use the ID supplied here. \a size is the size of the framebuffer, which on high DPI screens is usually bigger than the map size. diff --git a/qt_attribution.json b/qt_attribution.json index 6abf25504..5f8fcdfe1 100644 --- a/qt_attribution.json +++ b/qt_attribution.json @@ -2,7 +2,7 @@ "Id": "maplibre-gl-native", "Name": "MapLibre Native", "QDocModule": "qtlocation", - "QtUsage": "Used in the MapLibre backend of Qt Location.", + "QtUsage": "Used in the MapLibre Native backend of Qt Location.", "Description": "MapLibre Native is a community led fork derived from mapbox-gl-native.", "Homepage": "https://github.com/maplibre/maplibre-native",