13a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org 23a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org/* 33a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org * Copyright 2012 The Android Open Source Project 43a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org * 53a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be 63a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org * found in the LICENSE file. 73a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org */ 83a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org 93a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org#include "SkPaintOptionsAndroid.h" 103a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org#include "SkFlattenableBuffers.h" 113a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org#include "SkTDict.h" 123a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org#include "SkThread.h" 133a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org#include <cstring> 143a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org 1552896baad049944e070effc9be970137d5cbcc0cdjsollen@google.com#ifdef SK_BUILD_FOR_ANDROID 1652896baad049944e070effc9be970137d5cbcc0cdjsollen@google.com 173a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.orgSkLanguage SkLanguage::getParent() const { 183a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org SkASSERT(!fTag.isEmpty()); 193a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org const char* tag = fTag.c_str(); 203a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org 213a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org // strip off the rightmost "-.*" 223a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org char* parentTagEnd = strrchr(tag, '-'); 233a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org if (parentTagEnd == NULL) { 243a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org return SkLanguage(); 253a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org } 263a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org size_t parentTagLen = parentTagEnd - tag; 273a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org return SkLanguage(tag, parentTagLen); 283a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org} 293a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org 303a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.orgvoid SkPaintOptionsAndroid::flatten(SkFlattenableWriteBuffer& buffer) const { 313a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org buffer.writeUInt(fFontVariant); 323a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org buffer.writeString(fLanguage.getTag().c_str()); 3386f56d237e5e5ea16fa0e3ed0e8e5ddf8f7fbbccdjsollen@google.com buffer.writeBool(fUseFontFallbacks); 343a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org} 353a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org 363a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.orgvoid SkPaintOptionsAndroid::unflatten(SkFlattenableReadBuffer& buffer) { 373a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org fFontVariant = (FontVariant)buffer.readUInt(); 389d61fbd5096e46fecc6c582457097a3269b74405djsollen@google.com SkString tag; 399d61fbd5096e46fecc6c582457097a3269b74405djsollen@google.com buffer.readString(&tag); 403a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org fLanguage = SkLanguage(tag); 4186f56d237e5e5ea16fa0e3ed0e8e5ddf8f7fbbccdjsollen@google.com fUseFontFallbacks = buffer.readBool(); 423a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org} 433a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org 443a2896926de7270052847f19fa69135c08e1a36fcommit-bot@chromium.org#endif 45