1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/*
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project
4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com *
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file.
7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */
8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkPostParts.h"
118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDisplayPost.h"
128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0
148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
158d0b5770f8fcfdeb8ad9808e58c49116f14b6190reed@google.comconst SkMemberInfo SkDataInput::fInfo[] = {
168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SK_MEMBER_INHERITED
178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com};
188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif
208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
218d0b5770f8fcfdeb8ad9808e58c49116f14b6190reed@google.comDEFINE_GET_MEMBER(SkDataInput);
228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
238d0b5770f8fcfdeb8ad9808e58c49116f14b6190reed@google.comSkDataInput::SkDataInput() : fParent(NULL) {}
248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
258d0b5770f8fcfdeb8ad9808e58c49116f14b6190reed@google.combool SkDataInput::add() {
268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkASSERT(name.size() > 0);
278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    const char* dataName = name.c_str();
288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    if (fInt != (int) SK_NaN32)
298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com        fParent->fEvent.setS32(dataName, fInt);
308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    else if (SkScalarIsNaN(fFloat) == false)
318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com        fParent->fEvent.setScalar(dataName, fFloat);
32d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com    else if (string.size() > 0)
338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com        fParent->fEvent.setString(dataName, string);
348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//  else
358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//      SkASSERT(0);
368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    return false;
378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}
388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
398d0b5770f8fcfdeb8ad9808e58c49116f14b6190reed@google.comvoid SkDataInput::dirty() {
408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    fParent->dirty();
418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}
428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
438d0b5770f8fcfdeb8ad9808e58c49116f14b6190reed@google.comSkDisplayable* SkDataInput::getParent() const {
448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    return fParent;
458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}
468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
478d0b5770f8fcfdeb8ad9808e58c49116f14b6190reed@google.combool SkDataInput::setParent(SkDisplayable* displayable) {
488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    if (displayable->isPost() == false)
498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com        return true;
508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    fParent = (SkPost*) displayable;
518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    return false;
528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}
538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
548d0b5770f8fcfdeb8ad9808e58c49116f14b6190reed@google.comvoid SkDataInput::onEndElement(SkAnimateMaker&) {
558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    add();
568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}
57