summaryrefslogtreecommitdiffstats
path: root/cc/output
diff options
context:
space:
mode:
authorboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 09:03:27 +0000
committerboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 09:03:27 +0000
commit2b154b2a2a4c2adf2d145cddbae49767acc67633 (patch)
tree2966cd155581d9786b1ea892dcd438696b1ef2c7 /cc/output
parent8d0e6fe215548a3c19a569d300cc0f01e2e1f2ac (diff)
downloadchromium_src-2b154b2a2a4c2adf2d145cddbae49767acc67633.zip
chromium_src-2b154b2a2a4c2adf2d145cddbae49767acc67633.tar.gz
chromium_src-2b154b2a2a4c2adf2d145cddbae49767acc67633.tar.bz2
cc::OutputSurfaceClient::DeferredInitialize
SynchronousCompositorOutputSurface first starts in software only mode, then cc::OutputSurfaceClient::InitializeForGL is called to initialize the GL parts. BUG=230197 Review URL: https://chromiumcodereview.appspot.com/14772021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204771 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/output')
-rw-r--r--cc/output/output_surface_client.h7
-rw-r--r--cc/output/output_surface_unittest.cc4
2 files changed, 11 insertions, 0 deletions
diff --git a/cc/output/output_surface_client.h b/cc/output/output_surface_client.h
index 26edec8..dc68e96 100644
--- a/cc/output/output_surface_client.h
+++ b/cc/output/output_surface_client.h
@@ -5,8 +5,10 @@
#ifndef CC_OUTPUT_OUTPUT_SURFACE_CLIENT_H_
#define CC_OUTPUT_OUTPUT_SURFACE_CLIENT_H_
+#include "base/memory/ref_counted.h"
#include "base/time.h"
#include "cc/base/cc_export.h"
+#include "cc/output/context_provider.h"
#include "ui/gfx/rect.h"
namespace gfx {
@@ -19,6 +21,11 @@ class CompositorFrameAck;
class CC_EXPORT OutputSurfaceClient {
public:
+ // Called to synchronously re-initialize using the Context3D. Upon returning
+ // the compositor should be able to draw using GL what was previously
+ // committed.
+ virtual bool DeferredInitialize(
+ scoped_refptr<ContextProvider> offscreen_context_provider) = 0;
virtual void SetNeedsRedrawRect(gfx::Rect damage_rect) = 0;
virtual void OnVSyncParametersChanged(base::TimeTicks timebase,
base::TimeDelta interval) = 0;
diff --git a/cc/output/output_surface_unittest.cc b/cc/output/output_surface_unittest.cc
index d54afe2..1d365d9 100644
--- a/cc/output/output_surface_unittest.cc
+++ b/cc/output/output_surface_unittest.cc
@@ -28,6 +28,10 @@ class TestOutputSurface : public OutputSurface {
class FakeOutputSurfaceClient : public OutputSurfaceClient {
public:
+ virtual bool DeferredInitialize(
+ scoped_refptr<ContextProvider> offscreen_context_provider) OVERRIDE {
+ return true;
+ }
virtual void SetNeedsRedrawRect(gfx::Rect damage_rect) OVERRIDE {}
virtual void OnVSyncParametersChanged(base::TimeTicks timebase,
base::TimeDelta interval) OVERRIDE {}