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#ifndef SkDisplayAdd_DEFINED 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define SkDisplayAdd_DEFINED 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 13986ca61cf7be3ec590f8820e9b7ba042ac2948fereed#include "SkADrawable.h" 148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkMemberInfo.h" 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 16986ca61cf7be3ec590f8820e9b7ba042ac2948fereedclass SkAdd : public SkADrawable { 178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(Add); 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkAdd(); 19d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com 208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com enum Mode { 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com kMode_indirect, 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com kMode_immediate 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com }; 24d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com 2536352bf5e38f45a70ee4f4fc132a38048d38206dmtklein SkDisplayable* deepCopy(SkAnimateMaker* ) override; 2636352bf5e38f45a70ee4f4fc132a38048d38206dmtklein bool draw(SkAnimateMaker& ) override; 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DUMP_ENABLED 2836352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void dump(SkAnimateMaker* ) override; 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 3036352bf5e38f45a70ee4f4fc132a38048d38206dmtklein bool enable(SkAnimateMaker& ) override; 3136352bf5e38f45a70ee4f4fc132a38048d38206dmtklein bool hasEnable() const override; 3236352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void initialize() override; 3336352bf5e38f45a70ee4f4fc132a38048d38206dmtklein bool isDrawable() const override; 348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// struct _A { 368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com Mode mode; 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int32_t offset; 38986ca61cf7be3ec590f8820e9b7ba042ac2948fereed SkADrawable* use; 39986ca61cf7be3ec590f8820e9b7ba042ac2948fereed SkADrawable* where; // if NULL, offset becomes index 408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// } A; 418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate: 42986ca61cf7be3ec590f8820e9b7ba042ac2948fereed typedef SkADrawable INHERITED; 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkClear : public SkDisplayable { 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool enable(SkAnimateMaker& ); 478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkMove : public SkAdd { 508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(Move); 518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate: 528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com typedef SkAdd INHERITED; 538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkRemove : public SkAdd { 568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(Remove); 578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkRemove(); 588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool fDelete; 608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate: 618a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com friend class SkAdd; 628a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com typedef SkAdd INHERITED; 638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 658a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkReplace : public SkAdd { 668a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(Replace); 678a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate: 688a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com typedef SkAdd INHERITED; 698a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 708a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 718a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif // SkDisplayAdd_DEFINED 72