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 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 gfx::Transform()); | 672 gfx::Transform()); |
672 surface_damage_rect_ = gfx::Rect(); | 673 surface_damage_rect_ = gfx::Rect(); |
673 | 674 |
674 cc::SharedQuadState* quad_state = | 675 cc::SharedQuadState* quad_state = |
675 render_pass->CreateAndAppendSharedQuadState(); | 676 render_pass->CreateAndAppendSharedQuadState(); |
676 quad_state->quad_layer_bounds = quad_rect.size(); | 677 quad_state->quad_layer_bounds = quad_rect.size(); |
677 quad_state->visible_quad_layer_rect = quad_rect; | 678 quad_state->visible_quad_layer_rect = quad_rect; |
678 quad_state->opacity = 1.0f; | 679 quad_state->opacity = 1.0f; |
679 | 680 |
680 cc::CompositorFrame frame; | 681 cc::CompositorFrame frame; |
| 682 // TODO(eseckler): LaserPointerView should use BeginFrames and set the ack |
| 683 // accordingly. |
| 684 frame.metadata.begin_frame_ack = |
| 685 cc::BeginFrameAck(cc::BeginFrameArgs::kManualSourceId, |
| 686 cc::BeginFrameArgs::kStartingFrameNumber, |
| 687 cc::BeginFrameArgs::kStartingFrameNumber, 0, true); |
681 cc::TextureDrawQuad* texture_quad = | 688 cc::TextureDrawQuad* texture_quad = |
682 render_pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>(); | 689 render_pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>(); |
683 float vertex_opacity[4] = {1.0, 1.0, 1.0, 1.0}; | 690 float vertex_opacity[4] = {1.0, 1.0, 1.0, 1.0}; |
684 gfx::PointF uv_top_left(0.f, 0.f); | 691 gfx::PointF uv_top_left(0.f, 0.f); |
685 gfx::PointF uv_bottom_right(1.f, 1.f); | 692 gfx::PointF uv_bottom_right(1.f, 1.f); |
686 texture_quad->SetNew(quad_state, quad_rect, gfx::Rect(), quad_rect, | 693 texture_quad->SetNew(quad_state, quad_rect, gfx::Rect(), quad_rect, |
687 transferable_resource.id, true, uv_top_left, | 694 transferable_resource.id, true, uv_top_left, |
688 uv_bottom_right, SK_ColorTRANSPARENT, vertex_opacity, | 695 uv_bottom_right, SK_ColorTRANSPARENT, vertex_opacity, |
689 false, false, false); | 696 false, false, false); |
690 texture_quad->set_resource_size_in_pixels(transferable_resource.size); | 697 texture_quad->set_resource_size_in_pixels(transferable_resource.size); |
(...skipping 21 matching lines...) Expand all Loading... |
712 pending_draw_surface_ = true; | 719 pending_draw_surface_ = true; |
713 } | 720 } |
714 | 721 |
715 void LaserPointerView::OnDidDrawSurface() { | 722 void LaserPointerView::OnDidDrawSurface() { |
716 pending_draw_surface_ = false; | 723 pending_draw_surface_ = false; |
717 if (needs_update_surface_) | 724 if (needs_update_surface_) |
718 UpdateSurface(); | 725 UpdateSurface(); |
719 } | 726 } |
720 | 727 |
721 } // namespace ash | 728 } // namespace ash |
OLD | NEW |