TreeInfo.h revision 52244fff29042926e21fa897ef5ab11148e35299
1e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck/*
2e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * Copyright (C) 2014 The Android Open Source Project
3e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck *
4e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * Licensed under the Apache License, Version 2.0 (the "License");
5e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * you may not use this file except in compliance with the License.
6e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * You may obtain a copy of the License at
7e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck *
8e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck *      http://www.apache.org/licenses/LICENSE-2.0
9e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck *
10e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * Unless required by applicable law or agreed to in writing, software
11e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * distributed under the License is distributed on an "AS IS" BASIS,
12e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * See the License for the specific language governing permissions and
14e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck * limitations under the License.
15e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck */
16e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck#ifndef TREEINFO_H
17e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck#define TREEINFO_H
18e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
19e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck#include <utils/Timers.h>
20e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
21e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Recknamespace android {
22e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Recknamespace uirenderer {
23e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
2452244fff29042926e21fa897ef5ab11148e35299John Reckclass BaseAnimator;
2552244fff29042926e21fa897ef5ab11148e35299John Reckclass AnimationListener;
26e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
2752244fff29042926e21fa897ef5ab11148e35299John Reckclass AnimationHook {
28e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reckpublic:
2952244fff29042926e21fa897ef5ab11148e35299John Reck    virtual void callOnFinished(BaseAnimator* animator, AnimationListener* listener) = 0;
30e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reckprotected:
3152244fff29042926e21fa897ef5ab11148e35299John Reck    ~AnimationHook() {}
32e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck};
33e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
34e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reckstruct TreeInfo {
35e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    // The defaults here should be safe for everyone but DrawFrameTask to use as-is.
36e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    TreeInfo()
37e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck            : hasFunctors(false)
38e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck            , prepareTextures(false)
39e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck            , performStagingPush(true)
40e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck            , frameTimeMs(0)
41e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck            , evaluateAnimations(false)
42e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck            , hasAnimations(false)
4352244fff29042926e21fa897ef5ab11148e35299John Reck            , animationHook(0)
44e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    {}
45e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
46e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    bool hasFunctors;
47e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    bool prepareTextures;
48e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    bool performStagingPush;
49e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
50e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    // Animations
51e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    nsecs_t frameTimeMs;
52e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    bool evaluateAnimations;
53e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    // This is only updated if evaluateAnimations is true
54e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    bool hasAnimations;
5552244fff29042926e21fa897ef5ab11148e35299John Reck    AnimationHook* animationHook;
56e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
57e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck    // TODO: Damage calculations
58e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck};
59e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
60e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck} /* namespace uirenderer */
61e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck} /* namespace android */
62e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck
63e45b1fd03b524d2b57cc6c222d89076a31a08beaJohn Reck#endif /* TREEINFO_H */
64