diff options
Diffstat (limited to 'include/cru/platform')
-rw-r--r-- | include/cru/platform/Color.h | 6 | ||||
-rw-r--r-- | include/cru/platform/Exception.h | 31 | ||||
-rw-r--r-- | include/cru/platform/GraphicsBase.h | 7 | ||||
-rw-r--r-- | include/cru/platform/graphics/SvgGeometryBuilderMixin.h | 5 |
4 files changed, 35 insertions, 14 deletions
diff --git a/include/cru/platform/Color.h b/include/cru/platform/Color.h index d993bd43..54308bbd 100644 --- a/include/cru/platform/Color.h +++ b/include/cru/platform/Color.h @@ -2,10 +2,10 @@ #include "Base.h" #include "cru/base/Base.h" -#include "cru/base/Format.h" #include "cru/base/String.h" #include <cstdint> +#include <format> #include <optional> #include <unordered_map> @@ -258,8 +258,8 @@ extern const std::unordered_map<StringView, Color> predefined_name_color_map; std::optional<Color> GetPredefinedColorByName(StringView name); inline String ToString(const Color& color) { - return cru::Format(u"rgba({}, {}, {}, {})", color.red, color.green, - color.blue, color.alpha); + return String::FromUtf8(std::format("rgba({}, {}, {}, {})", color.red, + color.green, color.blue, color.alpha)); } struct CRU_PLATFORM_API HslColor { diff --git a/include/cru/platform/Exception.h b/include/cru/platform/Exception.h index 4f9dc9ce..25017869 100644 --- a/include/cru/platform/Exception.h +++ b/include/cru/platform/Exception.h @@ -4,6 +4,7 @@ #include "cru/base/Exception.h" #include <optional> +#include <string_view> namespace cru::platform { // This exception is thrown when a resource is used on another platform. @@ -12,17 +13,26 @@ namespace cru::platform { class CRU_PLATFORM_API PlatformNotMatchException : public PlatformException { public: PlatformNotMatchException( - String resource_platform, String target_platform, + std::string resource_platform, std::string target_platform, + std::optional<std::string> additional_message = std::nullopt); + + PlatformNotMatchException( + StringView resource_platform, StringView target_platform, std::optional<StringView> additional_message = std::nullopt); ~PlatformNotMatchException() override; + [[deprecated("Use GetResourcePlatformUtf8 instead.")]] String GetResourcePlatform() const; + [[deprecated("Use GetTargetPlatform instead.")]] String GetTargetPlatform() const; + std::string GetResourcePlatformUtf8() const { return resource_platform_; } + std::string GetTargetPlatformUtf8() const { return target_platform_; } + private: - String resource_platform_; - String target_platform_; + std::string resource_platform_; + std::string target_platform_; }; // This exception is thrown when a resource has been disposed and not usable @@ -38,16 +48,25 @@ class CRU_PLATFORM_API ReuseException : public Exception { class CRU_PLATFORM_API PlatformUnsupportedException : public PlatformException { public: - PlatformUnsupportedException(String platform, String operation, + PlatformUnsupportedException( + std::string platform, std::string operation, + std::optional<std::string_view> additional_message); + + PlatformUnsupportedException(StringView platform, StringView operation, std::optional<StringView> additional_message); ~PlatformUnsupportedException() override; + [[deprecated("Use GetPlatformUtf8 instead.")]] String GetPlatform() const; + [[deprecated("Use GetOperationUtf8 instead.")]] String GetOperation() const; + std::string GetPlatformUtf8() const { return platform_; } + std::string GetOperationUtf8() const { return operation_; } + private: - String platform_; - String operation_; + std::string platform_; + std::string operation_; }; } // namespace cru::platform diff --git a/include/cru/platform/GraphicsBase.h b/include/cru/platform/GraphicsBase.h index 4837b08b..3d131e22 100644 --- a/include/cru/platform/GraphicsBase.h +++ b/include/cru/platform/GraphicsBase.h @@ -1,10 +1,10 @@ #pragma once #include "Base.h" -#include "cru/base/Format.h" #include "cru/base/Range.h" #include "cru/base/String.h" +#include <format> #include <limits> namespace cru::platform { @@ -44,7 +44,7 @@ constexpr bool operator!=(const Point& left, const Point& right) { } inline String ToString(const Point& point) { - return Format(u"(x: {}, y: {})", point.x, point.y); + return String::FromUtf8(std::format("(x: {}, y: {})", point.x, point.y)); } struct CRU_PLATFORM_API Size final { @@ -85,7 +85,8 @@ constexpr bool operator!=(const Size& left, const Size& right) { } inline String ToString(const Size& size) { - return Format(u"(width: {}, height: {})", size.width, size.height); + return String::FromUtf8( + std::format("(width: {}, height: {})", size.width, size.height)); } struct Thickness final { diff --git a/include/cru/platform/graphics/SvgGeometryBuilderMixin.h b/include/cru/platform/graphics/SvgGeometryBuilderMixin.h index 1f7420e9..32b665a5 100644 --- a/include/cru/platform/graphics/SvgGeometryBuilderMixin.h +++ b/include/cru/platform/graphics/SvgGeometryBuilderMixin.h @@ -1,8 +1,8 @@ #pragma once #include "Geometry.h" -#include "cru/base/Format.h" +#include <format> #include <utility> namespace cru::platform::graphics { @@ -53,7 +53,8 @@ class CRU_PLATFORM_GRAPHICS_API SvgGeometryBuilderMixin private: template <typename... Args> void Append(StringView format, Args&&... args) { - current_ += Format(format, std::forward<Args>(args)...); + current_ += String::FromUtf8( + std::format(format.ToUtf8(), std::forward<Args>(args)...)); current_ += u' '; } |