2026.0

New featureLuciadCPillar

It is now possible to integrate LuciadCPillar in the C# WinUI 3 framework. This is demonstrated in the winui3 sample.

New featureLuciadCPillar

LuciadCPillar now provides support for using Geography Markup Language (GML) files. The use of the main class GmlModelDecoderGmlModelDecoderGmlModelDecoder is explained in the Decode and visualize GML data article. You can use the data formats sample to load a GML file.

New featureLuciadCPillar

LuciadCPillar now provides support for using OGC Web Feature Service (WFS). The use of the main classes WfsCapabilitiesWfsCapabilitiesWfsCapabilities and WfsModelDecoderWfsModelDecoderWfsModelDecoder is explained in the article on Decode and visualize WFS data. You can use the data formats sample to connect to Web Feature Services.

New featureLuciadCPillar

Added support for parameterized, expression-based styling of lines and areas. With this new feature, you can style entire groups of features by providing style expressions that control various aspects of the visualization. For lines, the color, visibility and width can be controlled. For areas, the color and visibility can be controlled. The expressions are evaluated on the GPU, which allows you to perform style updates very efficiently. Refer to the parameterized feature styling guide for more information.

New featureLuciadCPillar

LCP-776
Added HatchedIconBuilderHatchedIconBuilderHatchedIconBuilder to easily create and customize hatched icons.

ImprovementLuciadCPillar

LCP-1141, LCP-1146
You can now visualize regular and parameterized icons with enhanced transparency by enabling the IconDrawCommand::transparency and IconsDrawCommand::transparency flags respectively.

ImprovementLuciadCPillar

Parameterized icons can now take full advantage of IIconIIconIIcons that support display scaling. On high-DPI displays, parameterized icons get rendered at the appropriate resolution, instead of being upscaled from display scale 1.0.

ImprovementLuciadCPillar

Map::ViewMapTransformation::viewToMapMap::ViewMapTransformation::viewToMapMap::ViewMapTransformation::viewToMap with Map::LocationMode::ClosestSurfaceMap::LocationMode::ClosestSurfaceMap::LocationMode::ClosestSurface now doesn't return world points on surfaces that were painted in a controller anymore. This fixes a potential problem where measurement controllers would measure their own visualization.

ImprovementLuciadCPillar

A FeatureQueryFeatureQueryFeatureQuery now can be configured with a CancellationTokenCancellationTokenCancellationToken. It is recommended to take this into account when implementing the method IFeatureModel::queryIFeatureModel::queryIFeatureModel::query. This allows to close an application quicker when it is still performing a feature query.

ImprovementLuciadCPillar

The WmsModelDecoderWmsModelDecoderWmsModelDecoder and WmtsModelDecoderWmtsModelDecoderWmtsModelDecoder now also support the `image/jpgpng` media type, which can be served by LuciadFusion.

Bug fixLuciadCPillar

In some cases, no terrain was painted in a 1-pixel wide zone around the meridian.

Upgrade considerationLuciadCPillar

The minimum required version of Visual Studio has been raised from Visual Studio 2019 (v16) to Visual Studio 2022 (v17.10).

Upgrade considerationLuciadCPillar

The versions of Gradle, Kotlin and the Android Jetpack libraries the LuciadCPillar Android samples depend on have been updated. This has no effect on the use of the LuciadCPillar API.

Upgrade considerationLuciadCPillar

The default behavior for ParameterizedFeatureCanvas::IconsDrawCommandParameterizedFeatureCanvas::IconsDrawCommandParameterizedFeatureCanvas::IconsDrawCommand has changed from the icons not being draped, to the icons being draped if the geometry has a zero Z value for consistency with FeatureCanvas::IconDrawCommandFeatureCanvas::IconDrawCommandFeatureCanvas::IconDrawCommand. Applications relying on the default behavior may have to add an explicit call to ParameterizedFeatureCanvas::IconsDrawCommand::draped() to enforce the desired behavior.

Upgrade considerationLuciadCPillar

LuciadCPillar transitioned from OpenGL to WebGPU for graphics rendering. Because of this transition, Qt applications integrating LuciadCPillar now require a version of Qt greater than or equal to 6.8 (LTS). From this version on, Qt has sufficient support for the Vulkan graphics API, which is used as a backend for WebGPU.

The LuciadCPillar samples have been updated to use Qt version 6.8 (LTS). See the installation instructions and requirements page for details. Note that the VulkanSDK 1.4.321.1 also needs to be installed on your system to compile the samples.

