aboutsummaryrefslogtreecommitdiff
path: root/src/osx/graphics/quartz/Convert.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osx/graphics/quartz/Convert.cpp')
-rw-r--r--src/osx/graphics/quartz/Convert.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/osx/graphics/quartz/Convert.cpp b/src/osx/graphics/quartz/Convert.cpp
index c1177a41..087de56b 100644
--- a/src/osx/graphics/quartz/Convert.cpp
+++ b/src/osx/graphics/quartz/Convert.cpp
@@ -1,6 +1,27 @@
#include "cru/osx/graphics/quartz/Convert.hpp"
+#include <cstdint>
namespace cru::platform::graphics::osx::quartz {
+CFStringRef Convert(const String& string) {
+ return CFStringCreateWithBytes(
+ nullptr, reinterpret_cast<const UInt8*>(string.data()),
+ string.size() * sizeof(std::uint16_t), kCFStringEncodingUTF16, false);
+}
+
+String Convert(CFStringRef string) {
+ auto d = CFStringCreateExternalRepresentation(nullptr, string,
+ kCFStringEncodingUTF16, 0);
+ auto l = CFDataGetLength(d);
+
+ auto s = String::FromUtf16(
+ reinterpret_cast<const std::uint16_t*>(CFDataGetBytePtr(d)),
+ CFDataGetLength(d) / 2);
+
+ CFRelease(d);
+
+ return s;
+}
+
CGAffineTransform Convert(const Matrix& matrix) {
return CGAffineTransformMake(matrix.m11, matrix.m12, matrix.m21, matrix.m22,
matrix.m31, matrix.m32);