| 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 #ifndef CC_GL_RENDERER_H_ | 5 #ifndef CC_GL_RENDERER_H_ |
| 6 #define CC_GL_RENDERER_H_ | 6 #define CC_GL_RENDERER_H_ |
| 7 | 7 |
| 8 #include "cc/cc_export.h" | 8 #include "cc/cc_export.h" |
| 9 #include "cc/checkerboard_draw_quad.h" | 9 #include "cc/checkerboard_draw_quad.h" |
| 10 #include "cc/debug_border_draw_quad.h" | 10 #include "cc/debug_border_draw_quad.h" |
| 11 #include "cc/direct_renderer.h" | 11 #include "cc/direct_renderer.h" |
| 12 #include "cc/io_surface_draw_quad.h" | 12 #include "cc/io_surface_draw_quad.h" |
| 13 #include "cc/render_pass_draw_quad.h" | 13 #include "cc/render_pass_draw_quad.h" |
| 14 #include "cc/renderer.h" | 14 #include "cc/renderer.h" |
| 15 #include "cc/solid_color_draw_quad.h" | 15 #include "cc/solid_color_draw_quad.h" |
| 16 #include "cc/tile_draw_quad.h" | 16 #include "cc/tile_draw_quad.h" |
| 17 #include "cc/yuv_video_draw_quad.h" | 17 #include "cc/yuv_video_draw_quad.h" |
| 18 #include "ui/gfx/quad_f.h" | 18 #include "ui/gfx/quad_f.h" |
| 19 | 19 |
| 20 namespace WebKit { | 20 namespace WebKit { |
| 21 class WebGraphicsContext3D; | 21 class WebGraphicsContext3D; |
| 22 } | 22 } |
| 23 | 23 |
| 24 namespace cc { | 24 namespace cc { |
| 25 | 25 |
| 26 class ScopedTexture; | 26 class ScopedResource; |
| 27 class StreamVideoDrawQuad; | 27 class StreamVideoDrawQuad; |
| 28 class TextureDrawQuad; | 28 class TextureDrawQuad; |
| 29 class GeometryBinding; | 29 class GeometryBinding; |
| 30 class ScopedEnsureFramebufferAllocation; | 30 class ScopedEnsureFramebufferAllocation; |
| 31 | 31 |
| 32 // Class that handles drawing of composited render layers using GL. | 32 // Class that handles drawing of composited render layers using GL. |
| 33 class CC_EXPORT GLRenderer : public DirectRenderer, | 33 class CC_EXPORT GLRenderer : public DirectRenderer, |
| 34 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext
3D::WebGraphicsSwapBuffersCompleteCallbackCHROMIUM), | 34 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext
3D::WebGraphicsSwapBuffersCompleteCallbackCHROMIUM), |
| 35 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext
3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM), | 35 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext
3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM), |
| 36 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext
3D::WebGraphicsContextLostCallback) { | 36 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext
3D::WebGraphicsContextLostCallback) { |
| (...skipping 27 matching lines...) Expand all Loading... |
| 64 GLRenderer(RendererClient*, ResourceProvider*); | 64 GLRenderer(RendererClient*, ResourceProvider*); |
| 65 | 65 |
| 66 static void debugGLCall(WebKit::WebGraphicsContext3D*, const char* command,
const char* file, int line); | 66 static void debugGLCall(WebKit::WebGraphicsContext3D*, const char* command,
const char* file, int line); |
| 67 | 67 |
| 68 bool isFramebufferDiscarded() const { return m_isFramebufferDiscarded; } | 68 bool isFramebufferDiscarded() const { return m_isFramebufferDiscarded; } |
| 69 bool initialize(); | 69 bool initialize(); |
| 70 | 70 |
| 71 const gfx::QuadF& sharedGeometryQuad() const { return m_sharedGeometryQuad;
} | 71 const gfx::QuadF& sharedGeometryQuad() const { return m_sharedGeometryQuad;
} |
| 72 const GeometryBinding* sharedGeometry() const { return m_sharedGeometry.get(
); } | 72 const GeometryBinding* sharedGeometry() const { return m_sharedGeometry.get(
); } |
| 73 | 73 |
| 74 bool getFramebufferTexture(ScopedTexture*, const gfx::Rect& deviceRect); | 74 bool getFramebufferTexture(ScopedResource*, const gfx::Rect& deviceRect); |
| 75 void releaseRenderPassTextures(); | 75 void releaseRenderPassTextures(); |
| 76 | 76 |
| 77 virtual void bindFramebufferToOutputSurface(DrawingFrame&) OVERRIDE; | 77 virtual void bindFramebufferToOutputSurface(DrawingFrame&) OVERRIDE; |
| 78 virtual bool bindFramebufferToTexture(DrawingFrame&, const ScopedTexture*, c
onst gfx::Rect& framebufferRect) OVERRIDE; | 78 virtual bool bindFramebufferToTexture(DrawingFrame&, const ScopedResource*,
const gfx::Rect& framebufferRect) OVERRIDE; |
| 79 virtual void setDrawViewportSize(const gfx::Size&) OVERRIDE; | 79 virtual void setDrawViewportSize(const gfx::Size&) OVERRIDE; |
| 80 virtual void setScissorTestRect(const gfx::Rect& scissorRect) OVERRIDE; | 80 virtual void setScissorTestRect(const gfx::Rect& scissorRect) OVERRIDE; |
| 81 virtual void clearFramebuffer(DrawingFrame&) OVERRIDE; | 81 virtual void clearFramebuffer(DrawingFrame&) OVERRIDE; |
| 82 virtual void drawQuad(DrawingFrame&, const DrawQuad*) OVERRIDE; | 82 virtual void drawQuad(DrawingFrame&, const DrawQuad*) OVERRIDE; |
| 83 virtual void beginDrawingFrame(DrawingFrame&) OVERRIDE; | 83 virtual void beginDrawingFrame(DrawingFrame&) OVERRIDE; |
| 84 virtual void finishDrawingFrame(DrawingFrame&) OVERRIDE; | 84 virtual void finishDrawingFrame(DrawingFrame&) OVERRIDE; |
| 85 virtual bool flippedFramebuffer() const OVERRIDE; | 85 virtual bool flippedFramebuffer() const OVERRIDE; |
| 86 | 86 |
| 87 private: | 87 private: |
| 88 static void toGLMatrix(float*, const WebKit::WebTransformationMatrix&); | 88 static void toGLMatrix(float*, const WebKit::WebTransformationMatrix&); |
| 89 static int priorityCutoffValue(WebKit::WebGraphicsMemoryAllocation::Priority
Cutoff); | 89 static int priorityCutoffValue(WebKit::WebGraphicsMemoryAllocation::Priority
Cutoff); |
| 90 | 90 |
| 91 void drawCheckerboardQuad(const DrawingFrame&, const CheckerboardDrawQuad*); | 91 void drawCheckerboardQuad(const DrawingFrame&, const CheckerboardDrawQuad*); |
| 92 void drawDebugBorderQuad(const DrawingFrame&, const DebugBorderDrawQuad*); | 92 void drawDebugBorderQuad(const DrawingFrame&, const DebugBorderDrawQuad*); |
| 93 scoped_ptr<ScopedTexture> drawBackgroundFilters( | 93 scoped_ptr<ScopedResource> drawBackgroundFilters( |
| 94 DrawingFrame&, const RenderPassDrawQuad*, const WebKit::WebFilterOperati
ons&, | 94 DrawingFrame&, const RenderPassDrawQuad*, const WebKit::WebFilterOperati
ons&, |
| 95 const WebKit::WebTransformationMatrix& contentsDeviceTransform, | 95 const WebKit::WebTransformationMatrix& contentsDeviceTransform, |
| 96 const WebKit::WebTransformationMatrix& contentsDeviceTransformInverse); | 96 const WebKit::WebTransformationMatrix& contentsDeviceTransformInverse); |
| 97 void drawRenderPassQuad(DrawingFrame&, const RenderPassDrawQuad*); | 97 void drawRenderPassQuad(DrawingFrame&, const RenderPassDrawQuad*); |
| 98 void drawSolidColorQuad(const DrawingFrame&, const SolidColorDrawQuad*); | 98 void drawSolidColorQuad(const DrawingFrame&, const SolidColorDrawQuad*); |
| 99 void drawStreamVideoQuad(const DrawingFrame&, const StreamVideoDrawQuad*); | 99 void drawStreamVideoQuad(const DrawingFrame&, const StreamVideoDrawQuad*); |
| 100 void drawTextureQuad(const DrawingFrame&, const TextureDrawQuad*); | 100 void drawTextureQuad(const DrawingFrame&, const TextureDrawQuad*); |
| 101 void drawIOSurfaceQuad(const DrawingFrame&, const IOSurfaceDrawQuad*); | 101 void drawIOSurfaceQuad(const DrawingFrame&, const IOSurfaceDrawQuad*); |
| 102 void drawTileQuad(const DrawingFrame&, const TileDrawQuad*); | 102 void drawTileQuad(const DrawingFrame&, const TileDrawQuad*); |
| 103 void drawYUVVideoQuad(const DrawingFrame&, const YUVVideoDrawQuad*); | 103 void drawYUVVideoQuad(const DrawingFrame&, const YUVVideoDrawQuad*); |
| 104 | 104 |
| 105 void setShaderOpacity(float opacity, int alphaLocation); | 105 void setShaderOpacity(float opacity, int alphaLocation); |
| 106 void setShaderQuadF(const gfx::QuadF&, int quadLocation); | 106 void setShaderQuadF(const gfx::QuadF&, int quadLocation); |
| 107 void drawQuadGeometry(const DrawingFrame&, const WebKit::WebTransformationMa
trix& drawTransform, const gfx::RectF& quadRect, int matrixLocation); | 107 void drawQuadGeometry(const DrawingFrame&, const WebKit::WebTransformationMa
trix& drawTransform, const gfx::RectF& quadRect, int matrixLocation); |
| 108 | 108 |
| 109 void copyTextureToFramebuffer(const DrawingFrame&, int textureId, const gfx:
:Rect&, const WebKit::WebTransformationMatrix& drawMatrix); | 109 void copyTextureToFramebuffer(const DrawingFrame&, int textureId, const gfx:
:Rect&, const WebKit::WebTransformationMatrix& drawMatrix); |
| 110 | 110 |
| 111 bool useScopedTexture(DrawingFrame&, const ScopedTexture*, const gfx::Rect&
viewportRect); | 111 bool useScopedTexture(DrawingFrame&, const ScopedResource*, const gfx::Rect&
viewportRect); |
| 112 | 112 |
| 113 bool makeContextCurrent(); | 113 bool makeContextCurrent(); |
| 114 | 114 |
| 115 bool initializeSharedObjects(); | 115 bool initializeSharedObjects(); |
| 116 void cleanupSharedObjects(); | 116 void cleanupSharedObjects(); |
| 117 | 117 |
| 118 // WebKit::WebGraphicsContext3D::WebGraphicsSwapBuffersCompleteCallbackCHROM
IUM implementation. | 118 // WebKit::WebGraphicsContext3D::WebGraphicsSwapBuffersCompleteCallbackCHROM
IUM implementation. |
| 119 virtual void onSwapBuffersComplete() OVERRIDE; | 119 virtual void onSwapBuffersComplete() OVERRIDE; |
| 120 | 120 |
| 121 // WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackC
HROMIUM implementation. | 121 // WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackC
HROMIUM implementation. |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 #if DEBUG_GL_CALLS && !defined(NDEBUG) | 230 #if DEBUG_GL_CALLS && !defined(NDEBUG) |
| 231 #define GLC(context, x) (x, GLRenderer::debugGLCall(&*context, #x, __FILE__, __L
INE__)) | 231 #define GLC(context, x) (x, GLRenderer::debugGLCall(&*context, #x, __FILE__, __L
INE__)) |
| 232 #else | 232 #else |
| 233 #define GLC(context, x) (x) | 233 #define GLC(context, x) (x) |
| 234 #endif | 234 #endif |
| 235 | 235 |
| 236 | 236 |
| 237 } | 237 } |
| 238 | 238 |
| 239 #endif // CC_GL_RENDERER_H_ | 239 #endif // CC_GL_RENDERER_H_ |
| OLD | NEW |