From c504aef3835f71ea22c9e938066f01e69e1c2db3 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 4 Sep 2021 23:23:32 +0800 Subject: ... --- src/osx/graphics/quartz/Convert.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/osx/graphics/quartz') 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 namespace cru::platform::graphics::osx::quartz { +CFStringRef Convert(const String& string) { + return CFStringCreateWithBytes( + nullptr, reinterpret_cast(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(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); -- cgit v1.2.3