| OLD | NEW |
| 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 #include "ash/laser/laser_pointer_view.h" | 5 #include "ash/laser/laser_pointer_view.h" |
| 6 | 6 |
| 7 #include <GLES2/gl2.h> | 7 #include <GLES2/gl2.h> |
| 8 #include <GLES2/gl2ext.h> | 8 #include <GLES2/gl2ext.h> |
| 9 #include <GLES2/gl2extchromium.h> | 9 #include <GLES2/gl2extchromium.h> |
| 10 | 10 |
| 11 #include <algorithm> | 11 #include <algorithm> |
| 12 #include <array> | 12 #include <array> |
| 13 #include <cmath> | 13 #include <cmath> |
| 14 #include <memory> | 14 #include <memory> |
| 15 | 15 |
| 16 #include "ash/laser/laser_pointer_points.h" | 16 #include "ash/laser/laser_pointer_points.h" |
| 17 #include "ash/laser/laser_segment_utils.h" | 17 #include "ash/laser/laser_segment_utils.h" |
| 18 #include "ash/public/cpp/shell_window_ids.h" | 18 #include "ash/public/cpp/shell_window_ids.h" |
| 19 #include "ash/shell.h" | 19 #include "ash/shell.h" |
| 20 #include "base/containers/adapters.h" | 20 #include "base/containers/adapters.h" |
| 21 #include "base/threading/thread_task_runner_handle.h" | 21 #include "base/threading/thread_task_runner_handle.h" |
| 22 #include "base/timer/timer.h" | 22 #include "base/timer/timer.h" |
| 23 #include "base/trace_event/trace_event.h" | 23 #include "base/trace_event/trace_event.h" |
| 24 #include "cc/output/begin_frame_args.h" |
| 24 #include "cc/output/context_provider.h" | 25 #include "cc/output/context_provider.h" |
| 25 #include "cc/quads/texture_draw_quad.h" | 26 #include "cc/quads/texture_draw_quad.h" |
| 26 #include "cc/resources/transferable_resource.h" | 27 #include "cc/resources/transferable_resource.h" |
| 27 #include "cc/surfaces/surface.h" | 28 #include "cc/surfaces/surface.h" |
| 28 #include "cc/surfaces/surface_manager.h" | 29 #include "cc/surfaces/surface_manager.h" |
| 29 #include "gpu/command_buffer/client/context_support.h" | 30 #include "gpu/command_buffer/client/context_support.h" |
| 30 #include "gpu/command_buffer/client/gles2_interface.h" | 31 #include "gpu/command_buffer/client/gles2_interface.h" |
| 31 #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h" | 32 #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h" |
| 32 #include "third_party/skia/include/core/SkColor.h" | 33 #include "third_party/skia/include/core/SkColor.h" |
| 33 #include "third_party/skia/include/core/SkTypes.h" | 34 #include "third_party/skia/include/core/SkTypes.h" |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 void LaserPointerView::SetNeedsBeginFrame(bool needs_begin_frame) { | 384 void LaserPointerView::SetNeedsBeginFrame(bool needs_begin_frame) { |
| 384 frame_sink_support_.SetNeedsBeginFrame(needs_begin_frame); | 385 frame_sink_support_.SetNeedsBeginFrame(needs_begin_frame); |
| 385 } | 386 } |
| 386 | 387 |
| 387 void LaserPointerView::SubmitCompositorFrame( | 388 void LaserPointerView::SubmitCompositorFrame( |
| 388 const cc::LocalSurfaceId& local_surface_id, | 389 const cc::LocalSurfaceId& local_surface_id, |
| 389 cc::CompositorFrame frame) { | 390 cc::CompositorFrame frame) { |
| 390 frame_sink_support_.SubmitCompositorFrame(local_surface_id, std::move(frame)); | 391 frame_sink_support_.SubmitCompositorFrame(local_surface_id, std::move(frame)); |
| 391 } | 392 } |
| 392 | 393 |
| 394 void LaserPointerView::BeginFrameDidNotSwap( |
| 395 const cc::BeginFrameAck& begin_frame_ack) { |
| 396 frame_sink_support_.BeginFrameDidNotSwap(begin_frame_ack); |
| 397 } |
| 398 |
| 393 void LaserPointerView::EvictFrame() { | 399 void LaserPointerView::EvictFrame() { |
| 394 frame_sink_support_.EvictFrame(); | 400 frame_sink_support_.EvictFrame(); |
| 395 } | 401 } |
| 396 | 402 |
| 397 void LaserPointerView::DidReceiveCompositorFrameAck() { | 403 void LaserPointerView::DidReceiveCompositorFrameAck() { |
| 398 base::ThreadTaskRunnerHandle::Get()->PostTask( | 404 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 399 FROM_HERE, base::Bind(&LaserPointerView::OnDidDrawSurface, | 405 FROM_HERE, base::Bind(&LaserPointerView::OnDidDrawSurface, |
| 400 weak_ptr_factory_.GetWeakPtr())); | 406 weak_ptr_factory_.GetWeakPtr())); |
| 401 } | 407 } |
| 402 | 408 |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 gfx::Transform()); | 677 gfx::Transform()); |
| 672 surface_damage_rect_ = gfx::Rect(); | 678 surface_damage_rect_ = gfx::Rect(); |
| 673 | 679 |
| 674 cc::SharedQuadState* quad_state = | 680 cc::SharedQuadState* quad_state = |
| 675 render_pass->CreateAndAppendSharedQuadState(); | 681 render_pass->CreateAndAppendSharedQuadState(); |
| 676 quad_state->quad_layer_bounds = quad_rect.size(); | 682 quad_state->quad_layer_bounds = quad_rect.size(); |
| 677 quad_state->visible_quad_layer_rect = quad_rect; | 683 quad_state->visible_quad_layer_rect = quad_rect; |
| 678 quad_state->opacity = 1.0f; | 684 quad_state->opacity = 1.0f; |
| 679 | 685 |
| 680 cc::CompositorFrame frame; | 686 cc::CompositorFrame frame; |
| 687 // TODO(eseckler): LaserPointerView should use BeginFrames and set the ack |
| 688 // accordingly. |
| 689 frame.metadata.begin_frame_ack = |
| 690 cc::BeginFrameAck::CreateManualAckWithDamage(); |
| 681 cc::TextureDrawQuad* texture_quad = | 691 cc::TextureDrawQuad* texture_quad = |
| 682 render_pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>(); | 692 render_pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>(); |
| 683 float vertex_opacity[4] = {1.0, 1.0, 1.0, 1.0}; | 693 float vertex_opacity[4] = {1.0, 1.0, 1.0, 1.0}; |
| 684 gfx::PointF uv_top_left(0.f, 0.f); | 694 gfx::PointF uv_top_left(0.f, 0.f); |
| 685 gfx::PointF uv_bottom_right(1.f, 1.f); | 695 gfx::PointF uv_bottom_right(1.f, 1.f); |
| 686 texture_quad->SetNew(quad_state, quad_rect, gfx::Rect(), quad_rect, | 696 texture_quad->SetNew(quad_state, quad_rect, gfx::Rect(), quad_rect, |
| 687 transferable_resource.id, true, uv_top_left, | 697 transferable_resource.id, true, uv_top_left, |
| 688 uv_bottom_right, SK_ColorTRANSPARENT, vertex_opacity, | 698 uv_bottom_right, SK_ColorTRANSPARENT, vertex_opacity, |
| 689 false, false, false); | 699 false, false, false); |
| 690 texture_quad->set_resource_size_in_pixels(transferable_resource.size); | 700 texture_quad->set_resource_size_in_pixels(transferable_resource.size); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 712 pending_draw_surface_ = true; | 722 pending_draw_surface_ = true; |
| 713 } | 723 } |
| 714 | 724 |
| 715 void LaserPointerView::OnDidDrawSurface() { | 725 void LaserPointerView::OnDidDrawSurface() { |
| 716 pending_draw_surface_ = false; | 726 pending_draw_surface_ = false; |
| 717 if (needs_update_surface_) | 727 if (needs_update_surface_) |
| 718 UpdateSurface(); | 728 UpdateSurface(); |
| 719 } | 729 } |
| 720 | 730 |
| 721 } // namespace ash | 731 } // namespace ash |
| OLD | NEW |