1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CC_TREES_LAYER_TREE_HOST_SINGLE_THREAD_CLIENT_H_ 6 #define CC_TREES_LAYER_TREE_HOST_SINGLE_THREAD_CLIENT_H_ 7 8 namespace cc { 9 10 class LayerTreeHostSingleThreadClient { 11 public: 12 // Request that the client schedule a composite. 13 virtual void ScheduleComposite() = 0; 14 // Request that the client schedule a composite now, and calculate appropriate 15 // delay for potential future frame. 16 virtual void ScheduleAnimation() = 0; 17 18 // Called whenever the compositor posts a SwapBuffers (either full or 19 // partial). After DidPostSwapBuffers(), exactly one of 20 // DidCompleteSwapBuffers() or DidAbortSwapBuffers() will be called, thus 21 // these functions can be used to keep track of pending swap buffers calls for 22 // rate limiting. 23 virtual void DidPostSwapBuffers() = 0; 24 virtual void DidCompleteSwapBuffers() = 0; 25 virtual void DidAbortSwapBuffers() = 0; 26 27 protected: 28 virtual ~LayerTreeHostSingleThreadClient() {} 29 }; 30 31 } // namespace cc 32 33 #endif // CC_TREES_LAYER_TREE_HOST_SINGLE_THREAD_CLIENT_H_ 34