diff options
author | crupest <crupest@outlook.com> | 2021-09-04 23:23:32 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-09-04 23:23:32 +0800 |
commit | c504aef3835f71ea22c9e938066f01e69e1c2db3 (patch) | |
tree | 4d456079e08e64923e84ca37b862c82a0b184167 /src/osx/graphics | |
parent | 9e3d8fbd19ac93382a231a5eb8e7f8b389e6f6c2 (diff) | |
download | cru-c504aef3835f71ea22c9e938066f01e69e1c2db3.tar.gz cru-c504aef3835f71ea22c9e938066f01e69e1c2db3.tar.bz2 cru-c504aef3835f71ea22c9e938066f01e69e1c2db3.zip |
...
Diffstat (limited to 'src/osx/graphics')
-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); |