1c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org 2c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org/* 3c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org * Copyright 2012 The Android Open Source Project 4c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org * 5c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be 6c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org * found in the LICENSE file. 7c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org */ 8c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org 9c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org#include "SkPaintOptionsAndroid.h" 108b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org#include "SkReadBuffer.h" 118b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org#include "SkWriteBuffer.h" 12c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org#include "SkTDict.h" 13c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org#include "SkThread.h" 14c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org#include <cstring> 15c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org 16c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.orgSkLanguage SkLanguage::getParent() const { 17c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org SkASSERT(!fTag.isEmpty()); 18c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org const char* tag = fTag.c_str(); 19c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org 20c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org // strip off the rightmost "-.*" 2197f8167622473edf2e4262fa619883e616574c19commit-bot@chromium.org const char* parentTagEnd = strrchr(tag, '-'); 22c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org if (parentTagEnd == NULL) { 23c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org return SkLanguage(); 24c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org } 25c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org size_t parentTagLen = parentTagEnd - tag; 26c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org return SkLanguage(tag, parentTagLen); 27c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org} 28c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org 298b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.orgvoid SkPaintOptionsAndroid::flatten(SkWriteBuffer& buffer) const { 30c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org buffer.writeUInt(fFontVariant); 31c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org buffer.writeString(fLanguage.getTag().c_str()); 329401deeb1046ff763d38d5354bb54648b3bab234djsollen@google.com buffer.writeBool(fUseFontFallbacks); 33c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org} 34c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org 358b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.orgvoid SkPaintOptionsAndroid::unflatten(SkReadBuffer& buffer) { 36c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org fFontVariant = (FontVariant)buffer.readUInt(); 377768751b8bec9e50fcbdad67b82e1962e71c3eb9djsollen@google.com SkString tag; 387768751b8bec9e50fcbdad67b82e1962e71c3eb9djsollen@google.com buffer.readString(&tag); 39c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org fLanguage = SkLanguage(tag); 409401deeb1046ff763d38d5354bb54648b3bab234djsollen@google.com fUseFontFallbacks = buffer.readBool(); 41c7a20e40938ae031368e3a9e4df33ce90a765abacommit-bot@chromium.org} 42