| 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 "components/exo/surface.h" | 5 #include "components/exo/surface.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 return HTNOWHERE; | 101 return HTNOWHERE; |
| 102 } | 102 } |
| 103 bool ShouldDescendIntoChildForEventHandling( | 103 bool ShouldDescendIntoChildForEventHandling( |
| 104 aura::Window* child, | 104 aura::Window* child, |
| 105 const gfx::Point& location) override { | 105 const gfx::Point& location) override { |
| 106 return true; | 106 return true; |
| 107 } | 107 } |
| 108 bool CanFocus() override { return true; } | 108 bool CanFocus() override { return true; } |
| 109 void OnCaptureLost() override {} | 109 void OnCaptureLost() override {} |
| 110 void OnPaint(const ui::PaintContext& context) override {} | 110 void OnPaint(const ui::PaintContext& context) override {} |
| 111 void OnDeviceScaleFactorChanged(float device_scale_factor) override {} | 111 void OnDeviceScaleFactorChanged(float device_scale_factor) override { |
| 112 surface_->SetDeviceScaleFactor(device_scale_factor); |
| 113 } |
| 112 void OnWindowDestroying(aura::Window* window) override {} | 114 void OnWindowDestroying(aura::Window* window) override {} |
| 113 void OnWindowDestroyed(aura::Window* window) override { delete this; } | 115 void OnWindowDestroyed(aura::Window* window) override { delete this; } |
| 114 void OnWindowTargetVisibilityChanged(bool visible) override {} | 116 void OnWindowTargetVisibilityChanged(bool visible) override {} |
| 115 bool HasHitTestMask() const override { return surface_->HasHitTestMask(); } | 117 bool HasHitTestMask() const override { return surface_->HasHitTestMask(); } |
| 116 void GetHitTestMask(gfx::Path* mask) const override { | 118 void GetHitTestMask(gfx::Path* mask) const override { |
| 117 surface_->GetHitTestMask(mask); | 119 surface_->GetHitTestMask(mask); |
| 118 } | 120 } |
| 119 void OnKeyEvent(ui::KeyEvent* event) override { | 121 void OnKeyEvent(ui::KeyEvent* event) override { |
| 120 // Propagates the key event upto the top-level views Widget so that we can | 122 // Propagates the key event upto the top-level views Widget so that we can |
| 121 // trigger proper events in the views/ash level there. Event handling for | 123 // trigger proper events in the views/ash level there. Event handling for |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 | 400 |
| 399 pending_state_.blend_mode = blend_mode; | 401 pending_state_.blend_mode = blend_mode; |
| 400 } | 402 } |
| 401 | 403 |
| 402 void Surface::SetAlpha(float alpha) { | 404 void Surface::SetAlpha(float alpha) { |
| 403 TRACE_EVENT1("exo", "Surface::SetAlpha", "alpha", alpha); | 405 TRACE_EVENT1("exo", "Surface::SetAlpha", "alpha", alpha); |
| 404 | 406 |
| 405 pending_state_.alpha = alpha; | 407 pending_state_.alpha = alpha; |
| 406 } | 408 } |
| 407 | 409 |
| 410 void Surface::SetDeviceScaleFactor(float device_scale_factor) { |
| 411 device_scale_factor_ = device_scale_factor; |
| 412 } |
| 413 |
| 408 void Surface::Commit() { | 414 void Surface::Commit() { |
| 409 TRACE_EVENT0("exo", "Surface::Commit"); | 415 TRACE_EVENT0("exo", "Surface::Commit"); |
| 410 | 416 |
| 411 needs_commit_surface_hierarchy_ = true; | 417 needs_commit_surface_hierarchy_ = true; |
| 412 | 418 |
| 413 if (state_ != pending_state_) | 419 if (state_ != pending_state_) |
| 414 has_pending_layer_changes_ = true; | 420 has_pending_layer_changes_ = true; |
| 415 | 421 |
| 416 if (has_pending_contents_) { | 422 if (has_pending_contents_) { |
| 417 if (pending_buffer_.buffer()) { | 423 if (pending_buffer_.buffer()) { |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 840 cc::CompositorFrame frame; | 846 cc::CompositorFrame frame; |
| 841 // If we commit while we don't have an active BeginFrame, we acknowledge a | 847 // If we commit while we don't have an active BeginFrame, we acknowledge a |
| 842 // manual one. | 848 // manual one. |
| 843 if (current_begin_frame_ack_.sequence_number == | 849 if (current_begin_frame_ack_.sequence_number == |
| 844 cc::BeginFrameArgs::kInvalidFrameNumber) { | 850 cc::BeginFrameArgs::kInvalidFrameNumber) { |
| 845 current_begin_frame_ack_ = cc::BeginFrameAck::CreateManualAckWithDamage(); | 851 current_begin_frame_ack_ = cc::BeginFrameAck::CreateManualAckWithDamage(); |
| 846 } else { | 852 } else { |
| 847 current_begin_frame_ack_.has_damage = true; | 853 current_begin_frame_ack_.has_damage = true; |
| 848 } | 854 } |
| 849 frame.metadata.begin_frame_ack = current_begin_frame_ack_; | 855 frame.metadata.begin_frame_ack = current_begin_frame_ack_; |
| 856 frame.metadata.device_scale_factor = device_scale_factor_; |
| 850 | 857 |
| 851 if (current_resource_.id) { | 858 if (current_resource_.id) { |
| 852 // Texture quad is only needed if buffer is not fully transparent. | 859 // Texture quad is only needed if buffer is not fully transparent. |
| 853 if (state_.alpha) { | 860 if (state_.alpha) { |
| 854 cc::TextureDrawQuad* texture_quad = | 861 cc::TextureDrawQuad* texture_quad = |
| 855 render_pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>(); | 862 render_pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>(); |
| 856 float vertex_opacity[4] = {1.0, 1.0, 1.0, 1.0}; | 863 float vertex_opacity[4] = {1.0, 1.0, 1.0, 1.0}; |
| 857 gfx::Rect opaque_rect; | 864 gfx::Rect opaque_rect; |
| 858 if (!current_resource_has_alpha_ || | 865 if (!current_resource_has_alpha_ || |
| 859 state_.blend_mode == SkBlendMode::kSrc || | 866 state_.blend_mode == SkBlendMode::kSrc || |
| (...skipping 16 matching lines...) Expand all Loading... |
| 876 render_pass->CreateAndAppendDrawQuad<cc::SolidColorDrawQuad>(); | 883 render_pass->CreateAndAppendDrawQuad<cc::SolidColorDrawQuad>(); |
| 877 solid_quad->SetNew(quad_state, quad_rect, quad_rect, SK_ColorBLACK, false); | 884 solid_quad->SetNew(quad_state, quad_rect, quad_rect, SK_ColorBLACK, false); |
| 878 } | 885 } |
| 879 | 886 |
| 880 frame.render_pass_list.push_back(std::move(render_pass)); | 887 frame.render_pass_list.push_back(std::move(render_pass)); |
| 881 compositor_frame_sink_holder_->GetCompositorFrameSink() | 888 compositor_frame_sink_holder_->GetCompositorFrameSink() |
| 882 ->SubmitCompositorFrame(local_surface_id_, std::move(frame)); | 889 ->SubmitCompositorFrame(local_surface_id_, std::move(frame)); |
| 883 } | 890 } |
| 884 | 891 |
| 885 } // namespace exo | 892 } // namespace exo |
| OLD | NEW |