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

Unified Diff: cc/gl_renderer.cc

Issue 11316128: Send compositor frame IPC with metadata. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix compile errors on mac/win 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/gl_renderer.h ('k') | cc/gl_renderer_pixeltest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/gl_renderer.cc
diff --git a/cc/gl_renderer.cc b/cc/gl_renderer.cc
index e5178ea84be199a4e5b3eddfd5fadc421e8ea770..bb4ec4d3ee99d55d33be2886d435eee999f986cd 100644
--- a/cc/gl_renderer.cc
+++ b/cc/gl_renderer.cc
@@ -9,8 +9,11 @@
#include "base/string_split.h"
#include "base/string_util.h"
#include "build/build_config.h"
+#include "cc/compositor_frame.h"
+#include "cc/compositor_frame_metadata.h"
#include "cc/damage_tracker.h"
#include "cc/geometry_binding.h"
+#include "cc/gl_frame_data.h"
#include "cc/layer_quad.h"
#include "cc/math_util.h"
#include "cc/priority_calculator.h"
@@ -58,20 +61,21 @@ bool needsIOSurfaceReadbackWorkaround()
} // anonymous namespace
-scoped_ptr<GLRenderer> GLRenderer::create(RendererClient* client, ResourceProvider* resourceProvider)
+scoped_ptr<GLRenderer> GLRenderer::create(RendererClient* client, OutputSurface* outputSurface, ResourceProvider* resourceProvider)
{
- scoped_ptr<GLRenderer> renderer(make_scoped_ptr(new GLRenderer(client, resourceProvider)));
+ scoped_ptr<GLRenderer> renderer(make_scoped_ptr(new GLRenderer(client, outputSurface, resourceProvider)));
if (!renderer->initialize())
return scoped_ptr<GLRenderer>();
return renderer.Pass();
}
-GLRenderer::GLRenderer(RendererClient* client, ResourceProvider* resourceProvider)
+GLRenderer::GLRenderer(RendererClient* client, OutputSurface* outputSurface, ResourceProvider* resourceProvider)
: DirectRenderer(client, resourceProvider)
, m_offscreenFramebufferId(0)
, m_sharedGeometryQuad(gfx::RectF(-0.5f, -0.5f, 1.0f, 1.0f))
- , m_context(resourceProvider->graphicsContext3D())
+ , m_outputSurface(outputSurface)
+ , m_context(outputSurface->Context3D())
, m_isViewportChanged(false)
, m_isBackbufferDiscarded(false)
, m_discardBackbufferWhenNotVisible(false)
@@ -1167,6 +1171,14 @@ void GLRenderer::finishDrawingFrame(DrawingFrame& frame)
GLC(m_context, m_context->disable(GL_BLEND));
m_blendShadow = false;
+
+ if (settings().compositorFrameMessage) {
+ CompositorFrame compositor_frame;
+ compositor_frame.metadata = m_client->makeCompositorFrameMetadata();
+ compositor_frame.gl_frame_data.reset(new GLFrameData());
+ // FIXME: Fill in GLFrameData when we implement swapping with it.
+ m_outputSurface->SendFrameToParentCompositor(compositor_frame);
+ }
}
void GLRenderer::finishDrawingQuadList()
« no previous file with comments | « cc/gl_renderer.h ('k') | cc/gl_renderer_pixeltest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698