Index: src/core/SkPaintOptionsAndroid.cpp |
diff --git a/src/core/SkPaintOptionsAndroid.cpp b/src/core/SkPaintOptionsAndroid.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7bf6fc44cd020ce269c865b10527625522b4a2dd |
--- /dev/null |
+++ b/src/core/SkPaintOptionsAndroid.cpp |
@@ -0,0 +1,42 @@ |
+ |
+/* |
+ * 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. |
+ */ |
+ |
+#ifdef SK_BUILD_FOR_ANDROID |
+ |
+#include "SkPaintOptionsAndroid.h" |
+#include "SkFlattenableBuffers.h" |
+#include "SkTDict.h" |
+#include "SkThread.h" |
+#include <cstring> |
+ |
+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()); |
+} |
+ |
+void SkPaintOptionsAndroid::unflatten(SkFlattenableReadBuffer& buffer) { |
+ fFontVariant = (FontVariant)buffer.readUInt(); |
+ char* tag = buffer.readString(); |
+ fLanguage = SkLanguage(tag); |
+ sk_free(tag); |
+} |
+ |
+#endif |