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

Unified Diff: content/browser/compositor/browser_compositor_output_surface.h

Issue 138903025: Read compositor VSync information from platform, when possible (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 287efe04 Rebase, oshima@ nits. Created 6 years, 10 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
Index: content/browser/compositor/browser_compositor_output_surface.h
diff --git a/content/browser/compositor/browser_compositor_output_surface.h b/content/browser/compositor/browser_compositor_output_surface.h
index bf0e3664ae091b9498ba8223c543c571bfede1d5..7c26b08307b59794015762ebb4831a0d49bfe211 100644
--- a/content/browser/compositor/browser_compositor_output_surface.h
+++ b/content/browser/compositor/browser_compositor_output_surface.h
@@ -6,19 +6,15 @@
#define CONTENT_BROWSER_COMPOSITOR_BROWSER_COMPOSITOR_OUTPUT_SURFACE_H_
#include "base/id_map.h"
-#include "base/memory/weak_ptr.h"
#include "base/threading/non_thread_safe.h"
#include "cc/output/output_surface.h"
#include "content/common/content_export.h"
-
-namespace base { class MessageLoopProxy; }
+#include "ui/compositor/compositor_vsync_manager.h"
namespace cc {
class SoftwareOutputDevice;
}
-namespace ui { class Compositor; }
-
namespace content {
class ContextProviderCommandBuffer;
class ReflectorImpl;
@@ -26,6 +22,7 @@ class WebGraphicsContext3DCommandBufferImpl;
class CONTENT_EXPORT BrowserCompositorOutputSurface
: public cc::OutputSurface,
+ public ui::CompositorVSyncManager::Observer,
public base::NonThreadSafe {
public:
virtual ~BrowserCompositorOutputSurface();
@@ -34,8 +31,12 @@ class CONTENT_EXPORT BrowserCompositorOutputSurface
virtual bool BindToClient(cc::OutputSurfaceClient* client) OVERRIDE;
virtual void Reshape(const gfx::Size& size, float scale_factor) OVERRIDE;
- void OnUpdateVSyncParameters(base::TimeTicks timebase,
- base::TimeDelta interval);
+ // ui::CompositorOutputSurface::Observer implementation.
+ virtual void OnUpdateVSyncParameters(base::TimeTicks timebase,
+ base::TimeDelta interval) OVERRIDE;
+
+ void OnUpdateVSyncParametersFromGpu(base::TimeTicks tiembase,
+ base::TimeDelta interval);
void SetReflector(ReflectorImpl* reflector);
@@ -45,22 +46,19 @@ class CONTENT_EXPORT BrowserCompositorOutputSurface
const scoped_refptr<ContextProviderCommandBuffer>& context,
int surface_id,
IDMap<BrowserCompositorOutputSurface>* output_surface_map,
- base::MessageLoopProxy* compositor_message_loop,
- base::WeakPtr<ui::Compositor> compositor);
+ const scoped_refptr<ui::CompositorVSyncManager>& vsync_manager);
// Constructor used by the software implementation.
BrowserCompositorOutputSurface(
scoped_ptr<cc::SoftwareOutputDevice> software_device,
int surface_id,
IDMap<BrowserCompositorOutputSurface>* output_surface_map,
- base::MessageLoopProxy* compositor_message_loop,
- base::WeakPtr<ui::Compositor> compositor);
+ const scoped_refptr<ui::CompositorVSyncManager>& vsync_manager);
int surface_id_;
IDMap<BrowserCompositorOutputSurface>* output_surface_map_;
- scoped_refptr<base::MessageLoopProxy> compositor_message_loop_;
- base::WeakPtr<ui::Compositor> compositor_;
+ scoped_refptr<ui::CompositorVSyncManager> vsync_manager_;
scoped_refptr<ReflectorImpl> reflector_;
private:

Powered by Google App Engine
This is Rietveld 408576698