SkPostParts.cpp revision d6176b0dcacb124539e0cfd051e6d93a9782f020
10d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
20d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*
30d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Copyright 2006 The Android Open Source Project
40d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar *
50d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Use of this source code is governed by a BSD-style license that can be
60d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * found in the LICENSE file.
70d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */
80d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
90d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "SkPostParts.h"
110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "SkDisplayPost.h"
120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#if SK_USE_CONDENSED_INFO == 0
140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarconst SkMemberInfo SkDataInput::fInfo[] = {
160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SK_MEMBER_INHERITED
170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar};
180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#endif
200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish MahendrakarDEFINE_GET_MEMBER(SkDataInput);
220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish MahendrakarSkDataInput::SkDataInput() : fParent(NULL) {}
240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarbool SkDataInput::add() {
260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    SkASSERT(name.size() > 0);
270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    const char* dataName = name.c_str();
280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    if (fInt != (int) SK_NaN32)
290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        fParent->fEvent.setS32(dataName, fInt);
300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    else if (SkScalarIsNaN(fFloat) == false)
310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        fParent->fEvent.setScalar(dataName, fFloat);
320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    else if (string.size() > 0)
330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        fParent->fEvent.setString(dataName, string);
340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar//  else
350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar//      SkASSERT(0);
360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return false;
370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarvoid SkDataInput::dirty() {
400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    fParent->dirty();
410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish MahendrakarSkDisplayable* SkDataInput::getParent() const {
440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return fParent;
450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarbool SkDataInput::setParent(SkDisplayable* displayable) {
480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    if (displayable->isPost() == false)
490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar        return true;
500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    fParent = (SkPost*) displayable;
510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    return false;
520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakarvoid SkDataInput::onEndElement(SkAnimateMaker&) {
550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar    add();
560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar}
570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar
580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar