| OLD | NEW |
| 1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/gl_renderer.h" | 5 #include "cc/gl_renderer.h" |
| 6 | 6 |
| 7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/string_split.h" | 9 #include "base/string_split.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| 11 #include "build/build_config.h" | 11 #include "build/build_config.h" |
| 12 #include "cc/compositor_frame.h" |
| 13 #include "cc/compositor_frame_metadata.h" |
| 12 #include "cc/damage_tracker.h" | 14 #include "cc/damage_tracker.h" |
| 13 #include "cc/geometry_binding.h" | 15 #include "cc/geometry_binding.h" |
| 16 #include "cc/gl_frame_data.h" |
| 14 #include "cc/layer_quad.h" | 17 #include "cc/layer_quad.h" |
| 15 #include "cc/math_util.h" | 18 #include "cc/math_util.h" |
| 16 #include "cc/priority_calculator.h" | 19 #include "cc/priority_calculator.h" |
| 17 #include "cc/proxy.h" | 20 #include "cc/proxy.h" |
| 18 #include "cc/render_pass.h" | 21 #include "cc/render_pass.h" |
| 19 #include "cc/render_surface_filters.h" | 22 #include "cc/render_surface_filters.h" |
| 20 #include "cc/scoped_resource.h" | 23 #include "cc/scoped_resource.h" |
| 21 #include "cc/single_thread_proxy.h" | 24 #include "cc/single_thread_proxy.h" |
| 22 #include "cc/stream_video_draw_quad.h" | 25 #include "cc/stream_video_draw_quad.h" |
| 23 #include "cc/texture_draw_quad.h" | 26 #include "cc/texture_draw_quad.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 51 { | 54 { |
| 52 #if defined(OS_MACOSX) | 55 #if defined(OS_MACOSX) |
| 53 return true; | 56 return true; |
| 54 #else | 57 #else |
| 55 return false; | 58 return false; |
| 56 #endif | 59 #endif |
| 57 } | 60 } |
| 58 | 61 |
| 59 } // anonymous namespace | 62 } // anonymous namespace |
| 60 | 63 |
| 61 scoped_ptr<GLRenderer> GLRenderer::create(RendererClient* client, ResourceProvid
er* resourceProvider) | 64 scoped_ptr<GLRenderer> GLRenderer::create(RendererClient* client, OutputSurface*
outputSurface, ResourceProvider* resourceProvider) |
| 62 { | 65 { |
| 63 scoped_ptr<GLRenderer> renderer(make_scoped_ptr(new GLRenderer(client, resou
rceProvider))); | 66 scoped_ptr<GLRenderer> renderer(make_scoped_ptr(new GLRenderer(client, outpu
tSurface, resourceProvider))); |
| 64 if (!renderer->initialize()) | 67 if (!renderer->initialize()) |
| 65 return scoped_ptr<GLRenderer>(); | 68 return scoped_ptr<GLRenderer>(); |
| 66 | 69 |
| 67 return renderer.Pass(); | 70 return renderer.Pass(); |
| 68 } | 71 } |
| 69 | 72 |
| 70 GLRenderer::GLRenderer(RendererClient* client, ResourceProvider* resourceProvide
r) | 73 GLRenderer::GLRenderer(RendererClient* client, OutputSurface* outputSurface, Res
ourceProvider* resourceProvider) |
| 71 : DirectRenderer(client, resourceProvider) | 74 : DirectRenderer(client, resourceProvider) |
| 72 , m_offscreenFramebufferId(0) | 75 , m_offscreenFramebufferId(0) |
| 73 , m_sharedGeometryQuad(gfx::RectF(-0.5f, -0.5f, 1.0f, 1.0f)) | 76 , m_sharedGeometryQuad(gfx::RectF(-0.5f, -0.5f, 1.0f, 1.0f)) |
| 74 , m_context(resourceProvider->graphicsContext3D()) | 77 , m_outputSurface(outputSurface) |
| 78 , m_context(outputSurface->Context3D()) |
| 75 , m_isViewportChanged(false) | 79 , m_isViewportChanged(false) |
| 76 , m_isBackbufferDiscarded(false) | 80 , m_isBackbufferDiscarded(false) |
| 77 , m_discardBackbufferWhenNotVisible(false) | 81 , m_discardBackbufferWhenNotVisible(false) |
| 78 , m_isUsingBindUniform(false) | 82 , m_isUsingBindUniform(false) |
| 79 , m_visible(true) | 83 , m_visible(true) |
| 80 , m_isScissorEnabled(false) | 84 , m_isScissorEnabled(false) |
| 81 { | 85 { |
| 82 DCHECK(m_context); | 86 DCHECK(m_context); |
| 83 } | 87 } |
| 84 | 88 |
| (...skipping 1066 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1151 GLC(context(), context()->bindTexture(GL_TEXTURE_RECTANGLE_ARB, 0)); | 1155 GLC(context(), context()->bindTexture(GL_TEXTURE_RECTANGLE_ARB, 0)); |
| 1152 } | 1156 } |
| 1153 | 1157 |
| 1154 void GLRenderer::finishDrawingFrame(DrawingFrame& frame) | 1158 void GLRenderer::finishDrawingFrame(DrawingFrame& frame) |
| 1155 { | 1159 { |
| 1156 m_currentFramebufferLock.reset(); | 1160 m_currentFramebufferLock.reset(); |
| 1157 m_swapBufferRect.Union(gfx::ToEnclosingRect(frame.rootDamageRect)); | 1161 m_swapBufferRect.Union(gfx::ToEnclosingRect(frame.rootDamageRect)); |
| 1158 | 1162 |
| 1159 GLC(m_context, m_context->disable(GL_BLEND)); | 1163 GLC(m_context, m_context->disable(GL_BLEND)); |
| 1160 m_blendShadow = false; | 1164 m_blendShadow = false; |
| 1165 |
| 1166 if (settings().compositorFrameMessage) { |
| 1167 CompositorFrame compositor_frame; |
| 1168 compositor_frame.metadata = m_client->makeCompositorFrameMetadata(); |
| 1169 compositor_frame.gl_frame_data.reset(new GLFrameData()); |
| 1170 // FIXME: Fill in GLFrameData when we implement swapping with it. |
| 1171 m_outputSurface->SendFrameToParentCompositor(compositor_frame); |
| 1172 } |
| 1161 } | 1173 } |
| 1162 | 1174 |
| 1163 void GLRenderer::finishDrawingQuadList() | 1175 void GLRenderer::finishDrawingQuadList() |
| 1164 { | 1176 { |
| 1165 flushTextureQuadCache(); | 1177 flushTextureQuadCache(); |
| 1166 } | 1178 } |
| 1167 | 1179 |
| 1168 bool GLRenderer::flippedFramebuffer() const | 1180 bool GLRenderer::flippedFramebuffer() const |
| 1169 { | 1181 { |
| 1170 return true; | 1182 return true; |
| (...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1775 | 1787 |
| 1776 releaseRenderPassTextures(); | 1788 releaseRenderPassTextures(); |
| 1777 } | 1789 } |
| 1778 | 1790 |
| 1779 bool GLRenderer::isContextLost() | 1791 bool GLRenderer::isContextLost() |
| 1780 { | 1792 { |
| 1781 return (m_context->getGraphicsResetStatusARB() != GL_NO_ERROR); | 1793 return (m_context->getGraphicsResetStatusARB() != GL_NO_ERROR); |
| 1782 } | 1794 } |
| 1783 | 1795 |
| 1784 } // namespace cc | 1796 } // namespace cc |
| OLD | NEW |