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

Side by Side Diff: ui/compositor/compositor.cc

Issue 11348371: cc: Move WebCompositorOutputSurface and related classes into cc/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: forlanding6 Created 8 years 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
« no previous file with comments | « ui/compositor/compositor.h ('k') | webkit/compositor_bindings/compositor_bindings.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/compositor/compositor.h" 5 #include "ui/compositor/compositor.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <deque> 8 #include <deque>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/message_loop.h" 12 #include "base/message_loop.h"
13 #include "base/threading/thread.h" 13 #include "base/threading/thread.h"
14 #include "base/threading/thread_restrictions.h" 14 #include "base/threading/thread_restrictions.h"
15 #include "cc/font_atlas.h" 15 #include "cc/font_atlas.h"
16 #include "cc/input_handler.h" 16 #include "cc/input_handler.h"
17 #include "cc/layer.h" 17 #include "cc/layer.h"
18 #include "cc/layer_tree_host.h" 18 #include "cc/layer_tree_host.h"
19 #include "cc/output_surface.h"
19 #include "cc/thread_impl.h" 20 #include "cc/thread_impl.h"
20 #include "third_party/skia/include/core/SkBitmap.h" 21 #include "third_party/skia/include/core/SkBitmap.h"
21 #include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorOutput Surface.h"
22 #include "ui/compositor/compositor_observer.h" 22 #include "ui/compositor/compositor_observer.h"
23 #include "ui/compositor/compositor_switches.h" 23 #include "ui/compositor/compositor_switches.h"
24 #include "ui/compositor/dip_util.h" 24 #include "ui/compositor/dip_util.h"
25 #include "ui/compositor/layer.h" 25 #include "ui/compositor/layer.h"
26 #include "ui/compositor/test_web_graphics_context_3d.h" 26 #include "ui/compositor/test_web_graphics_context_3d.h"
27 #include "ui/gl/gl_context.h" 27 #include "ui/gl/gl_context.h"
28 #include "ui/gl/gl_implementation.h" 28 #include "ui/gl/gl_implementation.h"
29 #include "ui/gl/gl_surface.h" 29 #include "ui/gl/gl_surface.h"
30 #include "ui/gl/gl_switches.h" 30 #include "ui/gl/gl_switches.h"
31 #include "webkit/gpu/webgraphicscontext3d_in_process_impl.h" 31 #include "webkit/gpu/webgraphicscontext3d_in_process_impl.h"
(...skipping 13 matching lines...) Expand all
45 }; 45 };
46 46
47 base::Thread* g_compositor_thread = NULL; 47 base::Thread* g_compositor_thread = NULL;
48 48
49 bool test_compositor_enabled = false; 49 bool test_compositor_enabled = false;
50 50
51 ui::ContextFactory* g_context_factory = NULL; 51 ui::ContextFactory* g_context_factory = NULL;
52 52
53 const int kCompositorLockTimeoutMs = 67; 53 const int kCompositorLockTimeoutMs = 67;
54 54
55 // Adapts a pure WebGraphicsContext3D into a WebCompositorOutputSurface. 55 // Adapts a pure WebGraphicsContext3D into a cc::OutputSurface.
56 class WebGraphicsContextToOutputSurfaceAdapter 56 class WebGraphicsContextToOutputSurfaceAdapter
57 : public WebKit::WebCompositorOutputSurface { 57 : public cc::OutputSurface {
58 public: 58 public:
59 explicit WebGraphicsContextToOutputSurfaceAdapter( 59 explicit WebGraphicsContextToOutputSurfaceAdapter(
60 WebKit::WebGraphicsContext3D* context) 60 WebKit::WebGraphicsContext3D* context)
61 : context3D_(context), 61 : context3D_(context),
62 client_(NULL) { 62 client_(NULL) {
63 } 63 }
64 64
65 virtual bool bindToClient( 65 virtual bool BindToClient(
66 WebKit::WebCompositorOutputSurfaceClient* client) OVERRIDE { 66 cc::OutputSurfaceClient* client) OVERRIDE {
67 DCHECK(client); 67 DCHECK(client);
68 if (!context3D_->makeContextCurrent()) 68 if (!context3D_->makeContextCurrent())
69 return false; 69 return false;
70 client_ = client; 70 client_ = client;
71 return true; 71 return true;
72 } 72 }
73 73
74 virtual const Capabilities& capabilities() const OVERRIDE { 74 virtual const struct Capabilities& Capabilities() const OVERRIDE {
75 return capabilities_; 75 return capabilities_;
76 } 76 }
77 77
78 virtual WebKit::WebGraphicsContext3D* context3D() const OVERRIDE { 78 virtual WebKit::WebGraphicsContext3D* Context3D() const OVERRIDE {
79 return context3D_.get(); 79 return context3D_.get();
80 } 80 }
81 81
82 virtual void sendFrameToParentCompositor( 82 virtual cc::SoftwareOutputDevice* SoftwareDevice() const OVERRIDE {
83 const WebKit::WebCompositorFrame&) OVERRIDE { 83 return NULL;
84 }
85
86 virtual void SendFrameToParentCompositor(
87 const cc::CompositorFrame&) OVERRIDE {
84 } 88 }
85 89
86 private: 90 private:
87 scoped_ptr<WebKit::WebGraphicsContext3D> context3D_; 91 scoped_ptr<WebKit::WebGraphicsContext3D> context3D_;
88 Capabilities capabilities_; 92 struct Capabilities capabilities_;
89 WebKit::WebCompositorOutputSurfaceClient* client_; 93 cc::OutputSurfaceClient* client_;
90 }; 94 };
91 95
92 class PendingSwap { 96 class PendingSwap {
93 public: 97 public:
94 PendingSwap(SwapType type, ui::PostedSwapQueue* posted_swaps); 98 PendingSwap(SwapType type, ui::PostedSwapQueue* posted_swaps);
95 ~PendingSwap(); 99 ~PendingSwap();
96 100
97 SwapType type() const { return type_; } 101 SwapType type() const { return type_; }
98 bool posted() const { return posted_; } 102 bool posted() const { return posted_; }
99 103
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 // TODO(wjmaclean) Remove this when GL initialisation cleaned up. 146 // TODO(wjmaclean) Remove this when GL initialisation cleaned up.
143 base::ThreadRestrictions::ScopedAllowIO allow_io; 147 base::ThreadRestrictions::ScopedAllowIO allow_io;
144 if (!gfx::GLSurface::InitializeOneOff() || 148 if (!gfx::GLSurface::InitializeOneOff() ||
145 gfx::GetGLImplementation() == gfx::kGLImplementationNone) { 149 gfx::GetGLImplementation() == gfx::kGLImplementationNone) {
146 LOG(ERROR) << "Could not load the GL bindings"; 150 LOG(ERROR) << "Could not load the GL bindings";
147 return false; 151 return false;
148 } 152 }
149 return true; 153 return true;
150 } 154 }
151 155
152 WebKit::WebCompositorOutputSurface* DefaultContextFactory::CreateOutputSurface( 156 cc::OutputSurface* DefaultContextFactory::CreateOutputSurface(
153 Compositor* compositor) { 157 Compositor* compositor) {
154 return new WebGraphicsContextToOutputSurfaceAdapter( 158 return new WebGraphicsContextToOutputSurfaceAdapter(
155 CreateContextCommon(compositor, false)); 159 CreateContextCommon(compositor, false));
156 } 160 }
157 161
158 WebKit::WebGraphicsContext3D* DefaultContextFactory::CreateOffscreenContext() { 162 WebKit::WebGraphicsContext3D* DefaultContextFactory::CreateOffscreenContext() {
159 return CreateContextCommon(NULL, true); 163 return CreateContextCommon(NULL, true);
160 } 164 }
161 165
162 void DefaultContextFactory::RemoveCompositor(Compositor* compositor) { 166 void DefaultContextFactory::RemoveCompositor(Compositor* compositor) {
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 disable_schedule_composite_ = true; 494 disable_schedule_composite_ = true;
491 if (root_layer_) 495 if (root_layer_)
492 root_layer_->SendDamagedRects(); 496 root_layer_->SendDamagedRects();
493 disable_schedule_composite_ = false; 497 disable_schedule_composite_ = false;
494 } 498 }
495 499
496 void Compositor::applyScrollAndScale(gfx::Vector2d scrollDelta, 500 void Compositor::applyScrollAndScale(gfx::Vector2d scrollDelta,
497 float pageScale) { 501 float pageScale) {
498 } 502 }
499 503
500 scoped_ptr<WebKit::WebCompositorOutputSurface> 504 scoped_ptr<cc::OutputSurface> Compositor::createOutputSurface() {
501 Compositor::createOutputSurface() {
502 if (test_compositor_enabled) { 505 if (test_compositor_enabled) {
503 ui::TestWebGraphicsContext3D* test_context = 506 ui::TestWebGraphicsContext3D* test_context =
504 new ui::TestWebGraphicsContext3D(); 507 new ui::TestWebGraphicsContext3D();
505 test_context->Initialize(); 508 test_context->Initialize();
506 return scoped_ptr<WebKit::WebCompositorOutputSurface>( 509 return scoped_ptr<cc::OutputSurface>(
507 new WebGraphicsContextToOutputSurfaceAdapter(test_context)); 510 new WebGraphicsContextToOutputSurfaceAdapter(test_context));
508 } else { 511 } else {
509 return scoped_ptr<WebKit::WebCompositorOutputSurface>( 512 return scoped_ptr<cc::OutputSurface>(
510 ContextFactory::GetInstance()->CreateOutputSurface(this)); 513 ContextFactory::GetInstance()->CreateOutputSurface(this));
511 } 514 }
512 } 515 }
513 516
514 void Compositor::didRecreateOutputSurface(bool success) { 517 void Compositor::didRecreateOutputSurface(bool success) {
515 } 518 }
516 519
517 scoped_ptr<cc::InputHandler> Compositor::createInputHandler() { 520 scoped_ptr<cc::InputHandler> Compositor::createInputHandler() {
518 return scoped_ptr<cc::InputHandler>(); 521 return scoped_ptr<cc::InputHandler>();
519 } 522 }
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 600
598 COMPOSITOR_EXPORT void DisableTestCompositor() { 601 COMPOSITOR_EXPORT void DisableTestCompositor() {
599 test_compositor_enabled = false; 602 test_compositor_enabled = false;
600 } 603 }
601 604
602 COMPOSITOR_EXPORT bool IsTestCompositorEnabled() { 605 COMPOSITOR_EXPORT bool IsTestCompositorEnabled() {
603 return test_compositor_enabled; 606 return test_compositor_enabled;
604 } 607 }
605 608
606 } // namespace ui 609 } // namespace ui
OLDNEW
« no previous file with comments | « ui/compositor/compositor.h ('k') | webkit/compositor_bindings/compositor_bindings.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698