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/gl_renderer_draw_cache.h" | 12 #include "cc/gl_renderer_draw_cache.h" |
13 #include "cc/io_surface_draw_quad.h" | 13 #include "cc/io_surface_draw_quad.h" |
14 #include "cc/output_surface.h" | 14 #include "cc/output_surface.h" |
15 #include "cc/render_pass_draw_quad.h" | 15 #include "cc/render_pass_draw_quad.h" |
16 #include "cc/renderer.h" | 16 #include "cc/renderer.h" |
17 #include "cc/solid_color_draw_quad.h" | 17 #include "cc/solid_color_draw_quad.h" |
18 #include "cc/tile_draw_quad.h" | 18 #include "cc/tile_draw_quad.h" |
19 #include "cc/yuv_video_draw_quad.h" | 19 #include "cc/yuv_video_draw_quad.h" |
| 20 #include "cc/yuva_video_draw_quad.h" |
20 #include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3
D.h" | 21 #include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3
D.h" |
21 #include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsMemoryAl
location.h" | 22 #include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsMemoryAl
location.h" |
22 #include "ui/gfx/quad_f.h" | 23 #include "ui/gfx/quad_f.h" |
23 | 24 |
24 namespace cc { | 25 namespace cc { |
25 | 26 |
26 class ScopedResource; | 27 class ScopedResource; |
27 class StreamVideoDrawQuad; | 28 class StreamVideoDrawQuad; |
28 class TextureDrawQuad; | 29 class TextureDrawQuad; |
29 class GeometryBinding; | 30 class GeometryBinding; |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 const gfx::Transform& contentsDeviceTransformInverse); | 100 const gfx::Transform& contentsDeviceTransformInverse); |
100 void drawRenderPassQuad(DrawingFrame&, const RenderPassDrawQuad*); | 101 void drawRenderPassQuad(DrawingFrame&, const RenderPassDrawQuad*); |
101 void drawSolidColorQuad(const DrawingFrame&, const SolidColorDrawQuad*); | 102 void drawSolidColorQuad(const DrawingFrame&, const SolidColorDrawQuad*); |
102 void drawStreamVideoQuad(const DrawingFrame&, const StreamVideoDrawQuad*); | 103 void drawStreamVideoQuad(const DrawingFrame&, const StreamVideoDrawQuad*); |
103 void drawTextureQuad(const DrawingFrame&, const TextureDrawQuad*); | 104 void drawTextureQuad(const DrawingFrame&, const TextureDrawQuad*); |
104 void enqueueTextureQuad(const DrawingFrame&, const TextureDrawQuad*); | 105 void enqueueTextureQuad(const DrawingFrame&, const TextureDrawQuad*); |
105 void flushTextureQuadCache(); | 106 void flushTextureQuadCache(); |
106 void drawIOSurfaceQuad(const DrawingFrame&, const IOSurfaceDrawQuad*); | 107 void drawIOSurfaceQuad(const DrawingFrame&, const IOSurfaceDrawQuad*); |
107 void drawTileQuad(const DrawingFrame&, const TileDrawQuad*); | 108 void drawTileQuad(const DrawingFrame&, const TileDrawQuad*); |
108 void drawYUVVideoQuad(const DrawingFrame&, const YUVVideoDrawQuad*); | 109 void drawYUVVideoQuad(const DrawingFrame&, const YUVVideoDrawQuad*); |
| 110 void drawYUVAVideoQuad(const DrawingFrame&, const YUVAVideoDrawQuad*); |
109 | 111 |
110 void setShaderOpacity(float opacity, int alphaLocation); | 112 void setShaderOpacity(float opacity, int alphaLocation); |
111 void setShaderQuadF(const gfx::QuadF&, int quadLocation); | 113 void setShaderQuadF(const gfx::QuadF&, int quadLocation); |
112 void drawQuadGeometry(const DrawingFrame&, const gfx::Transform& drawTransfo
rm, const gfx::RectF& quadRect, int matrixLocation); | 114 void drawQuadGeometry(const DrawingFrame&, const gfx::Transform& drawTransfo
rm, const gfx::RectF& quadRect, int matrixLocation); |
113 void setBlendEnabled(bool enabled); | 115 void setBlendEnabled(bool enabled); |
114 void setUseProgram(unsigned program); | 116 void setUseProgram(unsigned program); |
115 | 117 |
116 void copyTextureToFramebuffer(const DrawingFrame&, int textureId, const gfx:
:Rect&, const gfx::Transform& drawMatrix); | 118 void copyTextureToFramebuffer(const DrawingFrame&, int textureId, const gfx:
:Rect&, const gfx::Transform& drawMatrix); |
117 | 119 |
118 bool useScopedTexture(DrawingFrame&, const ScopedResource*, const gfx::Rect&
viewportRect); | 120 bool useScopedTexture(DrawingFrame&, const ScopedResource*, const gfx::Rect&
viewportRect); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 typedef ProgramBinding<VertexShaderQuad, FragmentShaderRGBATexAlphaMaskAA> R
enderPassMaskProgramAA; | 161 typedef ProgramBinding<VertexShaderQuad, FragmentShaderRGBATexAlphaMaskAA> R
enderPassMaskProgramAA; |
160 | 162 |
161 // Texture shaders. | 163 // Texture shaders. |
162 typedef ProgramBinding<VertexShaderPosTexTransform, FragmentShaderRGBATexVar
yingAlpha> TextureProgram; | 164 typedef ProgramBinding<VertexShaderPosTexTransform, FragmentShaderRGBATexVar
yingAlpha> TextureProgram; |
163 typedef ProgramBinding<VertexShaderPosTexTransform, FragmentShaderRGBATexFli
pVaryingAlpha> TextureProgramFlip; | 165 typedef ProgramBinding<VertexShaderPosTexTransform, FragmentShaderRGBATexFli
pVaryingAlpha> TextureProgramFlip; |
164 typedef ProgramBinding<VertexShaderPosTexTransform, FragmentShaderRGBATexRec
tVaryingAlpha> TextureIOSurfaceProgram; | 166 typedef ProgramBinding<VertexShaderPosTexTransform, FragmentShaderRGBATexRec
tVaryingAlpha> TextureIOSurfaceProgram; |
165 | 167 |
166 // Video shaders. | 168 // Video shaders. |
167 typedef ProgramBinding<VertexShaderVideoTransform, FragmentShaderOESImageExt
ernal> VideoStreamTextureProgram; | 169 typedef ProgramBinding<VertexShaderVideoTransform, FragmentShaderOESImageExt
ernal> VideoStreamTextureProgram; |
168 typedef ProgramBinding<VertexShaderPosTexYUVStretch, FragmentShaderYUVVideo>
VideoYUVProgram; | 170 typedef ProgramBinding<VertexShaderPosTexYUVStretch, FragmentShaderYUVVideo>
VideoYUVProgram; |
| 171 typedef ProgramBinding<VertexShaderPosTexYUVStretch, FragmentShaderYUVAVideo
> VideoYUVAProgram; |
169 | 172 |
170 // Special purpose / effects shaders. | 173 // Special purpose / effects shaders. |
171 typedef ProgramBinding<VertexShaderPos, FragmentShaderColor> SolidColorProgr
am; | 174 typedef ProgramBinding<VertexShaderPos, FragmentShaderColor> SolidColorProgr
am; |
172 | 175 |
173 const TileProgram* tileProgram(); | 176 const TileProgram* tileProgram(); |
174 const TileProgramOpaque* tileProgramOpaque(); | 177 const TileProgramOpaque* tileProgramOpaque(); |
175 const TileProgramAA* tileProgramAA(); | 178 const TileProgramAA* tileProgramAA(); |
176 const TileProgramSwizzle* tileProgramSwizzle(); | 179 const TileProgramSwizzle* tileProgramSwizzle(); |
177 const TileProgramSwizzleOpaque* tileProgramSwizzleOpaque(); | 180 const TileProgramSwizzleOpaque* tileProgramSwizzleOpaque(); |
178 const TileProgramSwizzleAA* tileProgramSwizzleAA(); | 181 const TileProgramSwizzleAA* tileProgramSwizzleAA(); |
179 const TileCheckerboardProgram* tileCheckerboardProgram(); | 182 const TileCheckerboardProgram* tileCheckerboardProgram(); |
180 | 183 |
181 const RenderPassProgram* renderPassProgram(); | 184 const RenderPassProgram* renderPassProgram(); |
182 const RenderPassProgramAA* renderPassProgramAA(); | 185 const RenderPassProgramAA* renderPassProgramAA(); |
183 const RenderPassMaskProgram* renderPassMaskProgram(); | 186 const RenderPassMaskProgram* renderPassMaskProgram(); |
184 const RenderPassMaskProgramAA* renderPassMaskProgramAA(); | 187 const RenderPassMaskProgramAA* renderPassMaskProgramAA(); |
185 | 188 |
186 const TextureProgram* textureProgram(); | 189 const TextureProgram* textureProgram(); |
187 const TextureProgramFlip* textureProgramFlip(); | 190 const TextureProgramFlip* textureProgramFlip(); |
188 const TextureIOSurfaceProgram* textureIOSurfaceProgram(); | 191 const TextureIOSurfaceProgram* textureIOSurfaceProgram(); |
189 | 192 |
190 const VideoYUVProgram* videoYUVProgram(); | 193 const VideoYUVProgram* videoYUVProgram(); |
| 194 const VideoYUVAProgram* videoYUVAProgram(); |
191 const VideoStreamTextureProgram* videoStreamTextureProgram(); | 195 const VideoStreamTextureProgram* videoStreamTextureProgram(); |
192 | 196 |
193 const SolidColorProgram* solidColorProgram(); | 197 const SolidColorProgram* solidColorProgram(); |
194 | 198 |
195 scoped_ptr<TileProgram> m_tileProgram; | 199 scoped_ptr<TileProgram> m_tileProgram; |
196 scoped_ptr<TileProgramOpaque> m_tileProgramOpaque; | 200 scoped_ptr<TileProgramOpaque> m_tileProgramOpaque; |
197 scoped_ptr<TileProgramAA> m_tileProgramAA; | 201 scoped_ptr<TileProgramAA> m_tileProgramAA; |
198 scoped_ptr<TileProgramSwizzle> m_tileProgramSwizzle; | 202 scoped_ptr<TileProgramSwizzle> m_tileProgramSwizzle; |
199 scoped_ptr<TileProgramSwizzleOpaque> m_tileProgramSwizzleOpaque; | 203 scoped_ptr<TileProgramSwizzleOpaque> m_tileProgramSwizzleOpaque; |
200 scoped_ptr<TileProgramSwizzleAA> m_tileProgramSwizzleAA; | 204 scoped_ptr<TileProgramSwizzleAA> m_tileProgramSwizzleAA; |
201 scoped_ptr<TileCheckerboardProgram> m_tileCheckerboardProgram; | 205 scoped_ptr<TileCheckerboardProgram> m_tileCheckerboardProgram; |
202 | 206 |
203 scoped_ptr<RenderPassProgram> m_renderPassProgram; | 207 scoped_ptr<RenderPassProgram> m_renderPassProgram; |
204 scoped_ptr<RenderPassProgramAA> m_renderPassProgramAA; | 208 scoped_ptr<RenderPassProgramAA> m_renderPassProgramAA; |
205 scoped_ptr<RenderPassMaskProgram> m_renderPassMaskProgram; | 209 scoped_ptr<RenderPassMaskProgram> m_renderPassMaskProgram; |
206 scoped_ptr<RenderPassMaskProgramAA> m_renderPassMaskProgramAA; | 210 scoped_ptr<RenderPassMaskProgramAA> m_renderPassMaskProgramAA; |
207 | 211 |
208 scoped_ptr<TextureProgram> m_textureProgram; | 212 scoped_ptr<TextureProgram> m_textureProgram; |
209 scoped_ptr<TextureProgramFlip> m_textureProgramFlip; | 213 scoped_ptr<TextureProgramFlip> m_textureProgramFlip; |
210 scoped_ptr<TextureIOSurfaceProgram> m_textureIOSurfaceProgram; | 214 scoped_ptr<TextureIOSurfaceProgram> m_textureIOSurfaceProgram; |
211 | 215 |
212 scoped_ptr<VideoYUVProgram> m_videoYUVProgram; | 216 scoped_ptr<VideoYUVProgram> m_videoYUVProgram; |
| 217 scoped_ptr<VideoYUVAProgram> m_videoYUVAProgram; |
213 scoped_ptr<VideoStreamTextureProgram> m_videoStreamTextureProgram; | 218 scoped_ptr<VideoStreamTextureProgram> m_videoStreamTextureProgram; |
214 | 219 |
215 scoped_ptr<SolidColorProgram> m_solidColorProgram; | 220 scoped_ptr<SolidColorProgram> m_solidColorProgram; |
216 | 221 |
217 OutputSurface* m_outputSurface; | 222 OutputSurface* m_outputSurface; |
218 WebKit::WebGraphicsContext3D* m_context; | 223 WebKit::WebGraphicsContext3D* m_context; |
219 | 224 |
220 gfx::Rect m_swapBufferRect; | 225 gfx::Rect m_swapBufferRect; |
221 gfx::Rect m_scissorRect; | 226 gfx::Rect m_scissorRect; |
222 bool m_isViewportChanged; | 227 bool m_isViewportChanged; |
(...skipping 20 matching lines...) Expand all Loading... |
243 #if DEBUG_GL_CALLS && !defined(NDEBUG) | 248 #if DEBUG_GL_CALLS && !defined(NDEBUG) |
244 #define GLC(context, x) (x, GLRenderer::debugGLCall(&*context, #x, __FILE__, __L
INE__)) | 249 #define GLC(context, x) (x, GLRenderer::debugGLCall(&*context, #x, __FILE__, __L
INE__)) |
245 #else | 250 #else |
246 #define GLC(context, x) (x) | 251 #define GLC(context, x) (x) |
247 #endif | 252 #endif |
248 | 253 |
249 | 254 |
250 } | 255 } |
251 | 256 |
252 #endif // CC_GL_RENDERER_H_ | 257 #endif // CC_GL_RENDERER_H_ |
OLD | NEW |