| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/gfx/compositor/compositor.h" | 5 #include "ui/gfx/compositor/compositor.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/threading/thread_restrictions.h" | 8 #include "base/threading/thread_restrictions.h" |
| 9 #include "third_party/skia/include/images/SkImageEncoder.h" | 9 #include "third_party/skia/include/images/SkImageEncoder.h" |
| 10 #include "third_party/skia/include/core/SkBitmap.h" | 10 #include "third_party/skia/include/core/SkBitmap.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 command_line->HasSwitch(switches::kUIShowLayerTree); | 121 command_line->HasSwitch(switches::kUIShowLayerTree); |
| 122 settings.refreshRate = test_compositor_enabled ? | 122 settings.refreshRate = test_compositor_enabled ? |
| 123 kTestRefreshRate : kDefaultRefreshRate; | 123 kTestRefreshRate : kDefaultRefreshRate; |
| 124 settings.partialSwapEnabled = | 124 settings.partialSwapEnabled = |
| 125 command_line->HasSwitch(switches::kUIEnablePartialSwap); | 125 command_line->HasSwitch(switches::kUIEnablePartialSwap); |
| 126 #if defined(PER_TILE_PAINTING) | 126 #if defined(PER_TILE_PAINTING) |
| 127 settings.perTilePainting = | 127 settings.perTilePainting = |
| 128 command_line->HasSwitch(switches::kUIEnablePerTilePainting); | 128 command_line->HasSwitch(switches::kUIEnablePerTilePainting); |
| 129 #endif | 129 #endif |
| 130 | 130 |
| 131 #if defined(WEBLAYERTREEVIEW_HAS_INITIALIZE) |
| 132 host_.initialize(this, root_web_layer_, settings); |
| 133 #else |
| 131 host_ = WebKit::WebLayerTreeView::create(this, root_web_layer_, settings); | 134 host_ = WebKit::WebLayerTreeView::create(this, root_web_layer_, settings); |
| 135 #endif |
| 132 root_web_layer_.setAnchorPoint(WebKit::WebFloatPoint(0.f, 0.f)); | 136 root_web_layer_.setAnchorPoint(WebKit::WebFloatPoint(0.f, 0.f)); |
| 133 WidgetSizeChanged(size_); | 137 WidgetSizeChanged(size_); |
| 134 } | 138 } |
| 135 | 139 |
| 136 Compositor::~Compositor() { | 140 Compositor::~Compositor() { |
| 137 // There's a cycle between |root_web_layer_| and |host_|, which results in | 141 // There's a cycle between |root_web_layer_| and |host_|, which results in |
| 138 // leaking and/or crashing. Explicitly set the root layer to NULL so the cycle | 142 // leaking and/or crashing. Explicitly set the root layer to NULL so the cycle |
| 139 // is broken. | 143 // is broken. |
| 140 host_.setRootLayer(NULL); | 144 host_.setRootLayer(NULL); |
| 141 if (root_layer_) | 145 if (root_layer_) |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 if (test_compositor_enabled) { | 275 if (test_compositor_enabled) { |
| 272 ui::TestWebGraphicsContext3D* test_context = | 276 ui::TestWebGraphicsContext3D* test_context = |
| 273 new ui::TestWebGraphicsContext3D(); | 277 new ui::TestWebGraphicsContext3D(); |
| 274 test_context->Initialize(); | 278 test_context->Initialize(); |
| 275 return test_context; | 279 return test_context; |
| 276 } else { | 280 } else { |
| 277 return ContextFactory::GetInstance()->CreateContext(this); | 281 return ContextFactory::GetInstance()->CreateContext(this); |
| 278 } | 282 } |
| 279 } | 283 } |
| 280 | 284 |
| 285 void Compositor::didRebindGraphicsContext(bool success) { |
| 286 } |
| 287 |
| 288 void Compositor::didCommitAndDrawFrame() { |
| 289 } |
| 290 |
| 281 void Compositor::didCompleteSwapBuffers() { | 291 void Compositor::didCompleteSwapBuffers() { |
| 282 NotifyEnd(); | 292 NotifyEnd(); |
| 283 } | 293 } |
| 284 | 294 |
| 285 void Compositor::didRebindGraphicsContext(bool success) { | |
| 286 } | |
| 287 | |
| 288 void Compositor::scheduleComposite() { | 295 void Compositor::scheduleComposite() { |
| 289 ScheduleDraw(); | 296 ScheduleDraw(); |
| 290 } | 297 } |
| 291 | 298 |
| 292 void Compositor::SwizzleRGBAToBGRAAndFlip(unsigned char* pixels, | 299 void Compositor::SwizzleRGBAToBGRAAndFlip(unsigned char* pixels, |
| 293 const gfx::Size& image_size) { | 300 const gfx::Size& image_size) { |
| 294 // Swizzle from RGBA to BGRA | 301 // Swizzle from RGBA to BGRA |
| 295 size_t bitmap_size = 4 * image_size.width() * image_size.height(); | 302 size_t bitmap_size = 4 * image_size.width() * image_size.height(); |
| 296 for(size_t i = 0; i < bitmap_size; i += 4) | 303 for(size_t i = 0; i < bitmap_size; i += 4) |
| 297 std::swap(pixels[i], pixels[i + 2]); | 304 std::swap(pixels[i], pixels[i + 2]); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 327 | 334 |
| 328 COMPOSITOR_EXPORT void DisableTestCompositor() { | 335 COMPOSITOR_EXPORT void DisableTestCompositor() { |
| 329 test_compositor_enabled = false; | 336 test_compositor_enabled = false; |
| 330 } | 337 } |
| 331 | 338 |
| 332 COMPOSITOR_EXPORT bool IsTestCompositorEnabled() { | 339 COMPOSITOR_EXPORT bool IsTestCompositorEnabled() { |
| 333 return test_compositor_enabled; | 340 return test_compositor_enabled; |
| 334 } | 341 } |
| 335 | 342 |
| 336 } // namespace ui | 343 } // namespace ui |
| OLD | NEW |