OLD | NEW |
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 #include "cc/surfaces/surface.h" | 5 #include "cc/surfaces/surface.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "cc/output/compositor_frame.h" | 7 #include "cc/output/compositor_frame.h" |
8 #include "cc/quads/texture_draw_quad.h" | 8 #include "cc/quads/texture_draw_quad.h" |
9 #include "cc/surfaces/surface_manager.h" | 9 #include "cc/surfaces/surface_manager.h" |
10 #include "cc/test/begin_frame_args_test.h" | 10 #include "cc/test/begin_frame_args_test.h" |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 surface->SetBeginFrameSource(&source); | 322 surface->SetBeginFrameSource(&source); |
323 surface->Attach(buffer.get()); | 323 surface->Attach(buffer.get()); |
324 | 324 |
325 // Request a frame callback so that Surface now needs BeginFrames. | 325 // Request a frame callback so that Surface now needs BeginFrames. |
326 base::TimeTicks frame_time; | 326 base::TimeTicks frame_time; |
327 surface->RequestFrameCallback( | 327 surface->RequestFrameCallback( |
328 base::Bind(&SetFrameTime, base::Unretained(&frame_time))); | 328 base::Bind(&SetFrameTime, base::Unretained(&frame_time))); |
329 surface->Commit(); // Move callback from pending callbacks to current ones. | 329 surface->Commit(); // Move callback from pending callbacks to current ones. |
330 RunAllPendingInMessageLoop(); | 330 RunAllPendingInMessageLoop(); |
331 | 331 |
332 // Surface should add itself as observer during WillDraw(). | 332 // Surface should add itself as observer during |
333 surface->WillDraw(); | 333 // DidReceiveCompositorFrameAck(). |
| 334 surface->DidReceiveCompositorFrameAck(); |
334 EXPECT_EQ(1u, source.num_observers()); | 335 EXPECT_EQ(1u, source.num_observers()); |
335 | 336 |
336 cc::BeginFrameArgs args(source.CreateBeginFrameArgs(BEGINFRAME_FROM_HERE)); | 337 cc::BeginFrameArgs args(source.CreateBeginFrameArgs(BEGINFRAME_FROM_HERE)); |
337 args.frame_time = base::TimeTicks::FromInternalValue(100); | 338 args.frame_time = base::TimeTicks::FromInternalValue(100); |
338 source.TestOnBeginFrame(args); // Runs the frame callback. | 339 source.TestOnBeginFrame(args); // Runs the frame callback. |
339 EXPECT_EQ(args.frame_time, frame_time); | 340 EXPECT_EQ(args.frame_time, frame_time); |
340 | 341 |
341 surface->Commit(); // Acknowledges the BeginFrame. | 342 surface->Commit(); // Acknowledges the BeginFrame. |
342 RunAllPendingInMessageLoop(); | 343 RunAllPendingInMessageLoop(); |
343 | 344 |
344 cc::BeginFrameAck expected_ack(args.source_id, args.sequence_number, | 345 cc::BeginFrameAck expected_ack(args.source_id, args.sequence_number, |
345 args.sequence_number, true); | 346 args.sequence_number, true); |
346 EXPECT_EQ(expected_ack, source.LastAckForObserver(surface.get())); | 347 EXPECT_EQ(expected_ack, source.LastAckForObserver(surface.get())); |
347 | 348 |
348 const cc::CompositorFrame& frame = GetFrameFromSurface(surface.get()); | 349 const cc::CompositorFrame& frame = GetFrameFromSurface(surface.get()); |
349 EXPECT_EQ(expected_ack, frame.metadata.begin_frame_ack); | 350 EXPECT_EQ(expected_ack, frame.metadata.begin_frame_ack); |
350 } | 351 } |
351 | 352 |
352 } // namespace | 353 } // namespace |
353 } // namespace exo | 354 } // namespace exo |
OLD | NEW |