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 |
11 #include "base/cancelable_callback.h" | 11 #include "base/cancelable_callback.h" |
12 #include "base/macros.h" | 12 #include "base/macros.h" |
13 #include "cc/base/cc_export.h" | 13 #include "cc/base/cc_export.h" |
14 #include "cc/output/direct_renderer.h" | 14 #include "cc/output/direct_renderer.h" |
15 #include "cc/output/gl_renderer_draw_cache.h" | 15 #include "cc/output/gl_renderer_draw_cache.h" |
16 #include "cc/output/program_binding.h" | 16 #include "cc/output/program_binding.h" |
17 #include "cc/output/renderer.h" | 17 #include "cc/output/renderer.h" |
18 #include "cc/quads/debug_border_draw_quad.h" | 18 #include "cc/quads/debug_border_draw_quad.h" |
19 #include "cc/quads/render_pass_draw_quad.h" | 19 #include "cc/quads/render_pass_draw_quad.h" |
20 #include "cc/quads/solid_color_draw_quad.h" | 20 #include "cc/quads/solid_color_draw_quad.h" |
21 #include "cc/quads/tile_draw_quad.h" | 21 #include "cc/quads/tile_draw_quad.h" |
| 22 #include "cc/quads/y_video_draw_quad.h" |
22 #include "cc/quads/yuv_video_draw_quad.h" | 23 #include "cc/quads/yuv_video_draw_quad.h" |
23 #include "ui/gfx/geometry/quad_f.h" | 24 #include "ui/gfx/geometry/quad_f.h" |
24 | 25 |
25 class SkBitmap; | 26 class SkBitmap; |
26 | 27 |
27 namespace gpu { | 28 namespace gpu { |
28 namespace gles2 { | 29 namespace gles2 { |
29 class GLES2Interface; | 30 class GLES2Interface; |
30 } | 31 } |
31 } | 32 } |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 const gfx::Transform& device_transform, | 217 const gfx::Transform& device_transform, |
217 const gfx::QuadF& aa_quad, | 218 const gfx::QuadF& aa_quad, |
218 const gfx::QuadF* clip_region); | 219 const gfx::QuadF* clip_region); |
219 void DrawContentQuadNoAA(const DrawingFrame* frame, | 220 void DrawContentQuadNoAA(const DrawingFrame* frame, |
220 const ContentDrawQuadBase* quad, | 221 const ContentDrawQuadBase* quad, |
221 ResourceId resource_id, | 222 ResourceId resource_id, |
222 const gfx::QuadF* clip_region); | 223 const gfx::QuadF* clip_region); |
223 void DrawYUVVideoQuad(const DrawingFrame* frame, | 224 void DrawYUVVideoQuad(const DrawingFrame* frame, |
224 const YUVVideoDrawQuad* quad, | 225 const YUVVideoDrawQuad* quad, |
225 const gfx::QuadF* clip_region); | 226 const gfx::QuadF* clip_region); |
| 227 void DrawYVideoQuad(const DrawingFrame* frame, |
| 228 const YVideoDrawQuad* quad, |
| 229 const gfx::QuadF* clip_region); |
226 void DrawPictureQuad(const DrawingFrame* frame, | 230 void DrawPictureQuad(const DrawingFrame* frame, |
227 const PictureDrawQuad* quad, | 231 const PictureDrawQuad* quad, |
228 const gfx::QuadF* clip_region); | 232 const gfx::QuadF* clip_region); |
229 | 233 |
230 void SetShaderOpacity(float opacity, int alpha_location); | 234 void SetShaderOpacity(float opacity, int alpha_location); |
231 void SetShaderQuadF(const gfx::QuadF& quad, int quad_location); | 235 void SetShaderQuadF(const gfx::QuadF& quad, int quad_location); |
232 void DrawQuadGeometryClippedByQuadF(const DrawingFrame* frame, | 236 void DrawQuadGeometryClippedByQuadF(const DrawingFrame* frame, |
233 const gfx::Transform& draw_transform, | 237 const gfx::Transform& draw_transform, |
234 const gfx::RectF& quad_rect, | 238 const gfx::RectF& quad_rect, |
235 const gfx::QuadF& clipping_region_quad, | 239 const gfx::QuadF& clipping_region_quad, |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 typedef ProgramBinding<VertexShaderVideoTransform, FragmentShaderRGBATex> | 348 typedef ProgramBinding<VertexShaderVideoTransform, FragmentShaderRGBATex> |
345 VideoStreamTextureProgram; | 349 VideoStreamTextureProgram; |
346 typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, | 350 typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, |
347 FragmentShaderYUVVideo> VideoYUVProgram; | 351 FragmentShaderYUVVideo> VideoYUVProgram; |
348 typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, | 352 typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, |
349 FragmentShaderNV12Video> | 353 FragmentShaderNV12Video> |
350 VideoNV12Program; | 354 VideoNV12Program; |
351 typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, | 355 typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, |
352 FragmentShaderYUVAVideo> | 356 FragmentShaderYUVAVideo> |
353 VideoYUVAProgram; | 357 VideoYUVAProgram; |
| 358 typedef ProgramBinding<VertexShaderPosTexTransform, FragmentShaderYVideo> |
| 359 VideoYProgram; |
354 | 360 |
355 // Special purpose / effects shaders. | 361 // Special purpose / effects shaders. |
356 typedef ProgramBinding<VertexShaderPos, FragmentShaderColor> | 362 typedef ProgramBinding<VertexShaderPos, FragmentShaderColor> |
357 DebugBorderProgram; | 363 DebugBorderProgram; |
358 typedef ProgramBinding<VertexShaderQuad, FragmentShaderColor> | 364 typedef ProgramBinding<VertexShaderQuad, FragmentShaderColor> |
359 SolidColorProgram; | 365 SolidColorProgram; |
360 typedef ProgramBinding<VertexShaderQuadAA, FragmentShaderColorAA> | 366 typedef ProgramBinding<VertexShaderQuadAA, FragmentShaderColorAA> |
361 SolidColorProgramAA; | 367 SolidColorProgramAA; |
362 | 368 |
363 const TileProgram* GetTileProgram( | 369 const TileProgram* GetTileProgram( |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 const NonPremultipliedTextureBackgroundProgram* | 421 const NonPremultipliedTextureBackgroundProgram* |
416 GetNonPremultipliedTextureBackgroundProgram(TexCoordPrecision precision, | 422 GetNonPremultipliedTextureBackgroundProgram(TexCoordPrecision precision, |
417 SamplerType sampler); | 423 SamplerType sampler); |
418 | 424 |
419 const VideoYUVProgram* GetVideoYUVProgram(TexCoordPrecision precision, | 425 const VideoYUVProgram* GetVideoYUVProgram(TexCoordPrecision precision, |
420 SamplerType sampler); | 426 SamplerType sampler); |
421 const VideoNV12Program* GetVideoNV12Program(TexCoordPrecision precision, | 427 const VideoNV12Program* GetVideoNV12Program(TexCoordPrecision precision, |
422 SamplerType sampler); | 428 SamplerType sampler); |
423 const VideoYUVAProgram* GetVideoYUVAProgram(TexCoordPrecision precision, | 429 const VideoYUVAProgram* GetVideoYUVAProgram(TexCoordPrecision precision, |
424 SamplerType sampler); | 430 SamplerType sampler); |
| 431 const VideoYProgram* GetVideoYProgram(TexCoordPrecision precision, |
| 432 SamplerType sampler); |
425 const VideoStreamTextureProgram* GetVideoStreamTextureProgram( | 433 const VideoStreamTextureProgram* GetVideoStreamTextureProgram( |
426 TexCoordPrecision precision); | 434 TexCoordPrecision precision); |
427 | 435 |
428 const DebugBorderProgram* GetDebugBorderProgram(); | 436 const DebugBorderProgram* GetDebugBorderProgram(); |
429 const SolidColorProgram* GetSolidColorProgram(); | 437 const SolidColorProgram* GetSolidColorProgram(); |
430 const SolidColorProgramAA* GetSolidColorProgramAA(); | 438 const SolidColorProgramAA* GetSolidColorProgramAA(); |
431 | 439 |
432 TileProgram | 440 TileProgram |
433 tile_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; | 441 tile_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; |
434 TileProgramOpaque | 442 TileProgramOpaque |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 [LAST_BLEND_MODE + 1] | 489 [LAST_BLEND_MODE + 1] |
482 [LAST_MASK_VALUE + 1]; | 490 [LAST_MASK_VALUE + 1]; |
483 RenderPassMaskColorMatrixProgramAA | 491 RenderPassMaskColorMatrixProgramAA |
484 render_pass_mask_color_matrix_program_aa_[LAST_TEX_COORD_PRECISION + 1] | 492 render_pass_mask_color_matrix_program_aa_[LAST_TEX_COORD_PRECISION + 1] |
485 [LAST_SAMPLER_TYPE + 1] | 493 [LAST_SAMPLER_TYPE + 1] |
486 [LAST_BLEND_MODE + 1] | 494 [LAST_BLEND_MODE + 1] |
487 [LAST_MASK_VALUE + 1]; | 495 [LAST_MASK_VALUE + 1]; |
488 | 496 |
489 VideoYUVProgram | 497 VideoYUVProgram |
490 video_yuv_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; | 498 video_yuv_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; |
| 499 VideoYProgram |
| 500 video_y_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; |
491 VideoNV12Program video_nv12_program_[LAST_TEX_COORD_PRECISION + 1] | 501 VideoNV12Program video_nv12_program_[LAST_TEX_COORD_PRECISION + 1] |
492 [LAST_SAMPLER_TYPE + 1]; | 502 [LAST_SAMPLER_TYPE + 1]; |
493 VideoYUVAProgram | 503 VideoYUVAProgram |
494 video_yuva_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; | 504 video_yuva_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; |
495 VideoStreamTextureProgram | 505 VideoStreamTextureProgram |
496 video_stream_texture_program_[LAST_TEX_COORD_PRECISION + 1]; | 506 video_stream_texture_program_[LAST_TEX_COORD_PRECISION + 1]; |
497 | 507 |
498 DebugBorderProgram debug_border_program_; | 508 DebugBorderProgram debug_border_program_; |
499 SolidColorProgram solid_color_program_; | 509 SolidColorProgram solid_color_program_; |
500 SolidColorProgramAA solid_color_program_aa_; | 510 SolidColorProgramAA solid_color_program_aa_; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 | 544 |
535 SkBitmap on_demand_tile_raster_bitmap_; | 545 SkBitmap on_demand_tile_raster_bitmap_; |
536 ResourceId on_demand_tile_raster_resource_id_; | 546 ResourceId on_demand_tile_raster_resource_id_; |
537 BoundGeometry bound_geometry_; | 547 BoundGeometry bound_geometry_; |
538 DISALLOW_COPY_AND_ASSIGN(GLRenderer); | 548 DISALLOW_COPY_AND_ASSIGN(GLRenderer); |
539 }; | 549 }; |
540 | 550 |
541 } // namespace cc | 551 } // namespace cc |
542 | 552 |
543 #endif // CC_OUTPUT_GL_RENDERER_H_ | 553 #endif // CC_OUTPUT_GL_RENDERER_H_ |
OLD | NEW |