Mir

Merge lp:~robertcarr/mir/simplify-depth-assignment into lp:~mir-team/mir/trunk

Proposed by Robert Carr
Status: Merged
Approved by: Robert Ancell
Approved revision: no longer in the source branch.
Merged at revision: 866
Proposed branch: lp:~robertcarr/mir/simplify-depth-assignment
Merge into: lp:~mir-team/mir/trunk
Diff against target: 414 lines (+68/-70)
10 files modified
include/server/mir/shell/surface_creation_parameters.h (+4/-0)
include/server/mir/surfaces/surface_stack.h (+1/-1)
include/server/mir/surfaces/surface_stack_model.h (+1/-1)
src/server/shell/surface_creation_parameters.cpp (+16/-4)
src/server/surfaces/surface_controller.cpp (+1/-2)
src/server/surfaces/surface_stack.cpp (+2/-2)
tests/acceptance-tests/test_client_input.cpp (+21/-36)
tests/unit-tests/surfaces/test_surface.cpp (+2/-2)
tests/unit-tests/surfaces/test_surface_controller.cpp (+2/-2)
tests/unit-tests/surfaces/test_surface_stack.cpp (+18/-20)
To merge this branch: bzr merge lp:~robertcarr/mir/simplify-depth-assignment
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Gerry Boland (community) Approve
Alexandros Frantzis (community) Approve
Kevin DuBois (community) Abstain
Alan Griffiths Abstain
Robert Ancell Approve
Review via email: mp+174872@code.launchpad.net

Commit message

Move the DepthId in surface creation to msh::SurfaceCreationParameters.

Description of the change

Simplify depth assignment so the shell can easily pass as part of the SurfaceCreationParameters rather than overriding one of our 'factory/controller' classes (SurfaceController).

Also a first pass at making things easier for the system compositor and the greeter stacking, but still need to find a way to get the session association in sensibly

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Robert Ancell (robert-ancell) wrote :

Shows a merge conflict

review: Needs Fixing
Revision history for this message
Robert Ancell (robert-ancell) wrote :

Other than that, +1

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Robert Ancell (robert-ancell) :
review: Approve
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

80 bool msh::operator==(
81 const SurfaceCreationParameters& lhs,
82 const msh::SurfaceCreationParameters& rhs)

Don't we need to update operator==()? Is operator==() used at all?

review: Needs Fixing
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

I'm still deeply suspicious that DepthId is the wrong abstraction - so this has the feel of "shuffling deckchairs on a sinking ship".

operator==() is wrong before and after this MP

review: Abstain
Revision history for this message
Robert Carr (robertcarr) wrote :

Updated operator== (see changes to test_surface.cpp: (SurfaceCreationParameters, equality) as well I found the existing test misleading). DepthId is clearly on the way out eventually but at least it's less annoying here than in create_surface parameters.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

> I'm still deeply suspicious that DepthId is the wrong abstraction - so this
> has the feel of "shuffling deckchairs on a sinking ship".

+1

I'd rather just present a z-ordering and have the shell have better tracking of what surface is where and how its stacked. I *somewhat* detect that the shell wants to group surfaces and order them more arbitrarily, and are trying to fit their square peg into SurfaceStack's round abstraction of a scenegraph

That being said, I suppose that if its already in the code base, its better that there's a way to use it.

My question is... are we planning on keeping DepthID forever, or do we think that as the shell evolves we will eliminate this? I sort of get the feeling that the stack would be a better abstraction if it was closer to a z-ordering (simpler).

review: Abstain
Revision history for this message
Kevin DuBois (kdub) wrote :

also though, don't want to derail this specific MP with esoteric planning about the surfacestack, I think the idea behind this specific MP is an improvement in the code :)

Revision history for this message
Gerry Boland (gerboland) wrote :

> My question is... are we planning on keeping DepthID forever, or do we think
> that as the shell evolves we will eliminate this? I sort of get the feeling
> that the stack would be a better abstraction if it was closer to a z-ordering
> (simpler).

Speaking from the shell perspective, I see situations in future when just DepthID and limited z-order manipulation via focus changes will be too limiting. I'd vote for z-order access.

Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

