aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics/Utf8.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-10-14 22:52:40 +0800
committerchai <chaifix@163.com>2018-10-14 22:52:40 +0800
commitb1bbc998960fff2169dc5a992c47d08723472f9b (patch)
tree220f3bd5de2266e248884e11161dd715d7632ef2 /src/libjin/Graphics/Utf8.cpp
parentfbf989f9950a38566e0fb0fc5b6a7aebc9f0fb45 (diff)
*直接渲染字符串
Diffstat (limited to 'src/libjin/Graphics/Utf8.cpp')
-rw-r--r--src/libjin/Graphics/Utf8.cpp68
1 files changed, 0 insertions, 68 deletions
diff --git a/src/libjin/Graphics/Utf8.cpp b/src/libjin/Graphics/Utf8.cpp
deleted file mode 100644
index 1a79d43..0000000
--- a/src/libjin/Graphics/Utf8.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include "Utf8.h"
-
-namespace jin
-{
-namespace graphics
-{
-
- /* utf8 byte string to unicode codepoint */
- static const char *utf8toCodepoint(const char *p, unsigned *res) {
- unsigned x, mask, shift;
- switch (*p & 0xf0) {
- case 0xf0: mask = 0x07; shift = 18; break;
- case 0xe0: mask = 0x0f; shift = 12; break;
- case 0xc0:
- case 0xd0: mask = 0x1f; shift = 6; break;
- default:
- *res = *p;
- return p + 1;
- }
- x = (*p & mask) << shift;
- do {
- if (*(++p) == '\0') {
- *res = x;
- return p;
- }
- shift -= 6;
- x |= (*p & 0x3f) << shift;
- } while (shift);
- *res = x;
- return p + 1;
- }
-
- Utf8::Utf8(const char* raw, unsigned int length)
- {
- _length = length;
- _raw = (char*)calloc(1, length);
- memcpy(_raw, raw, length);
- }
-
- Utf8::Iterator Utf8::getIterator()
- {
- return Iterator(*this);
- }
-
- Utf8::~Utf8()
- {
- free(_raw);
- _raw = nullptr;
- _length = 0;
- }
-
- Utf8::Iterator::Iterator(const Utf8& utf8)
- : _utf8(utf8)
- {
- _p = utf8._raw;
- }
-
- Codepoint Utf8::Iterator::get()
- {
- Codepoint c;
- _p = utf8toCodepoint(_p, &c);
- return c;
- }
-
-}
-} \ No newline at end of file