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