summaryrefslogtreecommitdiff
path: root/core/SkPaintOptionsAndroid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/SkPaintOptionsAndroid.cpp')
-rw-r--r--core/SkPaintOptionsAndroid.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/core/SkPaintOptionsAndroid.cpp b/core/SkPaintOptionsAndroid.cpp
new file mode 100644
index 00000000..31f489cb
--- /dev/null
+++ b/core/SkPaintOptionsAndroid.cpp
@@ -0,0 +1,44 @@
+
+/*
+ * Copyright 2012 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkPaintOptionsAndroid.h"
+#include "SkFlattenableBuffers.h"
+#include "SkTDict.h"
+#include "SkThread.h"
+#include <cstring>
+
+#ifdef SK_BUILD_FOR_ANDROID
+
+SkLanguage SkLanguage::getParent() const {
+ SkASSERT(!fTag.isEmpty());
+ const char* tag = fTag.c_str();
+
+ // strip off the rightmost "-.*"
+ char* parentTagEnd = strrchr(tag, '-');
+ if (parentTagEnd == NULL) {
+ return SkLanguage();
+ }
+ size_t parentTagLen = parentTagEnd - tag;
+ return SkLanguage(tag, parentTagLen);
+}
+
+void SkPaintOptionsAndroid::flatten(SkFlattenableWriteBuffer& buffer) const {
+ buffer.writeUInt(fFontVariant);
+ buffer.writeString(fLanguage.getTag().c_str());
+ buffer.writeBool(fUseFontFallbacks);
+}
+
+void SkPaintOptionsAndroid::unflatten(SkFlattenableReadBuffer& buffer) {
+ fFontVariant = (FontVariant)buffer.readUInt();
+ SkString tag;
+ buffer.readString(&tag);
+ fLanguage = SkLanguage(tag);
+ fUseFontFallbacks = buffer.readBool();
+}
+
+#endif