OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CC_SURFACES_SURFACE_OBSERVER_H_ | 5 #ifndef CC_SURFACES_SURFACE_OBSERVER_H_ |
6 #define CC_SURFACES_SURFACE_OBSERVER_H_ | 6 #define CC_SURFACES_SURFACE_OBSERVER_H_ |
7 | 7 |
8 namespace cc { | 8 namespace cc { |
9 | 9 |
| 10 struct BeginFrameAck; |
| 11 struct BeginFrameArgs; |
| 12 class SurfaceId; |
10 class SurfaceInfo; | 13 class SurfaceInfo; |
11 | 14 |
12 class SurfaceObserver { | 15 class SurfaceObserver { |
13 public: | 16 public: |
14 // Runs when a CompositorFrame is received for the given SurfaceInfo for the | 17 // Runs when a CompositorFrame is activated for the given SurfaceInfo for the |
15 // first time. | 18 // first time. |
16 virtual void OnSurfaceCreated(const SurfaceInfo& surface_info) = 0; | 19 virtual void OnSurfaceCreated(const SurfaceInfo& surface_info) = 0; |
17 | 20 |
18 // Runs when a Surface is damaged. *changed should be set to true if this | 21 // Runs when a Surface was marked to be destroyed. |
19 // causes a Display to be damaged. | 22 virtual void OnSurfaceDestroyed(const SurfaceId& surface_id) = 0; |
20 virtual void OnSurfaceDamaged(const SurfaceId& surface_id, bool* changed) = 0; | 23 |
| 24 // Runs when a Surface is modified, e.g. when a CompositorFrame is |
| 25 // activated, its producer confirms that no CompositorFrame will be submitted |
| 26 // in response to a BeginFrame, or a CopyOutputRequest is issued. |
| 27 // |
| 28 // |ack.sequence_number| is only valid if called in response to a BeginFrame. |
| 29 // |*changed| should be set to true if this causes a Display to be damaged. |
| 30 virtual void OnSurfaceDamaged(const SurfaceId& surface_id, |
| 31 const BeginFrameAck& ack, |
| 32 bool* changed) = 0; |
21 | 33 |
22 // Called when a surface is garbage-collected. | 34 // Called when a surface is garbage-collected. |
23 virtual void OnSurfaceDiscarded(const SurfaceId& surface_id) = 0; | 35 virtual void OnSurfaceDiscarded(const SurfaceId& surface_id) = 0; |
| 36 |
| 37 // Runs when a Surface's CompositorFrame producer has received a BeginFrame |
| 38 // and, thus, is expected to produce damage soon. |
| 39 virtual void OnSurfaceDamageExpected(const SurfaceId& surface_id, |
| 40 const BeginFrameArgs& args) = 0; |
24 }; | 41 }; |
25 | 42 |
26 } // namespace cc | 43 } // namespace cc |
27 | 44 |
28 #endif // CC_SURFACES_SURFACE_OBSERVER_H_ | 45 #endif // CC_SURFACES_SURFACE_OBSERVER_H_ |
OLD | NEW |