Looks good.

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Gerry Boland (gerboland) wrote :

No objection here

review: Approve
Revision history for this message
Robert Carr (robertcarr) wrote :

This should land after https://code.launchpad.net/~robertcarr/mir/fix-depth-tests/+merge/175410 or this diff becomes very confusing.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Robert Carr (robertcarr) wrote :

Merged trunk.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'include/server/mir/shell/surface_creation_parameters.h'
2--- include/server/mir/shell/surface_creation_parameters.h 2013-05-21 17:16:43 +0000
3+++ include/server/mir/shell/surface_creation_parameters.h 2013-07-18 22:32:28 +0000
4@@ -23,6 +23,7 @@
5 #include "mir/geometry/point.h"
6 #include "mir/geometry/size.h"
7 #include "mir/compositor/buffer_properties.h"
8+#include "mir/surfaces/depth_id.h"
9
10 #include <memory>
11 #include <string>
12@@ -47,12 +48,15 @@
13 SurfaceCreationParameters& of_buffer_usage(compositor::BufferUsage new_buffer_usage);
14
15 SurfaceCreationParameters& of_pixel_format(geometry::PixelFormat new_pixel_format);
16+
17+ SurfaceCreationParameters& of_depth(surfaces::DepthId const& new_depth);
18
19 std::string name;
20 geometry::Size size;
21 geometry::Point top_left;
22 compositor::BufferUsage buffer_usage;
23 geometry::PixelFormat pixel_format;
24+ surfaces::DepthId depth;
25 };
26
27 bool operator==(const SurfaceCreationParameters& lhs, const SurfaceCreationParameters& rhs);
28
29=== modified file 'include/server/mir/surfaces/surface_stack.h'
30--- include/server/mir/surfaces/surface_stack.h 2013-07-17 09:09:30 +0000
31+++ include/server/mir/surfaces/surface_stack.h 2013-07-18 22:32:28 +0000
32@@ -73,7 +73,7 @@
33 void for_each(std::function<void(std::shared_ptr<input::InputChannel> const&)> const& callback);
34
35 // From SurfaceStackModel
36- virtual std::weak_ptr<Surface> create_surface(const shell::SurfaceCreationParameters& params, DepthId depth);
37+ virtual std::weak_ptr<Surface> create_surface(const shell::SurfaceCreationParameters& params);
38
39 virtual void destroy_surface(std::weak_ptr<Surface> const& surface);
40
41
42=== modified file 'include/server/mir/surfaces/surface_stack_model.h'
43--- include/server/mir/surfaces/surface_stack_model.h 2013-06-25 20:28:17 +0000
44+++ include/server/mir/surfaces/surface_stack_model.h 2013-07-18 22:32:28 +0000
45@@ -40,7 +40,7 @@
46 public:
47 virtual ~SurfaceStackModel() {}
48
49- virtual std::weak_ptr<Surface> create_surface(shell::SurfaceCreationParameters const& params, DepthId depth) = 0;
50+ virtual std::weak_ptr<Surface> create_surface(shell::SurfaceCreationParameters const& params) = 0;
51 virtual void destroy_surface(std::weak_ptr<Surface> const& surface) = 0;
52
53 virtual void raise(std::weak_ptr<Surface> const& surface) = 0;
54
55=== modified file 'src/server/shell/surface_creation_parameters.cpp'
56--- src/server/shell/surface_creation_parameters.cpp 2013-07-11 16:54:41 +0000
57+++ src/server/shell/surface_creation_parameters.cpp 2013-07-18 22:32:28 +0000
58@@ -24,7 +24,8 @@
59
60 msh::SurfaceCreationParameters::SurfaceCreationParameters()
61 : name(), size(), top_left(), buffer_usage(mc::BufferUsage::undefined),
62- pixel_format(geom::PixelFormat::invalid)
63+ pixel_format(geom::PixelFormat::invalid),
64+ depth{0}
65 {
66 }
67
68@@ -73,13 +74,24 @@
69 return *this;
70 }
71
72+msh::SurfaceCreationParameters& msh::SurfaceCreationParameters::of_depth(
73+ surfaces::DepthId const& new_depth)
74+{
75+ depth = new_depth;
76+
77+ return *this;
78+}
79+
80 bool msh::operator==(
81 const SurfaceCreationParameters& lhs,
82 const msh::SurfaceCreationParameters& rhs)
83 {
84- return lhs.size == rhs.size &&
85- lhs.buffer_usage == rhs.buffer_usage &&
86- lhs.pixel_format == rhs.pixel_format;
87+ return lhs.name == rhs.name &&
88+ lhs.size == rhs.size &&
89+ lhs.top_left == rhs.top_left &&
90+ lhs.buffer_usage == rhs.buffer_usage &&
91+ lhs.pixel_format == rhs.pixel_format &&
92+ lhs.depth == rhs.depth;
93 }
94
95 bool msh::operator!=(
96
97=== modified file 'src/server/surfaces/surface_controller.cpp'
98--- src/server/surfaces/surface_controller.cpp 2013-06-25 20:28:17 +0000
99+++ src/server/surfaces/surface_controller.cpp 2013-07-18 22:32:28 +0000
100@@ -28,8 +28,7 @@
101
102 std::weak_ptr<ms::Surface> ms::SurfaceController::create_surface(shell::SurfaceCreationParameters const& params)
103 {
104- static ms::DepthId const default_surface_depth{0};
105- return surface_stack->create_surface(params, default_surface_depth);
106+ return surface_stack->create_surface(params);
107 }
108
109 void ms::SurfaceController::destroy_surface(std::weak_ptr<Surface> const& surface)
110
111=== modified file 'src/server/surfaces/surface_stack.cpp'
112--- src/server/surfaces/surface_stack.cpp 2013-07-17 09:09:30 +0000
113+++ src/server/surfaces/surface_stack.cpp 2013-07-18 22:32:28 +0000
114@@ -73,13 +73,13 @@
115 notify_change = f;
116 }
117
118-std::weak_ptr<ms::Surface> ms::SurfaceStack::create_surface(shell::SurfaceCreationParameters const& params, ms::DepthId depth)
119+std::weak_ptr<ms::Surface> ms::SurfaceStack::create_surface(shell::SurfaceCreationParameters const& params)
120 {
121 auto change_cb = [this]() { emit_change_notification(); };
122 auto surface = surface_factory->create_surface(params, change_cb);
123 {
124 std::lock_guard<std::mutex> lg(guard);
125- layers_by_depth[depth].push_back(surface);
126+ layers_by_depth[params.depth].push_back(surface);
127 }
128
129 input_registrar->input_channel_opened(surface->input_channel(), surface->input_surface());
130
131=== modified file 'tests/acceptance-tests/test_client_input.cpp'
132--- tests/acceptance-tests/test_client_input.cpp 2013-07-12 09:47:40 +0000
133+++ tests/acceptance-tests/test_client_input.cpp 2013-07-18 22:32:28 +0000
134@@ -436,26 +436,37 @@
135
136 namespace
137 {
138-typedef std::map<std::string, geom::Rectangle> GeometryList;
139+typedef std::map<std::string, geom::Rectangle> GeometryMap;
140+typedef std::map<std::string, ms::DepthId> DepthMap;
141
142 struct StaticPlacementStrategy : public msh::PlacementStrategy
143 {
144- StaticPlacementStrategy(GeometryList const& positions)
145- : surface_geometry_by_name(positions)
146+ StaticPlacementStrategy(GeometryMap const& positions,
147+ DepthMap const& depths)
148+ : surface_geometry_by_name(positions),
149+ surface_depths_by_name(depths)
150+ {
151+ }
152+
153+ StaticPlacementStrategy(GeometryMap const& positions)
154+ : StaticPlacementStrategy(positions, DepthMap())
155 {
156 }
157
158 msh::SurfaceCreationParameters place(msh::SurfaceCreationParameters const& request_parameters)
159 {
160 auto placed = request_parameters;
161- auto geometry = surface_geometry_by_name[request_parameters.name];
162+ auto const& name = request_parameters.name;
163+ auto geometry = surface_geometry_by_name[name];
164
165 placed.top_left = geometry.top_left;
166 placed.size = geometry.size;
167+ placed.depth = surface_depths_by_name[name];
168
169 return placed;
170 }
171- GeometryList surface_geometry_by_name;
172+ GeometryMap surface_geometry_by_name;
173+ DepthMap surface_depths_by_name;
174 };
175
176 }
177@@ -475,7 +486,7 @@
178 {
179 std::shared_ptr<msh::PlacementStrategy> the_shell_placement_strategy() override
180 {
181- static GeometryList positions;
182+ static GeometryMap positions;
183 positions[test_client_1] = geom::Rectangle{geom::Point{0, 0},
184 geom::Size{client_width, client_height}};
185 positions[test_client_2] = geom::Rectangle{geom::Point{screen_width/2, screen_height/2},
186@@ -585,7 +596,7 @@
187 {
188 std::shared_ptr<msh::PlacementStrategy> the_shell_placement_strategy() override
189 {
190- static GeometryList positions;
191+ static GeometryMap positions;
192 positions[test_client_name] = screen_geometry;
193
194 return std::make_shared<StaticPlacementStrategy>(positions);
195@@ -649,27 +660,6 @@
196 launch_client_process(client_config);
197 }
198
199-namespace
200-{
201-typedef std::map<std::string, ms::DepthId> DepthList;
202-
203-struct StackingSurfaceController : public ms::SurfaceController
204-{
205- StackingSurfaceController(std::shared_ptr<ms::SurfaceStackModel> const& surface_stack_model, DepthList const& depths)
206- : SurfaceController(surface_stack_model),
207- surface_depths_by_name(depths)
208- {
209- }
210-
211- std::weak_ptr<ms::Surface> create_surface(msh::SurfaceCreationParameters const& params) override
212- {
213- return surface_stack->create_surface(params, surface_depths_by_name[params.name]);
214- }
215-
216- DepthList surface_depths_by_name;
217-};
218-}
219-
220 TEST_F(TestClientInput, surfaces_obscure_motion_events_by_stacking)
221 {
222 using namespace ::testing;
223@@ -687,23 +677,18 @@
224 {
225 std::shared_ptr<msh::PlacementStrategy> the_shell_placement_strategy() override
226 {
227- static GeometryList positions;
228+ static GeometryMap positions;
229 positions[test_client_name_1] = screen_geometry;
230
231 auto smaller_geometry = screen_geometry;
232 smaller_geometry.size.width = geom::Width{screen_width/2};
233 positions[test_client_name_2] = smaller_geometry;
234
235- return std::make_shared<StaticPlacementStrategy>(positions);
236- }
237-
238- std::shared_ptr<msh::SurfaceBuilder> the_surface_builder() override
239- {
240- static DepthList depths;
241+ static DepthMap depths;
242 depths[test_client_name_1] = ms::DepthId{0};
243 depths[test_client_name_2] = ms::DepthId{1};
244
245- return std::make_shared<StackingSurfaceController>(the_surface_stack_model(), depths);
246+ return std::make_shared<StaticPlacementStrategy>(positions, depths);
247 }
248
249 void inject_input() override
250
251=== modified file 'tests/unit-tests/surfaces/test_surface.cpp'
252--- tests/unit-tests/surfaces/test_surface.cpp 2013-07-16 15:37:58 +0000
253+++ tests/unit-tests/surfaces/test_surface.cpp 2013-07-18 22:32:28 +0000
254@@ -92,12 +92,12 @@
255 mc::BufferUsage const usage{mc::BufferUsage::hardware};
256 geom::PixelFormat const format{geom::PixelFormat::abgr_8888};
257
258- auto params0 = msh::a_surface().of_name("surface0")
259+ auto params0 = msh::a_surface().of_name("surface")
260 .of_size(size)
261 .of_buffer_usage(usage)
262 .of_pixel_format(format);
263
264- auto params1 = msh::a_surface().of_name("surface1")
265+ auto params1 = msh::a_surface().of_name("surface")
266 .of_size(size)
267 .of_buffer_usage(usage)
268 .of_pixel_format(format);
269
270=== modified file 'tests/unit-tests/surfaces/test_surface_controller.cpp'
271--- tests/unit-tests/surfaces/test_surface_controller.cpp 2013-06-25 20:28:17 +0000
272+++ tests/unit-tests/surfaces/test_surface_controller.cpp 2013-07-18 22:32:28 +0000
273@@ -33,7 +33,7 @@
274 {
275 struct MockSurfaceStackModel : public ms::SurfaceStackModel
276 {
277- MOCK_METHOD2(create_surface, std::weak_ptr<ms::Surface>(msh::SurfaceCreationParameters const&, ms::DepthId depth));
278+ MOCK_METHOD1(create_surface, std::weak_ptr<ms::Surface>(msh::SurfaceCreationParameters const&));
279 MOCK_METHOD1(destroy_surface, void(std::weak_ptr<ms::Surface> const&));
280 MOCK_METHOD1(raise, void(std::weak_ptr<ms::Surface> const&));
281 };
282@@ -49,7 +49,7 @@
283 ms::SurfaceController controller(mt::fake_shared(model));
284
285 InSequence seq;
286- EXPECT_CALL(model, create_surface(_, _)).Times(1).WillOnce(Return(null_surface));
287+ EXPECT_CALL(model, create_surface(_)).Times(1).WillOnce(Return(null_surface));
288 EXPECT_CALL(model, destroy_surface(_)).Times(1);
289
290 auto surface = controller.create_surface(msh::a_surface());
291
292=== modified file 'tests/unit-tests/surfaces/test_surface_stack.cpp'
293--- tests/unit-tests/surfaces/test_surface_stack.cpp 2013-07-18 11:04:18 +0000
294+++ tests/unit-tests/surfaces/test_surface_stack.cpp 2013-07-18 22:32:28 +0000
295@@ -146,8 +146,6 @@
296 std::function<void()> const&));
297 };
298
299-static ms::DepthId const default_depth{0};
300-
301 struct StubBufferStreamFactory : public ms::BufferStreamFactory
302 {
303 std::shared_ptr<ms::BufferStream> create_buffer_stream(mc::BufferProperties const&)
304@@ -201,7 +199,7 @@
305
306 auto use_count = stub_surface1.use_count();
307
308- auto surface = stack.create_surface(default_params, default_depth);
309+ auto surface = stack.create_surface(default_params);
310 {
311 EXPECT_EQ(stub_surface1, surface.lock());
312 }
313@@ -222,13 +220,13 @@
314 .WillOnce(Return(stub_surface3));
315
316 ms::SurfaceStack stack(mt::fake_shared(mock_surface_allocator), mt::fake_shared(input_registrar));
317- auto s1 = stack.create_surface(default_params, default_depth);
318+ auto s1 = stack.create_surface(default_params);
319 auto criteria1 = s1.lock()->compositing_criteria();
320 auto stream1 = s1.lock()->buffer_stream();
321- auto s2 = stack.create_surface(default_params, default_depth);
322+ auto s2 = stack.create_surface(default_params);
323 auto criteria2 = s2.lock()->compositing_criteria();
324 auto stream2 = s2.lock()->buffer_stream();
325- auto s3 = stack.create_surface(default_params, default_depth);
326+ auto s3 = stack.create_surface(default_params);
327 auto criteria3 = s3.lock()->compositing_criteria();
328 auto stream3 = s3.lock()->buffer_stream();
329
330@@ -264,13 +262,13 @@
331
332 ms::SurfaceStack stack(mt::fake_shared(mock_surface_allocator), mt::fake_shared(input_registrar));
333
334- auto s1 = stack.create_surface(default_params, default_depth);
335+ auto s1 = stack.create_surface(default_params);
336 auto criteria1 = s1.lock()->compositing_criteria();
337 auto stream1 = s1.lock()->buffer_stream();
338- auto s2 = stack.create_surface(default_params, default_depth);
339+ auto s2 = stack.create_surface(default_params);
340 auto criteria2 = s2.lock()->compositing_criteria();
341 auto stream2 = s2.lock()->buffer_stream();
342- auto s3 = stack.create_surface(default_params, default_depth);
343+ auto s3 = stack.create_surface(default_params);
344 auto criteria3 = s3.lock()->compositing_criteria();
345 auto stream3 = s3.lock()->buffer_stream();
346
347@@ -296,7 +294,7 @@
348
349 ms::SurfaceStack stack(mt::fake_shared(mock_surface_allocator), mt::fake_shared(input_registrar));
350 stack.set_change_callback(std::bind(&MockCallback::call, &mock_cb));
351- auto surface = stack.create_surface(default_params, default_depth);
352+ auto surface = stack.create_surface(default_params);
353 stack.destroy_surface(surface);
354 }
355
356@@ -310,13 +308,13 @@
357 .WillOnce(Return(stub_surface3));
358
359 ms::SurfaceStack stack(mt::fake_shared(mock_surface_allocator), mt::fake_shared(input_registrar));
360- auto s1 = stack.create_surface(default_params, ms::DepthId{0});
361+ auto s1 = stack.create_surface(default_params.of_depth(ms::DepthId{0}));
362 auto criteria1 = s1.lock()->compositing_criteria();
363 auto stream1 = s1.lock()->buffer_stream();
364- auto s2 = stack.create_surface(default_params, ms::DepthId{1});
365+ auto s2 = stack.create_surface(default_params.of_depth(ms::DepthId{1}));
366 auto criteria2 = s2.lock()->compositing_criteria();
367 auto stream2 = s2.lock()->buffer_stream();
368- auto s3 = stack.create_surface(default_params, ms::DepthId{0});
369+ auto s3 = stack.create_surface(default_params.of_depth(ms::DepthId{0}));
370 auto criteria3 = s3.lock()->compositing_criteria();
371 auto stream3 = s3.lock()->buffer_stream();
372
373@@ -347,7 +345,7 @@
374
375 ms::SurfaceStack stack(mt::fake_shared(mock_surface_allocator), mt::fake_shared(registrar));
376
377- auto s = stack.create_surface(msh::a_surface(), default_depth);
378+ auto s = stack.create_surface(msh::a_surface());
379 stack.destroy_surface(s);
380 }
381
382@@ -361,13 +359,13 @@
383 .WillOnce(Return(stub_surface3));
384
385 ms::SurfaceStack stack(mt::fake_shared(mock_surface_allocator), mt::fake_shared(input_registrar));
386- auto s1 = stack.create_surface(default_params, default_depth);
387+ auto s1 = stack.create_surface(default_params);
388 auto criteria1 = s1.lock()->compositing_criteria();
389 auto stream1 = s1.lock()->buffer_stream();
390- auto s2 = stack.create_surface(default_params, default_depth);
391+ auto s2 = stack.create_surface(default_params);
392 auto criteria2 = s2.lock()->compositing_criteria();
393 auto stream2 = s2.lock()->buffer_stream();
394- auto s3 = stack.create_surface(default_params, default_depth);
395+ auto s3 = stack.create_surface(default_params);
396 auto criteria3 = s3.lock()->compositing_criteria();
397 auto stream3 = s3.lock()->buffer_stream();
398
399@@ -404,13 +402,13 @@
400 .WillOnce(Return(stub_surface3));
401
402 ms::SurfaceStack stack(mt::fake_shared(mock_surface_allocator), mt::fake_shared(input_registrar));
403- auto s1 = stack.create_surface(default_params, ms::DepthId{0});
404+ auto s1 = stack.create_surface(default_params.of_depth(ms::DepthId{0}));
405 auto criteria1 = s1.lock()->compositing_criteria();
406 auto stream1 = s1.lock()->buffer_stream();
407- auto s2 = stack.create_surface(default_params, ms::DepthId{0});
408+ auto s2 = stack.create_surface(default_params.of_depth(ms::DepthId{0}));
409 auto criteria2 = s2.lock()->compositing_criteria();
410 auto stream2 = s2.lock()->buffer_stream();
411- auto s3 = stack.create_surface(default_params, ms::DepthId{1});
412+ auto s3 = stack.create_surface(default_params.of_depth(ms::DepthId{1}));
413 auto criteria3 = s3.lock()->compositing_criteria();
414 auto stream3 = s3.lock()->buffer_stream();
415

Subscribers

People subscribed via source and target branches