The change to WebGPU and the upgrade to Qt 6.8 have no effect on the use of (most of) the LuciadCPillar API itself, but it requires changes to the Qt integration code. If you have an application that uses Qt, you will need to copy the integration code from the LuciadCPillar samples to your own code base again. Additionally, you will need to make a few modifications:

  • The QQuickMapObject class has been renamed to QQuickMapItem.
  • The QMapWidget class has been removed and replaced by the new QMapWindow class. Note that the new class is not a QWidget anymore. You can adapt it to a QWidget using the QWidget::createWindowContainer function. This is demonstrated in the Qt Widgets sample.

Upgrade considerationLuciadCPillar

Update Nuget Packages used by the C# samples. System.Text.Json to version 9.0.10 and System.Threading.Tasks.Extensions to 4.6.3.

Upgrade considerationLuciadCPillar

The API related to Map::RendererMap::RendererMap::Renderer has been changed. The following modifications were made: Additionally, the Map::IRendererCallbackMap::IRendererCallbackMap::IRendererCallback methods now also get a Map::RendererMap::RendererMap::Renderer passed in as parameter. When you implement this interface, this will result in a compile error which can be fixed by adding the additional Map::RendererMap::RendererMap::Renderer parameter to the implementation's methods.

Upgrade considerationLuciadCPillar

LuciadCPillar now targets the C++ 20 standard.

Upgrade considerationLuciadCPillar

LuciadCPillar transitioned from OpenGL to WebGPU for graphics rendering. This transition introduced minor visual differences compared with previous versions of LuciadCPillar:
  • Blending of (semi-)transparent colors now happens in linear color space whereas it happened in gamma color space (sRGB) in previous versions. This change resolves blending artifacts, but it can make blended colors slightly brighter. This is especially noticeable when LuciadCPillar renders thin lines or thin text.
    Blending in a linear vs gamma color space
  • Texture sampling now happens in linear color space whereas it happened in gamma color space (sRGB) in previous versions. Similarly to blending, this change resolves minor artifacts, but it might look slightly different from before.
    Texture sampling in a linear vs gamma color space

Upgrade considerationLuciadCPillar

The minimum gcc compiler version on Linux is now version 13.

Upgrade considerationLuciadCPillar

The minimum Android API level supported by LuciadCPillar is now 33. For more information about the evolution in the supported API Level, refer to the System Requirements documentation.

Upgrade considerationLuciadCPillar

A new IFeatureQueryCallback::handleTerminationIFeatureQueryCallback::handleTerminationIFeatureQueryCallback::handleTermination method has been added to the IFeatureQueryCallbackIFeatureQueryCallbackIFeatureQueryCallback interface. In combination with the new FeatureQuery::getTooManyFeaturesCountFeatureQuery::getTooManyFeaturesCountFeatureQuery::getTooManyFeaturesCount, you can use this method in your IFeatureModel::queryIFeatureModel::queryIFeatureModel::query implementations to signal that the query would have returned more features than the caller can handle. When upgrading, you will need to implement this new method in any classes extending from the IFeatureQueryCallbackIFeatureQueryCallbackIFeatureQueryCallback interface. You may do this using an empty method body.

Upgrade considerationLuciadCPillar

PixelFormat::Rgb565 has been removed from the API. If you were using an image with this pixel format, it's advised to convert it to an image with a different pixel format. For example PixelFormat::Rgb888PixelFormat::Rgb888PixelFormat::Rgb888 or PixelFormat::Rgba8888PixelFormat::Rgba8888PixelFormat::Rgba8888.

Upgrade considerationLuciadCPillar

The following third party libraries have been updated:
  • GDAL: updated to version 3.10.3+1
  • PROJ: updated to version 9.6.0
  • libwebp: updated to version 1.5.0
  • libjpeg: updated to version 9f
  • json-c: updated to version 0.18
  • expected-lite: version 0.9.0
  • eigen: version 3.4.1
  • abseil: version 20240722.0
  • protobuf: version 5.27.0
  • glu: version 1.3+7
The following third-party libraries have been added:
  • expat: version 2.7.1
  • xerces-c: version 3.3.0

Upgrade considerationLuciadCPillar

LuciadCPillar transitioned from OpenGL to WebGPU for graphics rendering and therefore now depends on dawn, version 7582+2. This library internally relies on these additional third-party libraries, managed independently by dawn itself:
  • abseil
  • directx-shader-compiler
  • directx-headers
  • jsoncpp
  • spirv-headers
  • spirv-tools
  • vulkan-headers
  • vulkan-loader
As a result, the following third-party libraries have been dropped:
  • OpenGL
  • GLAD

Upgrade considerationLuciadCPillar

LCP-1160
The following third party library has been updated to mitigate known security vulnerabilities:
  • openssl: updated to version 3.4.4