aboutsummaryrefslogtreecommitdiff
path: root/src/osx/graphics
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-09-04 23:23:32 +0800
committercrupest <crupest@outlook.com>2021-09-04 23:23:32 +0800
commitc504aef3835f71ea22c9e938066f01e69e1c2db3 (patch)
tree4d456079e08e64923e84ca37b862c82a0b184167 /src/osx/graphics
parent9e3d8fbd19ac93382a231a5eb8e7f8b389e6f6c2 (diff)
downloadcru-c504aef3835f71ea22c9e938066f01e69e1c2db3.tar.gz
cru-c504aef3835f71ea22c9e938066f01e69e1c2db3.tar.bz2
cru-c504aef3835f71ea22c9e938066f01e69e1c2db3.zip
...
Diffstat (limited to 'src/osx/graphics')
-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);