michael@0: michael@0: /* michael@0: * Copyright 2012 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: #include "SkPaintOptionsAndroid.h" michael@0: #include "SkReadBuffer.h" michael@0: #include "SkWriteBuffer.h" michael@0: #include "SkTDict.h" michael@0: #include "SkThread.h" michael@0: #include michael@0: michael@0: SkLanguage SkLanguage::getParent() const { michael@0: SkASSERT(!fTag.isEmpty()); michael@0: const char* tag = fTag.c_str(); michael@0: michael@0: // strip off the rightmost "-.*" michael@0: const char* parentTagEnd = strrchr(tag, '-'); michael@0: if (parentTagEnd == NULL) { michael@0: return SkLanguage(); michael@0: } michael@0: size_t parentTagLen = parentTagEnd - tag; michael@0: return SkLanguage(tag, parentTagLen); michael@0: } michael@0: michael@0: void SkPaintOptionsAndroid::flatten(SkWriteBuffer& buffer) const { michael@0: buffer.writeUInt(fFontVariant); michael@0: buffer.writeString(fLanguage.getTag().c_str()); michael@0: buffer.writeBool(fUseFontFallbacks); michael@0: } michael@0: michael@0: void SkPaintOptionsAndroid::unflatten(SkReadBuffer& buffer) { michael@0: fFontVariant = (FontVariant)buffer.readUInt(); michael@0: SkString tag; michael@0: buffer.readString(&tag); michael@0: fLanguage = SkLanguage(tag); michael@0: fUseFontFallbacks = buffer.readBool(); michael@0: }