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_OUTPUT_GL_RENDERER_H_ | 5 #ifndef CC_OUTPUT_GL_RENDERER_H_ |
6 #define CC_OUTPUT_GL_RENDERER_H_ | 6 #define CC_OUTPUT_GL_RENDERER_H_ |
7 | 7 |
8 #include <deque> | 8 #include <deque> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 unsigned offscreen_framebuffer_id_; | 287 unsigned offscreen_framebuffer_id_; |
288 | 288 |
289 std::unique_ptr<StaticGeometryBinding> shared_geometry_; | 289 std::unique_ptr<StaticGeometryBinding> shared_geometry_; |
290 std::unique_ptr<DynamicGeometryBinding> clipped_geometry_; | 290 std::unique_ptr<DynamicGeometryBinding> clipped_geometry_; |
291 gfx::QuadF shared_geometry_quad_; | 291 gfx::QuadF shared_geometry_quad_; |
292 | 292 |
293 // This block of bindings defines all of the programs used by the compositor | 293 // This block of bindings defines all of the programs used by the compositor |
294 // itself. Add any new programs here to GLRendererShaderTest. | 294 // itself. Add any new programs here to GLRendererShaderTest. |
295 | 295 |
296 // Tiled layer shaders. | 296 // Tiled layer shaders. |
297 typedef ProgramBinding<VertexShaderTile, FragmentShaderRGBATexAlpha> | 297 typedef ProgramBinding<FragmentShaderBase> TileProgram; |
298 TileProgram; | 298 typedef ProgramBinding<FragmentShaderBase> TileProgramAA; |
299 typedef ProgramBinding<VertexShaderTileAA, FragmentShaderRGBATexClampAlphaAA> | 299 typedef ProgramBinding<FragmentShaderBase> TileProgramSwizzleAA; |
300 TileProgramAA; | 300 typedef ProgramBinding<FragmentShaderBase> TileProgramOpaque; |
301 typedef ProgramBinding<VertexShaderTileAA, | 301 typedef ProgramBinding<FragmentShaderBase> TileProgramSwizzle; |
302 FragmentShaderRGBATexClampSwizzleAlphaAA> | 302 typedef ProgramBinding<FragmentShaderBase> TileProgramSwizzleOpaque; |
303 TileProgramSwizzleAA; | |
304 typedef ProgramBinding<VertexShaderTile, FragmentShaderRGBATexOpaque> | |
305 TileProgramOpaque; | |
306 typedef ProgramBinding<VertexShaderTile, FragmentShaderRGBATexSwizzleAlpha> | |
307 TileProgramSwizzle; | |
308 typedef ProgramBinding<VertexShaderTile, FragmentShaderRGBATexSwizzleOpaque> | |
309 TileProgramSwizzleOpaque; | |
310 | 303 |
311 // Texture shaders. | 304 // Texture shaders. |
312 typedef ProgramBinding<VertexShaderPosTexTransform, | 305 typedef ProgramBinding<FragmentShaderBase> TextureProgram; |
313 FragmentShaderRGBATexVaryingAlpha> TextureProgram; | 306 typedef ProgramBinding<FragmentShaderBase> NonPremultipliedTextureProgram; |
314 typedef ProgramBinding<VertexShaderPosTexTransform, | 307 typedef ProgramBinding<FragmentShaderBase> TextureBackgroundProgram; |
315 FragmentShaderRGBATexPremultiplyAlpha> | 308 typedef ProgramBinding<FragmentShaderBase> |
316 NonPremultipliedTextureProgram; | |
317 typedef ProgramBinding<VertexShaderPosTexTransform, | |
318 FragmentShaderTexBackgroundVaryingAlpha> | |
319 TextureBackgroundProgram; | |
320 typedef ProgramBinding<VertexShaderPosTexTransform, | |
321 FragmentShaderTexBackgroundPremultiplyAlpha> | |
322 NonPremultipliedTextureBackgroundProgram; | 309 NonPremultipliedTextureBackgroundProgram; |
323 | 310 |
324 // Render surface shaders. | 311 // Render surface shaders. |
325 typedef ProgramBinding<VertexShaderPosTexTransform, | 312 typedef ProgramBinding<FragmentShaderBase> RenderPassProgram; |
326 FragmentShaderRGBATexAlpha> RenderPassProgram; | 313 typedef ProgramBinding<FragmentShaderBase> RenderPassMaskProgram; |
327 typedef ProgramBinding<VertexShaderPosTexTransform, | 314 typedef ProgramBinding<FragmentShaderBase> RenderPassProgramAA; |
328 FragmentShaderRGBATexAlphaMask> RenderPassMaskProgram; | 315 typedef ProgramBinding<FragmentShaderBase> RenderPassMaskProgramAA; |
329 typedef ProgramBinding<VertexShaderQuadTexTransformAA, | 316 typedef ProgramBinding<FragmentShaderBase> RenderPassColorMatrixProgram; |
330 FragmentShaderRGBATexAlphaAA> RenderPassProgramAA; | 317 typedef ProgramBinding<FragmentShaderBase> RenderPassMaskColorMatrixProgramAA; |
331 typedef ProgramBinding<VertexShaderQuadTexTransformAA, | 318 typedef ProgramBinding<FragmentShaderBase> RenderPassColorMatrixProgramAA; |
332 FragmentShaderRGBATexAlphaMaskAA> | 319 typedef ProgramBinding<FragmentShaderBase> RenderPassMaskColorMatrixProgram; |
333 RenderPassMaskProgramAA; | |
334 typedef ProgramBinding<VertexShaderPosTexTransform, | |
335 FragmentShaderRGBATexColorMatrixAlpha> | |
336 RenderPassColorMatrixProgram; | |
337 typedef ProgramBinding<VertexShaderQuadTexTransformAA, | |
338 FragmentShaderRGBATexAlphaMaskColorMatrixAA> | |
339 RenderPassMaskColorMatrixProgramAA; | |
340 typedef ProgramBinding<VertexShaderQuadTexTransformAA, | |
341 FragmentShaderRGBATexAlphaColorMatrixAA> | |
342 RenderPassColorMatrixProgramAA; | |
343 typedef ProgramBinding<VertexShaderPosTexTransform, | |
344 FragmentShaderRGBATexAlphaMaskColorMatrix> | |
345 RenderPassMaskColorMatrixProgram; | |
346 | 320 |
347 // Video shaders. | 321 // Video shaders. |
348 typedef ProgramBinding<VertexShaderVideoTransform, FragmentShaderRGBATex> | 322 typedef ProgramBinding<FragmentShaderBase> VideoStreamTextureProgram; |
349 VideoStreamTextureProgram; | 323 typedef ProgramBinding<FragmentShaderYUVVideo> VideoYUVProgram; |
350 typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, | |
351 FragmentShaderYUVVideo> VideoYUVProgram; | |
352 | 324 |
353 // Special purpose / effects shaders. | 325 // Special purpose / effects shaders. |
354 typedef ProgramBinding<VertexShaderPos, FragmentShaderColor> | 326 typedef ProgramBinding<FragmentShaderBase> DebugBorderProgram; |
355 DebugBorderProgram; | 327 typedef ProgramBinding<FragmentShaderBase> SolidColorProgram; |
356 typedef ProgramBinding<VertexShaderQuad, FragmentShaderColor> | 328 typedef ProgramBinding<FragmentShaderBase> SolidColorProgramAA; |
357 SolidColorProgram; | |
358 typedef ProgramBinding<VertexShaderQuadAA, FragmentShaderColorAA> | |
359 SolidColorProgramAA; | |
360 | 329 |
361 const TileProgram* GetTileProgram( | 330 const TileProgram* GetTileProgram( |
362 TexCoordPrecision precision, SamplerType sampler); | 331 TexCoordPrecision precision, SamplerType sampler); |
363 const TileProgramOpaque* GetTileProgramOpaque( | 332 const TileProgramOpaque* GetTileProgramOpaque( |
364 TexCoordPrecision precision, SamplerType sampler); | 333 TexCoordPrecision precision, SamplerType sampler); |
365 const TileProgramAA* GetTileProgramAA( | 334 const TileProgramAA* GetTileProgramAA( |
366 TexCoordPrecision precision, SamplerType sampler); | 335 TexCoordPrecision precision, SamplerType sampler); |
367 const TileProgramSwizzle* GetTileProgramSwizzle( | 336 const TileProgramSwizzle* GetTileProgramSwizzle( |
368 TexCoordPrecision precision, SamplerType sampler); | 337 TexCoordPrecision precision, SamplerType sampler); |
369 const TileProgramSwizzleOpaque* GetTileProgramSwizzleOpaque( | 338 const TileProgramSwizzleOpaque* GetTileProgramSwizzleOpaque( |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
542 bool force_drawing_frame_framebuffer_unflipped_ = false; | 511 bool force_drawing_frame_framebuffer_unflipped_ = false; |
543 | 512 |
544 BoundGeometry bound_geometry_; | 513 BoundGeometry bound_geometry_; |
545 ColorLUTCache color_lut_cache_; | 514 ColorLUTCache color_lut_cache_; |
546 DISALLOW_COPY_AND_ASSIGN(GLRenderer); | 515 DISALLOW_COPY_AND_ASSIGN(GLRenderer); |
547 }; | 516 }; |
548 | 517 |
549 } // namespace cc | 518 } // namespace cc |
550 | 519 |
551 #endif // CC_OUTPUT_GL_RENDERER_H_ | 520 #endif // CC_OUTPUT_GL_RENDERER_H_ |
OLD | NEW |