diff options
Diffstat (limited to 'src/osx/graphics/quartz/Convert.cpp')
-rw-r--r-- | src/osx/graphics/quartz/Convert.cpp | 21 |
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); |