Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: cc/surfaces/surface_observer.h

Issue 2854163003: [cc] Plumb BeginFrameAcks through SurfaceManager to DisplayScheduler. (Closed)
Patch Set: fix clang compile error Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/surfaces/surface_manager.cc ('k') | cc/surfaces/surface_synchronization_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_
OLDNEW
« no previous file with comments | « cc/surfaces/surface_manager.cc ('k') | cc/surfaces/surface_synchronization_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698