Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: android_webview/browser/hardware_renderer.cc

Issue 368273008: [WebView] Fix issue with transparent background. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/hardware_renderer.h" 5 #include "android_webview/browser/hardware_renderer.h"
6 6
7 #include "android_webview/browser/aw_gl_surface.h" 7 #include "android_webview/browser/aw_gl_surface.h"
8 #include "android_webview/browser/deferred_gpu_command_service.h" 8 #include "android_webview/browser/deferred_gpu_command_service.h"
9 #include "android_webview/browser/parent_output_surface.h" 9 #include "android_webview/browser/parent_output_surface.h"
10 #include "android_webview/browser/shared_renderer_state.h" 10 #include "android_webview/browser/shared_renderer_state.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 settings.allow_antialiasing = false; 88 settings.allow_antialiasing = false;
89 settings.highp_threshold_min = 2048; 89 settings.highp_threshold_min = 2048;
90 90
91 // Webview does not own the surface so should not clear it. 91 // Webview does not own the surface so should not clear it.
92 settings.should_clear_root_render_pass = false; 92 settings.should_clear_root_render_pass = false;
93 93
94 layer_tree_host_ = 94 layer_tree_host_ =
95 cc::LayerTreeHost::CreateSingleThreaded(this, this, NULL, settings); 95 cc::LayerTreeHost::CreateSingleThreaded(this, this, NULL, settings);
96 layer_tree_host_->SetRootLayer(root_layer_); 96 layer_tree_host_->SetRootLayer(root_layer_);
97 layer_tree_host_->SetLayerTreeHostClientReady(); 97 layer_tree_host_->SetLayerTreeHostClientReady();
98 layer_tree_host_->set_has_transparent_background(true);
98 } 99 }
99 100
100 HardwareRenderer::~HardwareRenderer() { 101 HardwareRenderer::~HardwareRenderer() {
101 // Must reset everything before |resource_collection_| to ensure all 102 // Must reset everything before |resource_collection_| to ensure all
102 // resources are returned before resetting |resource_collection_| client. 103 // resources are returned before resetting |resource_collection_| client.
103 layer_tree_host_.reset(); 104 layer_tree_host_.reset();
104 root_layer_ = NULL; 105 root_layer_ = NULL;
105 delegated_layer_ = NULL; 106 delegated_layer_ = NULL;
106 frame_provider_ = NULL; 107 frame_provider_ = NULL;
107 if (resource_collection_.get()) { 108 if (resource_collection_.get()) {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 // physical pixels and set our browser CC device_scale_factor to 1, so this 160 // physical pixels and set our browser CC device_scale_factor to 1, so this
160 // suppresses the transform. 161 // suppresses the transform.
161 input->frame.delegated_frame_data->device_scale_factor = 1.0f; 162 input->frame.delegated_frame_data->device_scale_factor = 1.0f;
162 163
163 gfx::Size frame_size = 164 gfx::Size frame_size =
164 input->frame.delegated_frame_data->render_pass_list.back() 165 input->frame.delegated_frame_data->render_pass_list.back()
165 ->output_rect.size(); 166 ->output_rect.size();
166 bool size_changed = frame_size != frame_size_; 167 bool size_changed = frame_size != frame_size_;
167 frame_size_ = frame_size; 168 frame_size_ = frame_size;
168 scroll_offset_ = input->scroll_offset; 169 scroll_offset_ = input->scroll_offset;
169 layer_tree_host_->set_has_transparent_background(
170 input->has_transparent_background);
171 170
172 if (!frame_provider_ || size_changed) { 171 if (!frame_provider_ || size_changed) {
173 if (delegated_layer_) { 172 if (delegated_layer_) {
174 delegated_layer_->RemoveFromParent(); 173 delegated_layer_->RemoveFromParent();
175 } 174 }
176 175
177 frame_provider_ = new cc::DelegatedFrameProvider( 176 frame_provider_ = new cc::DelegatedFrameProvider(
178 resource_collection_.get(), input->frame.delegated_frame_data.Pass()); 177 resource_collection_.get(), input->frame.delegated_frame_data.Pass());
179 178
180 delegated_layer_ = cc::DelegatedRendererLayer::Create(frame_provider_); 179 delegated_layer_ = cc::DelegatedRendererLayer::Create(frame_provider_);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 224 }
226 225
227 void HardwareRenderer::UnusedResourcesAreAvailable() { 226 void HardwareRenderer::UnusedResourcesAreAvailable() {
228 cc::ReturnedResourceArray returned_resources; 227 cc::ReturnedResourceArray returned_resources;
229 resource_collection_->TakeUnusedResourcesForChildCompositor( 228 resource_collection_->TakeUnusedResourcesForChildCompositor(
230 &returned_resources); 229 &returned_resources);
231 shared_renderer_state_->InsertReturnedResources(returned_resources); 230 shared_renderer_state_->InsertReturnedResources(returned_resources);
232 } 231 }
233 232
234 } // namespace android_webview 233 } // namespace android_webview
OLDNEW
« no previous file with comments | « android_webview/browser/browser_view_renderer.cc ('k') | android_webview/browser/shared_renderer_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698