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 |