diff --git a/scwx-qt/res/textures/images/dot.svg b/scwx-qt/res/textures/images/dot.svg
new file mode 100644
index 00000000..8f765035
--- /dev/null
+++ b/scwx-qt/res/textures/images/dot.svg
@@ -0,0 +1,9 @@
+
diff --git a/scwx-qt/scwx-qt.qrc b/scwx-qt/scwx-qt.qrc
index e7d8315a..ccb2e42a 100644
--- a/scwx-qt/scwx-qt.qrc
+++ b/scwx-qt/scwx-qt.qrc
@@ -91,6 +91,7 @@
res/textures/images/cursor-17.png
res/textures/images/crosshairs-24.png
res/textures/images/dot-3.png
+ res/textures/images/dot.svg
res/textures/images/location-marker.svg
res/textures/images/mapbox-logo.svg
res/textures/images/maptiler-logo.svg
diff --git a/scwx-qt/source/scwx/qt/manager/resource_manager.cpp b/scwx-qt/source/scwx/qt/manager/resource_manager.cpp
index c6c40a26..41558378 100644
--- a/scwx-qt/source/scwx/qt/manager/resource_manager.cpp
+++ b/scwx-qt/source/scwx/qt/manager/resource_manager.cpp
@@ -43,10 +43,17 @@ void Initialize()
void Shutdown() {}
std::shared_ptr
-LoadImageResource(const std::string& urlString)
+LoadImageResource(const std::string& urlString, double scale)
{
util::TextureAtlas& textureAtlas = util::TextureAtlas::Instance();
- return textureAtlas.CacheTexture(urlString, urlString);
+ return textureAtlas.CacheTexture(urlString, urlString, scale);
+}
+
+std::shared_ptr LoadImageResource(
+ const std::string& urlString, const std::string& textureName, double scale)
+{
+ util::TextureAtlas& textureAtlas = util::TextureAtlas::Instance();
+ return textureAtlas.CacheTexture(textureName, urlString, scale);
}
std::vector>
diff --git a/scwx-qt/source/scwx/qt/manager/resource_manager.hpp b/scwx-qt/source/scwx/qt/manager/resource_manager.hpp
index ec7cf65e..cf0aad03 100644
--- a/scwx-qt/source/scwx/qt/manager/resource_manager.hpp
+++ b/scwx-qt/source/scwx/qt/manager/resource_manager.hpp
@@ -19,9 +19,13 @@ void Initialize();
void Shutdown();
std::shared_ptr
-LoadImageResource(const std::string& urlString);
+LoadImageResource(const std::string& urlString, double scale = 1);
+std::shared_ptr
+LoadImageResource(const std::string& urlString,
+ const std::string& textureName,
+ double scale = 1);
std::vector>
-LoadImageResources(const std::vector& urlStrings);
+ LoadImageResources(const std::vector& urlStrings);
void BuildAtlas();
} // namespace ResourceManager
diff --git a/scwx-qt/source/scwx/qt/map/overlay_layer.cpp b/scwx-qt/source/scwx/qt/map/overlay_layer.cpp
index 3522ba40..c4f93ef3 100644
--- a/scwx-qt/source/scwx/qt/map/overlay_layer.cpp
+++ b/scwx-qt/source/scwx/qt/map/overlay_layer.cpp
@@ -1,10 +1,11 @@
-#include
#include
#include
#include
#include
#include
+#include
#include
+#include
#include
#include
#include
@@ -88,6 +89,9 @@ public:
showMapLogoCallbackUuid_);
}
+ void SetupGeoIcons();
+ void SetCusorLocation(common::Coordinate coordinate);
+
OverlayLayer* self_;
boost::uuids::uuid clockFormatCallbackUuid_;
@@ -115,11 +119,13 @@ public:
types::GetTextureName(types::ImageTexture::CardinalPoint24)};
const std::string& compassIconName_ {
types::GetTextureName(types::ImageTexture::Compass24)};
- const std::string& cursorIconName_ {
+ std::string cursorIconName_ {
types::GetTextureName(types::ImageTexture::Dot3)};
const std::string& mapCenterIconName_ {
types::GetTextureName(types::ImageTexture::Cursor17)};
+ std::shared_ptr cursorIconImage_ {nullptr};
+
const std::string& mapboxLogoImageName_ {
types::GetTextureName(types::ImageTexture::MapboxLogo)};
const std::string& mapTilerLogoImageName_ {
@@ -137,6 +143,8 @@ public:
float lastFontSize_ {0.0f};
QMargins lastColorTableMargins_ {};
+ double cursorScale_ {1};
+
std::string sweepTimeString_ {};
bool sweepTimeNeedsUpdate_ {true};
bool sweepTimePicked_ {false};
@@ -156,6 +164,45 @@ OverlayLayer::OverlayLayer(std::shared_ptr context) :
OverlayLayer::~OverlayLayer() = default;
+void OverlayLayerImpl::SetCusorLocation(common::Coordinate coordinate)
+{
+ const double offset = 3 * cursorScale_ / 2;
+ geoIcons_->SetIconLocation(cursorIcon_,
+ coordinate.latitude_,
+ coordinate.longitude_,
+ -offset,
+ offset);
+}
+
+void OverlayLayerImpl::SetupGeoIcons()
+{
+ const std::string& texturePath =
+ types::GetTexturePath(types::ImageTexture::Dot3);
+ cursorIconName_ = fmt::format(
+ "{}x{}", types::GetTextureName(types::ImageTexture::Dot3), cursorScale_);
+ cursorIconImage_ = manager::ResourceManager::LoadImageResource(
+ texturePath, cursorIconName_, cursorScale_);
+
+ auto coordinate = currentPosition_.coordinate();
+ geoIcons_->StartIconSheets();
+ geoIcons_->AddIconSheet(cursorIconName_);
+ geoIcons_->AddIconSheet(locationIconName_);
+ geoIcons_->FinishIconSheets();
+
+ geoIcons_->StartIcons();
+
+ cursorIcon_ = geoIcons_->AddIcon();
+ geoIcons_->SetIconTexture(cursorIcon_, cursorIconName_, 0);
+
+ locationIcon_ = geoIcons_->AddIcon();
+ geoIcons_->SetIconTexture(locationIcon_, locationIconName_, 0);
+ geoIcons_->SetIconAngle(locationIcon_, units::angle::degrees {45.0});
+ geoIcons_->SetIconLocation(
+ locationIcon_, coordinate.latitude(), coordinate.longitude());
+
+ geoIcons_->FinishIcons();
+}
+
void OverlayLayer::Initialize()
{
logger_->debug("Initialize()");
@@ -173,27 +220,18 @@ void OverlayLayer::Initialize()
}
p->currentPosition_ = p->positionManager_->position();
- auto coordinate = p->currentPosition_.coordinate();
// Geo Icons
- p->geoIcons_->StartIconSheets();
- p->geoIcons_->AddIconSheet(p->cursorIconName_);
- p->geoIcons_->AddIconSheet(p->locationIconName_);
- p->geoIcons_->FinishIconSheets();
-
- p->geoIcons_->StartIcons();
-
- p->cursorIcon_ = p->geoIcons_->AddIcon();
- p->geoIcons_->SetIconTexture(p->cursorIcon_, p->cursorIconName_, 0);
-
- p->locationIcon_ = p->geoIcons_->AddIcon();
- p->geoIcons_->SetIconTexture(p->locationIcon_, p->locationIconName_, 0);
- p->geoIcons_->SetIconAngle(p->locationIcon_,
- units::angle::degrees {45.0});
- p->geoIcons_->SetIconLocation(
- p->locationIcon_, coordinate.latitude(), coordinate.longitude());
-
- p->geoIcons_->FinishIcons();
+ auto& generalSettings = settings::GeneralSettings::Instance();
+ p->cursorScale_ = generalSettings.cursor_icon_scale().GetValue();
+ p->SetupGeoIcons();
+ generalSettings.cursor_icon_scale().RegisterValueChangedCallback(
+ [this](double value)
+ {
+ p->cursorScale_ = value;
+ p->SetupGeoIcons();
+ Q_EMIT NeedsRendering();
+ });
// Icons
p->icons_->StartIconSheets();
@@ -339,9 +377,7 @@ void OverlayLayer::Render(const QMapLibre::CustomLayerRenderParameters& params)
p->geoIcons_->SetIconVisible(p->cursorIcon_, cursorIconVisible);
if (cursorIconVisible)
{
- common::Coordinate mouseCoordinate = context()->mouse_coordinate();
- p->geoIcons_->SetIconLocation(
- p->cursorIcon_, mouseCoordinate.latitude_, mouseCoordinate.longitude_);
+ p->SetCusorLocation(context()->mouse_coordinate());
}
// Location Icon
diff --git a/scwx-qt/source/scwx/qt/settings/general_settings.cpp b/scwx-qt/source/scwx/qt/settings/general_settings.cpp
index 4f19dfcc..86ac3d6d 100644
--- a/scwx-qt/source/scwx/qt/settings/general_settings.cpp
+++ b/scwx-qt/source/scwx/qt/settings/general_settings.cpp
@@ -78,7 +78,10 @@ public:
cursorIconAlwaysOn_.SetDefault(false);
radarSiteThreshold_.SetDefault(0.0);
highPrivilegeWarningEnabled_.SetDefault(true);
+ cursorIconScale_.SetDefault(1.0);
+ cursorIconScale_.SetMinimum(1.0);
+ cursorIconScale_.SetMaximum(5.0);
fontSizes_.SetElementMinimum(1);
fontSizes_.SetElementMaximum(72);
fontSizes_.SetValidator([](const std::vector& value)
@@ -185,6 +188,7 @@ public:
SettingsVariable radarSiteThreshold_ {"radar_site_threshold"};
SettingsVariable highPrivilegeWarningEnabled_ {
"high_privilege_warning_enabled"};
+ SettingsVariable cursorIconScale_ {"cursor_icon_scale"};
};
GeneralSettings::GeneralSettings() :
@@ -222,7 +226,8 @@ GeneralSettings::GeneralSettings() :
&p->warningsProvider_,
&p->cursorIconAlwaysOn_,
&p->radarSiteThreshold_,
- &p->highPrivilegeWarningEnabled_});
+ &p->highPrivilegeWarningEnabled_,
+ &p->cursorIconScale_});
SetDefaults();
}
GeneralSettings::~GeneralSettings() = default;
@@ -397,6 +402,11 @@ SettingsVariable& GeneralSettings::high_privilege_warning_enabled() const
return p->highPrivilegeWarningEnabled_;
}
+SettingsVariable& GeneralSettings::cursor_icon_scale() const
+{
+ return p->cursorIconScale_;
+}
+
bool GeneralSettings::Shutdown()
{
bool dataChanged = false;
@@ -455,7 +465,8 @@ bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs)
lhs.p->cursorIconAlwaysOn_ == rhs.p->cursorIconAlwaysOn_ &&
lhs.p->radarSiteThreshold_ == rhs.p->radarSiteThreshold_ &&
lhs.p->highPrivilegeWarningEnabled_ ==
- rhs.p->highPrivilegeWarningEnabled_);
+ rhs.p->highPrivilegeWarningEnabled_ &&
+ lhs.p->cursorIconScale_ == rhs.p->cursorIconScale_);
}
} // namespace scwx::qt::settings
diff --git a/scwx-qt/source/scwx/qt/settings/general_settings.hpp b/scwx-qt/source/scwx/qt/settings/general_settings.hpp
index 3484461b..59f29275 100644
--- a/scwx-qt/source/scwx/qt/settings/general_settings.hpp
+++ b/scwx-qt/source/scwx/qt/settings/general_settings.hpp
@@ -56,6 +56,7 @@ public:
[[nodiscard]] SettingsVariable& cursor_icon_always_on() const;
[[nodiscard]] SettingsVariable& radar_site_threshold() const;
[[nodiscard]] SettingsVariable& high_privilege_warning_enabled() const;
+ [[nodiscard]] SettingsVariable& cursor_icon_scale() const;
static GeneralSettings& Instance();
diff --git a/scwx-qt/source/scwx/qt/types/texture_types.cpp b/scwx-qt/source/scwx/qt/types/texture_types.cpp
index 18efd9b9..2369dc34 100644
--- a/scwx-qt/source/scwx/qt/types/texture_types.cpp
+++ b/scwx-qt/source/scwx/qt/types/texture_types.cpp
@@ -24,7 +24,7 @@ static const std::unordered_map imageTextureInfo_ {
{"images/crosshairs-24", ":/res/textures/images/crosshairs-24.png"}},
{ImageTexture::Cursor17,
{"images/cursor-17", ":/res/textures/images/cursor-17.png"}},
- {ImageTexture::Dot3, {"images/dot-3", ":/res/textures/images/dot-3.png"}},
+ {ImageTexture::Dot3, {"images/dot-3", ":/res/textures/images/dot.svg"}},
{ImageTexture::LocationBriefcase,
{"images/location-briefcase",
":/res/icons/font-awesome-6/briefcase-solid.svg"}},
diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp
index b3a9a381..fa891795 100644
--- a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp
+++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp
@@ -146,6 +146,7 @@ public:
&showSmoothedRangeFolding_,
&updateNotificationsEnabled_,
&cursorIconAlwaysOn_,
+ &cursorIconScale_,
&debugEnabled_,
&alertAudioSoundFile_,
&alertAudioLocationMethod_,
@@ -266,6 +267,7 @@ public:
settings::SettingsInterface showSmoothedRangeFolding_ {};
settings::SettingsInterface updateNotificationsEnabled_ {};
settings::SettingsInterface cursorIconAlwaysOn_ {};
+ settings::SettingsInterface cursorIconScale_ {};
settings::SettingsInterface debugEnabled_ {};
std::unordered_map>
@@ -811,6 +813,10 @@ void SettingsDialogImpl::SetupGeneralTab()
radarSiteThresholdUpdateUnits(
settings::UnitSettings::Instance().distance_units().GetValue());
+ cursorIconScale_.SetSettingsVariable(generalSettings.cursor_icon_scale());
+ cursorIconScale_.SetEditWidget(self_->ui->cursorIconScaleSpinBox);
+ cursorIconScale_.SetResetButton(self_->ui->resetCursorIconScaleButton);
+
antiAliasingEnabled_.SetSettingsVariable(
generalSettings.anti_aliasing_enabled());
antiAliasingEnabled_.SetEditWidget(self_->ui->antiAliasingEnabledCheckBox);
diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui
index 3205e553..5b9b37fd 100644
--- a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui
+++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui
@@ -137,7 +137,7 @@
0
-412
511
- 841
+ 873
@@ -159,31 +159,33 @@
0
- -
-
+
-
+
+
+ -
+
+
+ -
+
+
+ -
+
- Grid Width
+ Radar Site Threshold
- -
-
-
- -
-
+
-
+
- ...
-
-
-
- :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+ Custom Map URL
- -
-
+
-
+
- ...
+ Warnings Provider
@@ -198,18 +200,25 @@
- -
-
-
- -
-
+
-
+
- Mapbox API Key
+ GPS Source
- -
-
+
-
+
+
+ -
+
+
+ MapTiler API Key
+
+
+
+ -
+
...
@@ -219,8 +228,54 @@
- -
-
+
-
+
+
+ ...
+
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
+
+
+ -
+
+
+ Default Radar Site
+
+
+
+ -
+
+
+ Custom Map Layer
+
+
+
+ -
+
+
+ -
+
+
+ Mapbox API Key
+
+
+
+ -
+
...
@@ -237,166 +292,12 @@
- -
-
-
- ...
-
-
-
- :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
-
-
-
- -
-
-
- Default Time Zone
-
-
-
- -
-
-
- QLineEdit::EchoMode::Password
-
-
-
- -
-
-
- QLineEdit::EchoMode::Password
-
-
-
- -
-
-
- -
-
-
- ...
-
-
-
- :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
-
-
-
- -
-
-
- Theme File
-
-
-
-
- -
-
-
- ...
-
-
-
- :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
-
-
-
- -
-
-
- ...
-
-
-
- :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
-
-
-
-
- -
-
-
- ...
-
-
-
- :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
-
-
-
- -
-
-
- -
-
-
- Default Alert Action
-
-
-
- -
-
-
- MapTiler API Key
-
-
-
- -
-
-
- ...
-
-
-
- :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
-
-
-
- -
-
-
- ...
-
-
-
- -
-
-
- GPS Source
-
-
-
- -
-
-
- -
-
-
- Custom Map URL
-
-
-
- -
-
-
- 1
-
-
- 999999999
-
-
-
- -
-
-
- -
-
-
-
@@ -419,20 +320,38 @@
- -
-
-
- -
-
-
- Map Provider
+
-
+
+
+ 1
+
+
+ 999999999
- -
-
+
-
+
- Theme
+ ...
+
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
+
+
+ -
+
+
+ Theme File
+
+
+
+ -
+
+
+ Grid Width
@@ -447,22 +366,8 @@
- -
-
-
- Warnings Provider
-
-
-
- -
-
-
- Default Radar Site
-
-
-
- -
-
+
-
+
...
@@ -472,58 +377,6 @@
- -
-
-
- GPS Baud Rate
-
-
-
- -
-
-
- Custom Map Layer
-
-
-
- -
-
-
- -
-
-
- -
-
-
- ...
-
-
-
- :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
-
-
-
- -
-
-
- -
-
-
- ...
-
-
-
- :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
-
-
-
- -
-
-
- ...
-
-
-
-
@@ -531,8 +384,11 @@
- -
-
+
-
+
+
+ -
+
...
@@ -542,31 +398,70 @@
- -
-
+
-
+
- GPS Plugin
+ ...
+ -
+
+
+ Default Time Zone
+
+
+
+ -
+
+
+ -
+
+
-
- -
-
-
- Radar Site Threshold
-
-
-
- -
-
+
-
+
...
-
-
- :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
+
+ -
+
+
+ Map Provider
+
+
+
+ -
+
+
+ QLineEdit::EchoMode::Password
+
+
+
+ -
+
+
+ -
+
+
+ Theme
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+
@@ -598,21 +493,163 @@
- -
-
-
-
-
+
-
+
-
+ ...
+
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
- -
-
+
-
+
...
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
+
+
+ -
+
+
+ QLineEdit::EchoMode::Password
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
+
+
+ -
+
+
+ GPS Baud Rate
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
+
+
+ -
+
+
+ Default Alert Action
+
+
+
+ -
+
+
+ -
+
+
+ ...
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
+
+
+ -
+
+
+ GPS Plugin
+
+
+
+ -
+
+
+ ...
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
+
+
+ -
+
+
+ Multi-Pane Cursor Size
+
+
+
+ -
+
+
+ 1
+
+
+ 1.000000000000000
+
+
+ 5.000000000000000
+
+
+ 0.100000000000000
+
+
+ QAbstractSpinBox::StepType::DefaultStepType
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/res/icons/font-awesome-6/rotate-left-solid.svg:/res/icons/font-awesome-6/rotate-left-solid.svg
+
diff --git a/scwx-qt/source/scwx/qt/util/texture_atlas.cpp b/scwx-qt/source/scwx/qt/util/texture_atlas.cpp
index fe2b2a9a..c069bfb3 100644
--- a/scwx-qt/source/scwx/qt/util/texture_atlas.cpp
+++ b/scwx-qt/source/scwx/qt/util/texture_atlas.cpp
@@ -50,12 +50,12 @@ public:
~Impl() {}
static std::shared_ptr
- LoadImage(const std::string& imagePath);
+ LoadImage(const std::string& imagePath, double scale = 1);
static std::shared_ptr
ReadPngFile(const QString& imagePath);
static std::shared_ptr
- ReadSvgFile(const QString& imagePath);
+ ReadSvgFile(const QString& imagePath, double scale = 1);
std::vector>
registeredTextures_ {};
@@ -92,12 +92,12 @@ void TextureAtlas::RegisterTexture(const std::string& name,
p->registeredTextures_.emplace_back(std::move(image));
}
-std::shared_ptr
-TextureAtlas::CacheTexture(const std::string& name, const std::string& path)
+std::shared_ptr TextureAtlas::CacheTexture(
+ const std::string& name, const std::string& path, double scale)
{
// Attempt to load the image
std::shared_ptr image =
- TextureAtlas::Impl::LoadImage(path);
+ TextureAtlas::Impl::LoadImage(path, scale);
// If the image is valid
if (image != nullptr && image->width() > 0 && image->height() > 0)
@@ -380,7 +380,7 @@ TextureAttributes TextureAtlas::GetTextureAttributes(const std::string& name)
}
std::shared_ptr
-TextureAtlas::Impl::LoadImage(const std::string& imagePath)
+TextureAtlas::Impl::LoadImage(const std::string& imagePath, double scale)
{
logger_->debug("Loading image: {}", imagePath);
@@ -398,7 +398,7 @@ TextureAtlas::Impl::LoadImage(const std::string& imagePath)
if (suffix == "svg")
{
- image = ReadSvgFile(qLocalImagePath);
+ image = ReadSvgFile(qLocalImagePath, scale);
}
else
{
@@ -509,10 +509,10 @@ TextureAtlas::Impl::ReadPngFile(const QString& imagePath)
}
std::shared_ptr
-TextureAtlas::Impl::ReadSvgFile(const QString& imagePath)
+TextureAtlas::Impl::ReadSvgFile(const QString& imagePath, double scale)
{
QSvgRenderer renderer {imagePath};
- QPixmap pixmap {renderer.defaultSize()};
+ QPixmap pixmap {renderer.defaultSize() * scale};
pixmap.fill(Qt::GlobalColor::transparent);
QPainter painter {&pixmap};
diff --git a/scwx-qt/source/scwx/qt/util/texture_atlas.hpp b/scwx-qt/source/scwx/qt/util/texture_atlas.hpp
index 64c5a2d7..64e23b43 100644
--- a/scwx-qt/source/scwx/qt/util/texture_atlas.hpp
+++ b/scwx-qt/source/scwx/qt/util/texture_atlas.hpp
@@ -74,8 +74,8 @@ public:
std::uint64_t BuildCount() const;
void RegisterTexture(const std::string& name, const std::string& path);
- std::shared_ptr
- CacheTexture(const std::string& name, const std::string& path);
+ std::shared_ptr CacheTexture(
+ const std::string& name, const std::string& path, double scale = 1);
void BuildAtlas(std::size_t width, std::size_t height);
void BufferAtlas(gl::OpenGLFunctions& gl, GLuint texture);
diff --git a/test/data b/test/data
index f03a46f3..6115c159 160000
--- a/test/data
+++ b/test/data
@@ -1 +1 @@
-Subproject commit f03a46f31b0378ca4077372c106d6967bb7ad66f
+Subproject commit 6115c15987fd75dd019db995e6bdc07a05b83dcc