| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "android_webview/browser/browser_view_renderer_impl.h" | 5 #include "android_webview/browser/browser_view_renderer_impl.h" |
| 6 | 6 |
| 7 #include <android/bitmap.h> | 7 #include <android/bitmap.h> |
| 8 | 8 |
| 9 #include "android_webview/common/renderer_picture_map.h" | 9 #include "android_webview/common/renderer_picture_map.h" |
| 10 #include "android_webview/public/browser/draw_gl.h" | 10 #include "android_webview/public/browser/draw_gl.h" |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 BrowserViewRendererImpl::BrowserViewRendererImpl( | 129 BrowserViewRendererImpl::BrowserViewRendererImpl( |
| 130 BrowserViewRenderer::Client* client, | 130 BrowserViewRenderer::Client* client, |
| 131 JavaHelper* java_helper) | 131 JavaHelper* java_helper) |
| 132 : client_(client), | 132 : client_(client), |
| 133 java_helper_(java_helper), | 133 java_helper_(java_helper), |
| 134 view_renderer_host_(new ViewRendererHost(NULL, this)), | 134 view_renderer_host_(new ViewRendererHost(NULL, this)), |
| 135 ALLOW_THIS_IN_INITIALIZER_LIST(compositor_(Compositor::Create(this))), | 135 ALLOW_THIS_IN_INITIALIZER_LIST(compositor_(Compositor::Create(this))), |
| 136 view_clip_layer_(cc::Layer::create()), | 136 view_clip_layer_(cc::Layer::create()), |
| 137 transform_layer_(cc::Layer::create()), | 137 transform_layer_(cc::Layer::create()), |
| 138 scissor_clip_layer_(cc::Layer::create()), | 138 scissor_clip_layer_(cc::Layer::create()), |
| 139 view_attached_(false), |
| 139 view_visible_(false), | 140 view_visible_(false), |
| 140 compositor_visible_(false), | 141 compositor_visible_(false), |
| 141 is_composite_pending_(false), | 142 is_composite_pending_(false), |
| 142 dpi_scale_(1.0f), | 143 dpi_scale_(1.0f), |
| 143 page_scale_(1.0f), | 144 page_scale_(1.0f), |
| 144 on_new_picture_mode_(kOnNewPictureDisabled), | 145 on_new_picture_mode_(kOnNewPictureDisabled), |
| 145 last_frame_context_(NULL), | 146 last_frame_context_(NULL), |
| 146 web_contents_(NULL), | 147 web_contents_(NULL), |
| 147 update_frame_info_callback_( | 148 update_frame_info_callback_( |
| 148 base::Bind(&BrowserViewRendererImpl::OnFrameInfoUpdated, | 149 base::Bind(&BrowserViewRendererImpl::OnFrameInfoUpdated, |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 view_visible_ = window_visible && view_visible; | 403 view_visible_ = window_visible && view_visible; |
| 403 Invalidate(); | 404 Invalidate(); |
| 404 } | 405 } |
| 405 | 406 |
| 406 void BrowserViewRendererImpl::OnSizeChanged(int width, int height) { | 407 void BrowserViewRendererImpl::OnSizeChanged(int width, int height) { |
| 407 view_size_ = gfx::Size(width, height); | 408 view_size_ = gfx::Size(width, height); |
| 408 view_clip_layer_->setBounds(view_size_); | 409 view_clip_layer_->setBounds(view_size_); |
| 409 } | 410 } |
| 410 | 411 |
| 411 void BrowserViewRendererImpl::OnAttachedToWindow(int width, int height) { | 412 void BrowserViewRendererImpl::OnAttachedToWindow(int width, int height) { |
| 413 view_attached_ = true; |
| 412 view_size_ = gfx::Size(width, height); | 414 view_size_ = gfx::Size(width, height); |
| 413 view_clip_layer_->setBounds(view_size_); | 415 view_clip_layer_->setBounds(view_size_); |
| 414 } | 416 } |
| 415 | 417 |
| 416 void BrowserViewRendererImpl::OnDetachedFromWindow() { | 418 void BrowserViewRendererImpl::OnDetachedFromWindow() { |
| 419 view_attached_ = false; |
| 417 view_visible_ = false; | 420 view_visible_ = false; |
| 418 SetCompositorVisibility(false); | 421 SetCompositorVisibility(false); |
| 419 } | 422 } |
| 420 | 423 |
| 424 bool BrowserViewRendererImpl::IsAttachedToWindow() { |
| 425 return view_attached_; |
| 426 } |
| 427 |
| 428 bool BrowserViewRendererImpl::IsViewVisible() { |
| 429 return view_visible_; |
| 430 } |
| 431 |
| 432 gfx::Rect BrowserViewRendererImpl::GetScreenRect() { |
| 433 return gfx::Rect(client_->GetLocationOnScreen(), view_size_); |
| 434 } |
| 435 |
| 421 void BrowserViewRendererImpl::ScheduleComposite() { | 436 void BrowserViewRendererImpl::ScheduleComposite() { |
| 422 TRACE_EVENT0("android_webview", "BrowserViewRendererImpl::ScheduleComposite"); | 437 TRACE_EVENT0("android_webview", "BrowserViewRendererImpl::ScheduleComposite"); |
| 423 | 438 |
| 424 if (is_composite_pending_) | 439 if (is_composite_pending_) |
| 425 return; | 440 return; |
| 426 | 441 |
| 427 is_composite_pending_ = true; | 442 is_composite_pending_ = true; |
| 428 Invalidate(); | 443 Invalidate(); |
| 429 } | 444 } |
| 430 | 445 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 | 527 |
| 513 void BrowserViewRendererImpl::OnFrameInfoUpdated( | 528 void BrowserViewRendererImpl::OnFrameInfoUpdated( |
| 514 const gfx::SizeF& content_size, | 529 const gfx::SizeF& content_size, |
| 515 const gfx::Vector2dF& scroll_offset, | 530 const gfx::Vector2dF& scroll_offset, |
| 516 float page_scale_factor) { | 531 float page_scale_factor) { |
| 517 page_scale_ = page_scale_factor; | 532 page_scale_ = page_scale_factor; |
| 518 content_size_css_ = content_size; | 533 content_size_css_ = content_size; |
| 519 } | 534 } |
| 520 | 535 |
| 521 } // namespace android_webview | 536 } // namespace android_webview |
| OLD | NEW |