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

Side by Side Diff: mojo/services/gfx/composition/interfaces/scenes.mojom

Issue 1997513002: Mozart: Generalize frame scheduling. (Closed) Base URL: git@github.com:domokit/mojo.git@moz-jank2
Patch Set: add comments Created 4 years, 7 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 [DartPackage="mojo_services"] 5 [DartPackage="mojo_services"]
6 module mojo.gfx.composition; 6 module mojo.gfx.composition;
7 7
8 import "mojo/services/gfx/composition/interfaces/nodes.mojom"; 8 import "mojo/services/gfx/composition/interfaces/nodes.mojom";
9 import "mojo/services/gfx/composition/interfaces/resources.mojom"; 9 import "mojo/services/gfx/composition/interfaces/resources.mojom";
10 import "mojo/services/gfx/composition/interfaces/scene_token.mojom"; 10 import "mojo/services/gfx/composition/interfaces/scene_token.mojom";
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 // B's old content. 110 // B's old content.
111 // 111 //
112 // - Speculate: The compositor could allow X to provide alternate descriptions 112 // - Speculate: The compositor could allow X to provide alternate descriptions
113 // of the scene in the case where A or B are not keeping up so that it 113 // of the scene in the case where A or B are not keeping up so that it
114 // can more finely control the recovery policy. 114 // can more finely control the recovery policy.
115 // 115 //
116 // To maximize concurrency, we adopt the latter approach. 116 // To maximize concurrency, we adopt the latter approach.
117 // 117 //
118 // SCHEDULING 118 // SCHEDULING
119 // 119 //
120 // The scene provides support for scheduling update via its associated 120 // The scene provides support for scheduling frames via its associated
121 // |SceneScheduler| interface. Use the scheduler to obtain frame timing 121 // |FrameScheduler| interface. Use the scheduler to obtain frame timing
122 // information and to throttle updates to match the display refresh rate 122 // information and to throttle updates to match the display refresh rate
123 // (ie. with vsync). 123 // (ie. with vsync).
124 interface Scene { 124 interface Scene {
125 // Sets the listener for receiving events from the scene. 125 // Sets the listener for receiving events from the scene.
126 // 126 //
127 // If |listener| is null, then the previously set listener is removed. 127 // If |listener| is null, then the previously set listener is removed.
128 SetListener(SceneListener? listener); 128 SetListener(SceneListener? listener);
129 129
130 // Applies a batch of incremental updates to the contents of the scene. 130 // Applies a batch of incremental updates to the contents of the scene.
131 // 131 //
(...skipping 16 matching lines...) Expand all
148 // The |metadata| describes how the published scene should be presented. 148 // The |metadata| describes how the published scene should be presented.
149 // If null, this method behaves as if a |SceneMetadata| object initialized 149 // If null, this method behaves as if a |SceneMetadata| object initialized
150 // with default values had been supplied. 150 // with default values had been supplied.
151 // 151 //
152 // Publishing a scene graph applies all pending updates. It is an error 152 // Publishing a scene graph applies all pending updates. It is an error
153 // to publish updates which cause the scene state to become inconsistent, 153 // to publish updates which cause the scene state to become inconsistent,
154 // such as by having nodes which refer to non-existent resources or 154 // such as by having nodes which refer to non-existent resources or
155 // introducing cycles in the scene's nodes; the connection will be closed. 155 // introducing cycles in the scene's nodes; the connection will be closed.
156 Publish(SceneMetadata? metadata); 156 Publish(SceneMetadata? metadata);
157 157
158 // Gets a scheduler for scheduling upcoming scene operations. 158 // Gets a scheduler to receive frame timing information for the scene.
159 GetScheduler(SceneScheduler& scheduler); 159 GetScheduler(FrameScheduler& scheduler);
160 }; 160 };
161 161
162 // An interface applications may implement to receive events from a scene. 162 // An interface applications may implement to receive events from a scene.
163 interface SceneListener { 163 interface SceneListener {
164 // Called when a resource has become unavailable. 164 // Called when a resource has become unavailable.
165 // 165 //
166 // Any nodes which are using the resource will be considered blocked 166 // Any nodes which are using the resource will be considered blocked
167 // until the resource is replaced or the nodes using it are removed. 167 // until the resource is replaced or the nodes using it are removed.
168 OnResourceUnavailable(uint32 resource_id) => (); 168 OnResourceUnavailable(uint32 resource_id) => ();
169 }; 169 };
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 // scene are to be shown on the display output assuming everything is 215 // scene are to be shown on the display output assuming everything is
216 // fully rendered and submitted by the appropriate deadline. 216 // fully rendered and submitted by the appropriate deadline.
217 // 217 //
218 // Expressed in microseconds in the |MojoTimeTicks| timebase. 218 // Expressed in microseconds in the |MojoTimeTicks| timebase.
219 // 219 //
220 // A value of 0 means "as soon as possible". 220 // A value of 0 means "as soon as possible".
221 // 221 //
222 // See also: |FrameInfo.presentation_time|. 222 // See also: |FrameInfo.presentation_time|.
223 int64 presentation_time = 0; 223 int64 presentation_time = 0;
224 }; 224 };
OLDNEW
« no previous file with comments | « mojo/services/gfx/composition/interfaces/renderers.mojom ('k') | mojo/services/gfx/composition/interfaces/scheduling.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698