Index: cc/gl_renderer.cc |
diff --git a/cc/gl_renderer.cc b/cc/gl_renderer.cc |
index 6a4413d1383695ea849c3a213d54711011dc55f9..6b31e5a9ee055d1322b2055c989d98d8503be9f8 100644 |
--- a/cc/gl_renderer.cc |
+++ b/cc/gl_renderer.cc |
@@ -140,8 +140,6 @@ bool GLRenderer::initialize() |
if (m_capabilities.usingGpuMemoryManager) |
m_context->setMemoryAllocationChangedCallbackCHROMIUM(this); |
- m_capabilities.usingDiscardBackbuffer = extensions.count("GL_CHROMIUM_discard_backbuffer"); |
- |
m_capabilities.usingEglImage = extensions.count("GL_OES_EGL_image_external"); |
m_capabilities.maxTextureSize = m_resourceProvider->maxTextureSize(); |
@@ -257,7 +255,7 @@ void GLRenderer::beginDrawingFrame(DrawingFrame& frame) |
// can leave the window at the wrong size if we never draw and the proper |
// viewport size is never set. |
m_isViewportChanged = false; |
- m_context->reshape(viewportWidth(), viewportHeight()); |
+ m_outputSurface->Reshape(gfx::Size(viewportWidth(), viewportHeight())); |
} |
makeContextCurrent(); |
@@ -1216,8 +1214,6 @@ void GLRenderer::finishDrawingFrame(DrawingFrame& frame) |
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); |
} |
} |
@@ -1343,11 +1339,9 @@ bool GLRenderer::swapBuffers() |
// If supported, we can save significant bandwidth by only swapping the damaged/scissored region (clamped to the viewport) |
m_swapBufferRect.Intersect(gfx::Rect(gfx::Point(), viewportSize())); |
int flippedYPosOfRectBottom = viewportHeight() - m_swapBufferRect.y() - m_swapBufferRect.height(); |
- m_context->postSubBufferCHROMIUM(m_swapBufferRect.x(), flippedYPosOfRectBottom, m_swapBufferRect.width(), m_swapBufferRect.height()); |
+ m_outputSurface->PostSubBuffer(gfx::Rect(m_swapBufferRect.x(), flippedYPosOfRectBottom, m_swapBufferRect.width(), m_swapBufferRect.height())); |
} else { |
- // Note that currently this has the same effect as swapBuffers; we should |
- // consider exposing a different entry point on WebGraphicsContext3D. |
- m_context->prepareTexture(); |
+ m_outputSurface->SwapBuffers(); |
} |
m_swapBufferRect = gfx::Rect(); |
@@ -1363,6 +1357,10 @@ bool GLRenderer::swapBuffers() |
return true; |
} |
+void GLRenderer::receiveCompositorFrameAck(const CompositorFrameAck& ack) { |
+ onSwapBuffersComplete(); |
+} |
+ |
void GLRenderer::onSwapBuffersComplete() |
{ |
m_client->onSwapBuffersComplete(); |
@@ -1427,10 +1425,8 @@ void GLRenderer::discardBackbuffer() |
if (m_isBackbufferDiscarded) |
return; |
- if (!m_capabilities.usingDiscardBackbuffer) |
- return; |
+ m_outputSurface->DiscardBackbuffer(); |
- m_context->discardBackbufferCHROMIUM(); |
m_isBackbufferDiscarded = true; |
// Damage tracker needs a full reset every time framebuffer is discarded. |
@@ -1442,10 +1438,7 @@ void GLRenderer::ensureBackbuffer() |
if (!m_isBackbufferDiscarded) |
return; |
- if (!m_capabilities.usingDiscardBackbuffer) |
- return; |
- |
- m_context->ensureBackbufferCHROMIUM(); |
+ m_outputSurface->EnsureBackbuffer(); |
m_isBackbufferDiscarded = false; |
} |
@@ -1549,7 +1542,7 @@ bool GLRenderer::useScopedTexture(DrawingFrame& frame, const ScopedResource* tex |
void GLRenderer::bindFramebufferToOutputSurface(DrawingFrame& frame) |
{ |
m_currentFramebufferLock.reset(); |
- GLC(m_context, m_context->bindFramebuffer(GL_FRAMEBUFFER, 0)); |
+ m_outputSurface->BindFramebuffer(); |
} |
bool GLRenderer::bindFramebufferToTexture(DrawingFrame& frame, const ScopedResource* texture, const gfx::Rect& framebufferRect) |