Merge lp:~kdub/mir/unbreak-abi-0.21 into lp:mir
- unbreak-abi-0.21
- Merge into development-branch
Proposed by
Kevin DuBois
Status: | Superseded |
---|---|
Proposed branch: | lp:~kdub/mir/unbreak-abi-0.21 |
Merge into: | lp:mir |
Diff against target: |
443 lines (+118/-80) 13 files modified
debian/changelog (+54/-5) include/server/mir/scene/surface.h (+0/-2) include/server/mir/shell/surface_specification.h (+0/-1) src/client/symbols.map (+1/-3) src/server/compositor/stream.cpp (+1/-0) src/server/frontend/session_mediator.cpp (+4/-16) src/server/scene/application_session.cpp (+1/-1) src/server/scene/basic_surface.cpp (+2/-6) tests/acceptance-tests/test_client_scaling.cpp (+9/-0) tests/unit-tests/frontend/test_session_mediator.cpp (+2/-2) tests/unit-tests/scene/test_application_session.cpp (+6/-6) tests/unit-tests/scene/test_basic_surface.cpp (+33/-33) tests/unit-tests/scene/test_surface_stack.cpp (+5/-5) |
To merge this branch: | bzr merge lp:~kdub/mir/unbreak-abi-0.21 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Mir development team | Pending | ||
Review via email: mp+289519@code.launchpad.net |
Commit message
server: Unbreak the mirserver ABI at the expense of breaking some scaling tests for the NBS (which isn't on or used at this time).
Description of the change
server: Unbreak the mirserver ABI at the expense of breaking some scaling tests for the NBS (which isn't on or used at this time).
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'debian/changelog' |
2 | --- debian/changelog 2016-03-16 06:59:01 +0000 |
3 | +++ debian/changelog 2016-03-18 15:28:35 +0000 |
4 | @@ -1,14 +1,63 @@ |
5 | mir (0.21.0-0ubuntu1) UNRELEASED; urgency=medium |
6 | |
7 | * New upstream release 0.21.0 (https://launchpad.net/mir/+milestone/0.21.0) |
8 | - - ABI summary: |
9 | - . No ABI changes. |
10 | + - ABI summary: There are no ABI breaks at all since Mir 0.20: |
11 | + . mirclient ABI unchanged at 9 |
12 | + . mirserver ABI unchanged at 38 |
13 | + . mircommon ABI unchanged at 5 |
14 | + . mirplatform ABI unchanged at 11 |
15 | + . mirprotobuf ABI unchanged at 3 |
16 | + . mirplatformgraphics ABI unchaged at 8 |
17 | + . mirclientplatform ABI unchanged at 4 |
18 | + . mirinputplatform ABI unchanged at 5 |
19 | - Enhancements: |
20 | - . TODO: Someone detail these |
21 | + . New display enumeration API |
22 | + . Added Android diagnostic tests to assist during porting to |
23 | + new devices |
24 | + . Added mir_demo_client_camera: a Video4Linux2 client |
25 | - Bugs fixed: |
26 | - . TODO: List these after branching lp:mir/0.21 |
27 | + . Mir crashed with exception 'failed to add sync point to command |
28 | + buffer' (LP: #1554635) |
29 | + . Mouse cursor is unusably slow in Unity 8 with a 1000Hz mouse |
30 | + (LP: #1539009) |
31 | + . Packaged mir_unit_tests binary is not suitable for general use |
32 | + (LP: #1547015) |
33 | + . [regression] Mir stops receiving input after a pause/resume |
34 | + cycle (LP: #1548989) |
35 | + . NBS (--nbuffers=0) causes software clients to crash with |
36 | + std::exception::what: Failed to mmap buffer 13, "Permission denied") |
37 | + (LP: #1550432) |
38 | + . Fullscreen clients freeze when using NBS with multiple monitors |
39 | + (LP: #1551536) |
40 | + . [ FAILED ] DisplayConfigurationTest.output_position_is_independent_of_ |
41 | + orientation (LP: #1552065) |
42 | + . The server-side use of MIR_SOCKET is confusing (LP: #1290345) |
43 | + . [regression] FTBFS with -DMIR_LINK_TIME_OPTIMIZATION=on |
44 | + -Duse_debflags=on (LP: #1350343) |
45 | + . Mir On X (mesa-x11) keeps receiving mouse movement events even |
46 | + when not focused (LP: #1528110) |
47 | + . x11 platform: mouse cursor moves strange (LP: #1546324) |
48 | + . Cross compiling to wily/vivid doesn't work (LP: #1549152) |
49 | + . Rendering stutters when a new client establishes a connection |
50 | + (LP: #1549359) |
51 | + . 'mir_demo_server --test-client' crashes (SIGSEGV) when client |
52 | + dies (LP: #1555620) |
53 | + . [testfail] CI failure: TestClientInput.client_input_config_request_ |
54 | + receives_all_attached_devices (LP: #1555708) |
55 | + . [regression] Mir FTBFS when MIR_ENABLE_TESTS=no (LP: #1556080) |
56 | + . Mir-on-X11 doesn't exit (until it gets an event) (LP: #1556210) |
57 | + . InputPlatformProbe.x11_platform_found_and_used_when_display_connection_ |
58 | + works breaks with old input drivers present (LP: #1543049) |
59 | + . [regression] MIR_CLIENT_PERF_REPORT is missing window/surface |
60 | + names (LP: #1546933) |
61 | + . Installed binaries fail to run with mir_demo_server --test-client XXXX |
62 | + (LP: #1556160) |
63 | + . mir_demo_server --test-client [mir_demo_client_scroll| |
64 | + mir_demo_client_flicker] fails (LP: #1556205) |
65 | + . The contents of debian/mir-demos.examples are out of date and useless |
66 | + (LP: #1557446) |
67 | |
68 | - -- Daniel van Vugt <daniel.van.vugt@canonical.com> Tue, 15 Mar 2016 15:22:57 +0800 |
69 | + -- Alberto Aguirre <alberto.aguirre@canonical.com> Thu, 17 Mar 2016 14:08:50 -0500 |
70 | |
71 | mir (0.20.2+16.04.20160307-0ubuntu1) xenial; urgency=medium |
72 | |
73 | |
74 | === modified file 'include/server/mir/scene/surface.h' |
75 | --- include/server/mir/scene/surface.h 2016-03-14 10:13:49 +0000 |
76 | +++ include/server/mir/scene/surface.h 2016-03-18 15:28:35 +0000 |
77 | @@ -23,7 +23,6 @@ |
78 | #include "mir/input/surface.h" |
79 | #include "mir/frontend/surface.h" |
80 | #include "mir/compositor/compositor_id.h" |
81 | -#include "mir/optional_value.h" |
82 | |
83 | #include <vector> |
84 | #include <list> |
85 | @@ -41,7 +40,6 @@ |
86 | { |
87 | std::shared_ptr<compositor::BufferStream> stream; |
88 | geometry::Displacement displacement; |
89 | - optional_value<geometry::Size> size; |
90 | }; |
91 | |
92 | class SurfaceObserver; |
93 | |
94 | === modified file 'include/server/mir/shell/surface_specification.h' |
95 | --- include/server/mir/shell/surface_specification.h 2016-03-14 10:13:49 +0000 |
96 | +++ include/server/mir/shell/surface_specification.h 2016-03-18 15:28:35 +0000 |
97 | @@ -43,7 +43,6 @@ |
98 | { |
99 | frontend::BufferStreamId stream_id; |
100 | geometry::Displacement displacement; |
101 | - optional_value<geometry::Size> size; |
102 | }; |
103 | |
104 | /// Specification of surface properties requested by client |
105 | |
106 | === modified file 'src/client/symbols.map' |
107 | --- src/client/symbols.map 2016-03-17 11:34:33 +0000 |
108 | +++ src/client/symbols.map 2016-03-18 15:28:35 +0000 |
109 | @@ -222,9 +222,7 @@ |
110 | mir_surface_spec_set_shell_chrome; |
111 | } MIR_CLIENT_9v18; |
112 | |
113 | -# The bumps to protobuf::current_protocol_version() and MIR_CLIENT_MINOR_VERSION |
114 | -# corresponding to these APIs have been applied. |
115 | -MIR_CLIENT_9_unreleased { |
116 | +MIR_CLIENT_9v20 { |
117 | global: |
118 | mir_connection_apply_display_configuration; |
119 | mir_connection_create_display_configuration; |
120 | |
121 | === modified file 'src/server/compositor/stream.cpp' |
122 | --- src/server/compositor/stream.cpp 2016-03-14 10:13:49 +0000 |
123 | +++ src/server/compositor/stream.cpp 2016-03-18 15:28:35 +0000 |
124 | @@ -80,6 +80,7 @@ |
125 | { |
126 | std::lock_guard<decltype(mutex)> lk(mutex); |
127 | first_frame_posted = true; |
128 | + size = buffer->size(); |
129 | buffers->receive_buffer(buffer->id()); |
130 | schedule->schedule((*buffers)[buffer->id()]); |
131 | if (buffers->client_owned_buffer_count() == 0) |
132 | |
133 | === modified file 'src/server/frontend/session_mediator.cpp' |
134 | --- src/server/frontend/session_mediator.cpp 2016-03-16 06:59:01 +0000 |
135 | +++ src/server/frontend/session_mediator.cpp 2016-03-18 15:28:35 +0000 |
136 | @@ -592,22 +592,10 @@ |
137 | std::vector<msh::StreamSpecification> stream_spec; |
138 | for (auto& stream : surface_specification.stream()) |
139 | { |
140 | - if (stream.has_width() && stream.has_height()) |
141 | - { |
142 | - stream_spec.emplace_back( |
143 | - msh::StreamSpecification{ |
144 | - mf::BufferStreamId{stream.id().value()}, |
145 | - geom::Displacement{stream.displacement_x(), stream.displacement_y()}, |
146 | - geom::Size{stream.width(), stream.height()}}); |
147 | - } |
148 | - else |
149 | - { |
150 | - stream_spec.emplace_back( |
151 | - msh::StreamSpecification{ |
152 | - mf::BufferStreamId{stream.id().value()}, |
153 | - geom::Displacement{stream.displacement_x(), stream.displacement_y()}, |
154 | - {}}); |
155 | - } |
156 | + stream_spec.emplace_back( |
157 | + msh::StreamSpecification{ |
158 | + mf::BufferStreamId{stream.id().value()}, |
159 | + geom::Displacement{stream.displacement_x(), stream.displacement_y()}}); |
160 | } |
161 | mods.streams = std::move(stream_spec); |
162 | } |
163 | |
164 | === modified file 'src/server/scene/application_session.cpp' |
165 | --- src/server/scene/application_session.cpp 2016-03-16 06:59:01 +0000 |
166 | +++ src/server/scene/application_session.cpp 2016-03-18 15:28:35 +0000 |
167 | @@ -370,7 +370,7 @@ |
168 | for (auto& stream : streams) |
169 | { |
170 | auto s = checked_find(stream.stream_id)->second; |
171 | - list.emplace_back(ms::StreamInfo{s, stream.displacement, stream.size}); |
172 | + list.emplace_back(ms::StreamInfo{s, stream.displacement}); |
173 | } |
174 | surface.set_streams(list); |
175 | } |
176 | |
177 | === modified file 'src/server/scene/basic_surface.cpp' |
178 | --- src/server/scene/basic_surface.cpp 2016-03-16 06:59:01 +0000 |
179 | +++ src/server/scene/basic_surface.cpp 2016-03-18 15:28:35 +0000 |
180 | @@ -222,7 +222,7 @@ |
181 | cursor_image_(cursor_image), |
182 | report(report), |
183 | parent_(parent), |
184 | - layers({StreamInfo{buffer_stream, {0,0}, {}}}), |
185 | + layers({StreamInfo{buffer_stream, {0,0}}}), |
186 | cursor_stream_adapter{std::make_unique<ms::CursorStreamImageAdapter>(*this)}, |
187 | input_validator([this](MirEvent const& ev) { this->input_sender->send_event(ev, server_input_channel); }) |
188 | { |
189 | @@ -891,11 +891,7 @@ |
190 | { |
191 | if (info.stream->has_submitted_buffer()) |
192 | { |
193 | - geom::Size size; |
194 | - if (info.size.is_set()) |
195 | - size = info.size.value(); |
196 | - else |
197 | - size = info.stream->stream_size(); |
198 | + geom::Size size = info.stream->stream_size(); |
199 | |
200 | list.emplace_back(std::make_shared<SurfaceSnapshot>( |
201 | info.stream, id, |
202 | |
203 | === modified file 'tests/acceptance-tests/test_client_scaling.cpp' |
204 | --- tests/acceptance-tests/test_client_scaling.cpp 2016-03-14 10:13:49 +0000 |
205 | +++ tests/acceptance-tests/test_client_scaling.cpp 2016-03-18 15:28:35 +0000 |
206 | @@ -158,6 +158,15 @@ |
207 | |
208 | TEST_F(SurfaceScaling, compositor_sees_size_different_when_scaled) |
209 | { |
210 | + //FIXME: need an ABI break to get this to work for NBS. Temporarily disabled for a |
211 | + // no ABI break release. |
212 | + auto nbuffers_opt = getenv("MIR_SERVER_NBUFFERS"); |
213 | + if (nbuffers_opt && !strcmp(nbuffers_opt, "0")) |
214 | + { |
215 | + SUCCEED() << "temporarily disabled test for MIR_SERVER_NBUFFERS=0"; |
216 | + return; |
217 | + } |
218 | + |
219 | using namespace std::literals::chrono_literals; |
220 | auto scale = 2.0f; |
221 | auto stream = mir_surface_get_buffer_stream(surface); |
222 | |
223 | === modified file 'tests/unit-tests/frontend/test_session_mediator.cpp' |
224 | --- tests/unit-tests/frontend/test_session_mediator.cpp 2016-03-16 06:59:01 +0000 |
225 | +++ tests/unit-tests/frontend/test_session_mediator.cpp 2016-03-18 15:28:35 +0000 |
226 | @@ -963,8 +963,8 @@ |
227 | EXPECT_CALL(*shell, modify_surface(_, |
228 | mf::SurfaceId{surface_response.id().value()}, |
229 | StreamsAre(std::vector<msh::StreamSpecification>{ |
230 | - {mf::BufferStreamId(streams[0].id().value()), displacement[0], {}}, |
231 | - {mf::BufferStreamId(streams[1].id().value()), displacement[1], {}}, |
232 | + {mf::BufferStreamId(streams[0].id().value()), displacement[0]}, |
233 | + {mf::BufferStreamId(streams[1].id().value()), displacement[1]}, |
234 | }))); |
235 | |
236 | mediator.modify_surface(&mods, &null, null_callback.get()); |
237 | |
238 | === modified file 'tests/unit-tests/scene/test_application_session.cpp' |
239 | --- tests/unit-tests/scene/test_application_session.cpp 2016-03-16 06:59:01 +0000 |
240 | +++ tests/unit-tests/scene/test_application_session.cpp 2016-03-18 15:28:35 +0000 |
241 | @@ -574,15 +574,15 @@ |
242 | auto stream_id2 = session->create_buffer_stream(stream_properties); |
243 | |
244 | std::list<ms::StreamInfo> info { |
245 | - {streams[2], geom::Displacement{0,3}, {}}, |
246 | - {streams[0], geom::Displacement{-1,1}, {}}, |
247 | - {streams[1], geom::Displacement{0,2}, {}} |
248 | + {streams[2], geom::Displacement{0,3}}, |
249 | + {streams[0], geom::Displacement{-1,1}}, |
250 | + {streams[1], geom::Displacement{0,2}} |
251 | }; |
252 | EXPECT_CALL(*mock_surface, set_streams(Pointwise(StreamEq(), info))); |
253 | session->configure_streams(*mock_surface, { |
254 | - {stream_id2, geom::Displacement{0,3}, {}}, |
255 | - {stream_id0, geom::Displacement{-1,1}, {}}, |
256 | - {stream_id1, geom::Displacement{0,2}, {}} |
257 | + {stream_id2, geom::Displacement{0,3}}, |
258 | + {stream_id0, geom::Displacement{-1,1}}, |
259 | + {stream_id1, geom::Displacement{0,2}} |
260 | }); |
261 | } |
262 | |
263 | |
264 | === modified file 'tests/unit-tests/scene/test_basic_surface.cpp' |
265 | --- tests/unit-tests/scene/test_basic_surface.cpp 2016-03-16 06:59:01 +0000 |
266 | +++ tests/unit-tests/scene/test_basic_surface.cpp 2016-03-18 15:28:35 +0000 |
267 | @@ -811,10 +811,10 @@ |
268 | auto buffer_stream2 = std::make_shared<NiceMock<mtd::MockBufferStream>>(); |
269 | |
270 | std::list<ms::StreamInfo> streams = { |
271 | - { mock_buffer_stream, {0,0}, {}}, |
272 | - { buffer_stream0, d0, {} }, |
273 | - { buffer_stream1, d1, {} }, |
274 | - { buffer_stream2, d2, {} } |
275 | + { mock_buffer_stream, {0,0}}, |
276 | + { buffer_stream0, d0 }, |
277 | + { buffer_stream1, d1 }, |
278 | + { buffer_stream2, d2 } |
279 | }; |
280 | surface.set_streams(streams); |
281 | |
282 | @@ -835,8 +835,8 @@ |
283 | auto buffer_stream = std::make_shared<NiceMock<mtd::MockBufferStream>>(); |
284 | |
285 | std::list<ms::StreamInfo> streams = { |
286 | - { mock_buffer_stream, {0,0}, {} }, |
287 | - { buffer_stream, d, {} } |
288 | + { mock_buffer_stream, {0,0} }, |
289 | + { buffer_stream, d } |
290 | }; |
291 | |
292 | surface.set_streams(streams); |
293 | @@ -868,8 +868,8 @@ |
294 | auto buffer_stream0 = std::make_shared<NiceMock<mtd::MockBufferStream>>(); |
295 | auto buffer_stream1 = std::make_shared<NiceMock<mtd::MockBufferStream>>(); |
296 | std::list<ms::StreamInfo> streams = { |
297 | - { buffer_stream0, {0,0}, {} }, |
298 | - { buffer_stream1, {0,0}, {} } |
299 | + { buffer_stream0, {0,0} }, |
300 | + { buffer_stream1, {0,0} } |
301 | }; |
302 | surface.set_streams(streams); |
303 | auto renderables = surface.generate_renderables(this); |
304 | @@ -909,18 +909,18 @@ |
305 | .InSequence(seq1); |
306 | |
307 | std::list<ms::StreamInfo> streams = { |
308 | - { buffer_stream0, {0,0}, {} }, |
309 | - { buffer_stream1, {0,0}, {} }, |
310 | + { buffer_stream0, {0,0} }, |
311 | + { buffer_stream1, {0,0} }, |
312 | }; |
313 | surface.set_streams(streams); |
314 | |
315 | - streams = { { buffer_stream0, {0,0}, {} } }; |
316 | - surface.set_streams(streams); |
317 | - |
318 | - streams = { { buffer_stream1, {0,0}, {} } }; |
319 | - surface.set_streams(streams); |
320 | - |
321 | - streams = { { buffer_stream0, {0,0}, {} } }; |
322 | + streams = { { buffer_stream0, {0,0} } }; |
323 | + surface.set_streams(streams); |
324 | + |
325 | + streams = { { buffer_stream1, {0,0} } }; |
326 | + surface.set_streams(streams); |
327 | + |
328 | + streams = { { buffer_stream0, {0,0} } }; |
329 | surface.set_streams(streams); |
330 | } |
331 | |
332 | @@ -929,8 +929,8 @@ |
333 | using namespace testing; |
334 | auto buffer_stream = std::make_shared<NiceMock<mtd::MockBufferStream>>(); |
335 | std::list<ms::StreamInfo> streams = { |
336 | - { mock_buffer_stream, {0,0}, {} }, |
337 | - { buffer_stream, {0,0}, {} } |
338 | + { mock_buffer_stream, {0,0} }, |
339 | + { buffer_stream, {0,0} } |
340 | }; |
341 | surface.set_streams(streams); |
342 | |
343 | @@ -950,8 +950,8 @@ |
344 | |
345 | auto buffer_stream = std::make_shared<NiceMock<mtd::MockBufferStream>>(); |
346 | std::list<ms::StreamInfo> streams = { |
347 | - { mock_buffer_stream, {0,0}, {} }, |
348 | - { buffer_stream, {0,0}, {} } |
349 | + { mock_buffer_stream, {0,0} }, |
350 | + { buffer_stream, {0,0} } |
351 | }; |
352 | |
353 | surface.set_streams(streams); |
354 | @@ -967,7 +967,7 @@ |
355 | EXPECT_THAT(renderables[1], IsRenderableOfAlpha(alpha)); |
356 | } |
357 | |
358 | -TEST_F(BasicSurfaceTest, setting_streams_with_size_changes_sizes) |
359 | +TEST_F(BasicSurfaceTest, DISABLED_setting_streams_with_size_changes_sizes) |
360 | { |
361 | using namespace testing; |
362 | |
363 | @@ -980,8 +980,8 @@ |
364 | ON_CALL(*buffer_stream, stream_size()) |
365 | .WillByDefault(Return(bad_size)); |
366 | std::list<ms::StreamInfo> streams = { |
367 | - { mock_buffer_stream, {0,0}, size0 }, |
368 | - { buffer_stream, {0,0}, size1 } |
369 | + { mock_buffer_stream, {0,0} }, |
370 | + { buffer_stream, {0,0} } |
371 | }; |
372 | |
373 | surface.set_streams(streams); |
374 | @@ -997,8 +997,8 @@ |
375 | |
376 | auto buffer_stream = std::make_shared<NiceMock<mtd::MockBufferStream>>(); |
377 | std::list<ms::StreamInfo> streams = { |
378 | - { mock_buffer_stream, {0,0}, {} }, |
379 | - { buffer_stream, {0,0}, {} } |
380 | + { mock_buffer_stream, {0,0} }, |
381 | + { buffer_stream, {0,0} } |
382 | }; |
383 | |
384 | EXPECT_CALL(*mock_buffer_stream, allow_framedropping(true)); |
385 | @@ -1020,8 +1020,8 @@ |
386 | ON_CALL(*mock_buffer_stream1, has_submitted_buffer()) |
387 | .WillByDefault(Invoke([&stream2_visible] { return stream2_visible; })); |
388 | std::list<ms::StreamInfo> streams = { |
389 | - { mock_buffer_stream, {0,0}, {} }, |
390 | - { mock_buffer_stream1, displacement, {} }, |
391 | + { mock_buffer_stream, {0,0} }, |
392 | + { mock_buffer_stream1, displacement }, |
393 | }; |
394 | surface.set_streams(streams); |
395 | |
396 | @@ -1059,9 +1059,9 @@ |
397 | .WillOnce(Return(1)); |
398 | |
399 | std::list<ms::StreamInfo> streams = { |
400 | - { mock_buffer_stream, {0,0}, {} }, |
401 | - { buffer_stream0, {0,0}, {} }, |
402 | - { buffer_stream1, {0,0}, {} }, |
403 | + { mock_buffer_stream, {0,0} }, |
404 | + { buffer_stream0, {0,0} }, |
405 | + { buffer_stream1, {0,0} }, |
406 | }; |
407 | surface.set_streams(streams); |
408 | EXPECT_THAT(surface.buffers_ready_for_compositor(this), Eq(3)); |
409 | @@ -1083,8 +1083,8 @@ |
410 | .WillByDefault(Return(size1)); |
411 | |
412 | std::list<ms::StreamInfo> streams = { |
413 | - { mock_buffer_stream, d0, {} }, |
414 | - { buffer_stream, d1, {} }, |
415 | + { mock_buffer_stream, d0 }, |
416 | + { buffer_stream, d1 }, |
417 | }; |
418 | surface.set_streams(streams); |
419 | |
420 | |
421 | === modified file 'tests/unit-tests/scene/test_surface_stack.cpp' |
422 | --- tests/unit-tests/scene/test_surface_stack.cpp 2016-03-14 10:13:49 +0000 |
423 | +++ tests/unit-tests/scene/test_surface_stack.cpp 2016-03-18 15:28:35 +0000 |
424 | @@ -228,15 +228,15 @@ |
425 | auto stub_stream1 = std::make_shared<mtd::StubBufferStream>(); |
426 | auto stub_stream2 = std::make_shared<mtd::StubBufferStream>(); |
427 | std::list<ms::StreamInfo> streams = { |
428 | - { stub_surface1->buffer_stream(), {0,0}, {} }, |
429 | - { stub_stream0, {2,2}, {} }, |
430 | - { stub_stream1, {2,3}, {} }, |
431 | + { stub_surface1->buffer_stream(), {0,0} }, |
432 | + { stub_stream0, {2,2} }, |
433 | + { stub_stream1, {2,3} }, |
434 | }; |
435 | stub_surface1->set_streams(streams); |
436 | |
437 | streams = { |
438 | - { stub_stream2, {2,4}, {} }, |
439 | - { stub_surface3->buffer_stream(), {0,0}, {} } |
440 | + { stub_stream2, {2,4} }, |
441 | + { stub_surface3->buffer_stream(), {0,0} } |
442 | }; |
443 | stub_surface3->set_streams(streams); |
444 |