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

Unified Diff: ui/compositor/compositor.cc

Issue 11967033: [CLOSED] In-browser software compositing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix the lack SkCanvas::clear scissoring. Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/x/x11_util.h ('k') | ui/compositor/compositor_switches.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/compositor/compositor.cc
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
index 9abe91e697d4ecbbf26fc58878ea1194457f2691..4f44a91f02cc6832f512cc73213305d603dc980e 100644
--- a/ui/compositor/compositor.cc
+++ b/ui/compositor/compositor.cc
@@ -17,7 +17,7 @@
#include "cc/input_handler.h"
#include "cc/layer.h"
#include "cc/layer_tree_host.h"
-#include "cc/output_surface.h"
+#include "cc/output_surface_impl.h"
#include "cc/thread_impl.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/compositor/compositor_observer.h"
@@ -53,46 +53,6 @@ ui::ContextFactory* g_context_factory = NULL;
const int kCompositorLockTimeoutMs = 67;
-// Adapts a pure WebGraphicsContext3D into a cc::OutputSurface.
-class WebGraphicsContextToOutputSurfaceAdapter
- : public cc::OutputSurface {
- public:
- explicit WebGraphicsContextToOutputSurfaceAdapter(
- WebKit::WebGraphicsContext3D* context)
- : context3D_(context),
- client_(NULL) {
- }
-
- virtual bool BindToClient(
- cc::OutputSurfaceClient* client) OVERRIDE {
- DCHECK(client);
- if (!context3D_->makeContextCurrent())
- return false;
- client_ = client;
- return true;
- }
-
- virtual const struct Capabilities& Capabilities() const OVERRIDE {
- return capabilities_;
- }
-
- virtual WebKit::WebGraphicsContext3D* Context3D() const OVERRIDE {
- return context3D_.get();
- }
-
- virtual cc::SoftwareOutputDevice* SoftwareDevice() const OVERRIDE {
- return NULL;
- }
-
- virtual void SendFrameToParentCompositor(cc::CompositorFrame*) OVERRIDE {
- }
-
- private:
- scoped_ptr<WebKit::WebGraphicsContext3D> context3D_;
- struct Capabilities capabilities_;
- cc::OutputSurfaceClient* client_;
-};
-
class PendingSwap {
public:
PendingSwap(SwapType type, ui::PostedSwapQueue* posted_swaps);
@@ -155,8 +115,8 @@ bool DefaultContextFactory::Initialize() {
cc::OutputSurface* DefaultContextFactory::CreateOutputSurface(
Compositor* compositor) {
- return new WebGraphicsContextToOutputSurfaceAdapter(
- CreateContextCommon(compositor, false));
+ return new cc::OutputSurfaceImpl(
+ make_scoped_ptr(CreateContextCommon(compositor, false)));
}
WebKit::WebGraphicsContext3D* DefaultContextFactory::CreateOffscreenContext() {
@@ -318,7 +278,8 @@ Compositor::Compositor(CompositorDelegate* delegate,
settings.initialDebugState.showDebugBorders =
command_line->HasSwitch(switches::kUIShowLayerBorders);
settings.partialSwapEnabled =
- command_line->HasSwitch(switches::kUIEnablePartialSwap);
+ command_line->HasSwitch(switches::kUIEnablePartialSwap) ||
+ command_line->HasSwitch(switches::kUIEnableSoftwareCompositing);
settings.perTilePaintingEnabled =
command_line->HasSwitch(switches::kUIEnablePerTilePainting);
@@ -507,11 +468,12 @@ void Compositor::applyScrollAndScale(gfx::Vector2d scrollDelta,
scoped_ptr<cc::OutputSurface> Compositor::createOutputSurface() {
if (test_compositor_enabled) {
- ui::TestWebGraphicsContext3D* test_context =
- new ui::TestWebGraphicsContext3D();
- test_context->Initialize();
+ scoped_ptr<ui::TestWebGraphicsContext3D> context3d(
+ new ui::TestWebGraphicsContext3D);
+ context3d->Initialize();
return scoped_ptr<cc::OutputSurface>(
- new WebGraphicsContextToOutputSurfaceAdapter(test_context));
+ new cc::OutputSurfaceImpl(
+ context3d.PassAs<WebKit::WebGraphicsContext3D>()));
} else {
return scoped_ptr<cc::OutputSurface>(
ContextFactory::GetInstance()->CreateOutputSurface(this));
« no previous file with comments | « ui/base/x/x11_util.h ('k') | ui/compositor/compositor_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698