1 2/* 3 * Copyright 2006 The Android Open Source Project 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 10#ifndef SkDisplayMovie_DEFINED 11#define SkDisplayMovie_DEFINED 12 13#include "SkAnimator.h" 14#include "SkADrawable.h" 15#include "SkMemberInfo.h" 16 17struct SkEventState; 18 19class SkDisplayMovie : public SkADrawable { 20 DECLARE_DISPLAY_MEMBER_INFO(Movie); 21 SkDisplayMovie(); 22 virtual ~SkDisplayMovie(); 23 void buildMovie(); 24 SkDisplayable* deepCopy(SkAnimateMaker* ) override; 25 void dirty() override; 26 bool doEvent(const SkEvent& evt) { 27 return fLoaded && fMovie.doEvent(evt); 28 } 29 bool doEvent(SkDisplayEvent::Kind , SkEventState* state ) override; 30 bool draw(SkAnimateMaker& ) override; 31#ifdef SK_DUMP_ENABLED 32 void dump(SkAnimateMaker* ) override; 33 void dumpEvents() override; 34#endif 35 bool enable(SkAnimateMaker& ) override; 36 const SkAnimator* getAnimator() const { return &fMovie; } 37 bool hasEnable() const override; 38 void onEndElement(SkAnimateMaker& ) override; 39protected: 40 SkString src; 41 SkAnimator fMovie; 42 SkBool8 fDecodedSuccessfully; 43 SkBool8 fLoaded; 44 SkBool8 fMovieBuilt; 45 friend class SkAnimateMaker; 46 friend class SkPost; 47private: 48 typedef SkADrawable INHERITED; 49}; 50 51#endif // SkDisplayMovie_DEFINED 52