Chromium Code Reviews| 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 Program TileProgram; |
| 298 TileProgram; | 298 typedef Program TileProgramAA; |
| 299 typedef ProgramBinding<VertexShaderTileAA, FragmentShaderRGBATexClampAlphaAA> | 299 typedef Program TileProgramSwizzleAA; |
| 300 TileProgramAA; | 300 typedef Program TileProgramOpaque; |
| 301 typedef ProgramBinding<VertexShaderTileAA, | 301 typedef Program TileProgramSwizzle; |
| 302 FragmentShaderRGBATexClampSwizzleAlphaAA> | 302 typedef Program 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 Program TextureProgram; |
| 313 FragmentShaderRGBATexVaryingAlpha> TextureProgram; | 306 typedef Program NonPremultipliedTextureProgram; |
| 314 typedef ProgramBinding<VertexShaderPosTexTransform, | 307 typedef Program TextureBackgroundProgram; |
| 315 FragmentShaderRGBATexPremultiplyAlpha> | 308 typedef Program NonPremultipliedTextureBackgroundProgram; |
| 316 NonPremultipliedTextureProgram; | |
| 317 typedef ProgramBinding<VertexShaderPosTexTransform, | |
| 318 FragmentShaderTexBackgroundVaryingAlpha> | |
| 319 TextureBackgroundProgram; | |
| 320 typedef ProgramBinding<VertexShaderPosTexTransform, | |
| 321 FragmentShaderTexBackgroundPremultiplyAlpha> | |
| 322 NonPremultipliedTextureBackgroundProgram; | |
| 323 | 309 |
| 324 // Render surface shaders. | 310 // Render surface shaders. |
| 325 typedef ProgramBinding<VertexShaderPosTexTransform, | 311 typedef Program RenderPassProgram; |
| 326 FragmentShaderRGBATexAlpha> RenderPassProgram; | 312 typedef Program RenderPassMaskProgram; |
| 327 typedef ProgramBinding<VertexShaderPosTexTransform, | 313 typedef Program RenderPassProgramAA; |
| 328 FragmentShaderRGBATexAlphaMask> RenderPassMaskProgram; | 314 typedef Program RenderPassMaskProgramAA; |
| 329 typedef ProgramBinding<VertexShaderQuadTexTransformAA, | 315 typedef Program RenderPassColorMatrixProgram; |
| 330 FragmentShaderRGBATexAlphaAA> RenderPassProgramAA; | 316 typedef Program RenderPassMaskColorMatrixProgramAA; |
| 331 typedef ProgramBinding<VertexShaderQuadTexTransformAA, | 317 typedef Program RenderPassColorMatrixProgramAA; |
| 332 FragmentShaderRGBATexAlphaMaskAA> | 318 typedef Program 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 | 319 |
| 347 // Video shaders. | 320 // Video shaders. |
| 348 typedef ProgramBinding<VertexShaderVideoTransform, FragmentShaderRGBATex> | 321 typedef Program VideoStreamTextureProgram; |
| 349 VideoStreamTextureProgram; | 322 typedef ProgramBinding<VertexShaderBase, FragmentShaderYUVVideo> |
| 350 typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, | 323 VideoYUVProgram; |
| 351 FragmentShaderYUVVideo> VideoYUVProgram; | |
| 352 | 324 |
| 353 // Special purpose / effects shaders. | 325 // Special purpose / effects shaders. |
| 354 typedef ProgramBinding<VertexShaderPos, FragmentShaderColor> | 326 typedef Program DebugBorderProgram; |
| 355 DebugBorderProgram; | 327 typedef Program SolidColorProgram; |
| 356 typedef ProgramBinding<VertexShaderQuad, FragmentShaderColor> | 328 typedef Program SolidColorProgramAA; |
| 357 SolidColorProgram; | 329 |
| 358 typedef ProgramBinding<VertexShaderQuadAA, FragmentShaderColorAA> | 330 const Program* GetProgram(const ProgramKey& key); |
| 359 SolidColorProgramAA; | 331 const Program* GetProgramForTesting(const ProgramKey& key) const; |
|
enne (OOO)
2017/01/12 18:29:12
I hate to bikeshed on a name, but this was a littl
ccameron
2017/01/12 20:26:05
Mmh, good idea.
Renamed and also added the commen
| |
| 332 std::unordered_map<ProgramKey, std::unique_ptr<Program>, ProgramKeyHash> | |
| 333 program_cache_; | |
| 360 | 334 |
| 361 const TileProgram* GetTileProgram( | 335 const TileProgram* GetTileProgram( |
| 362 TexCoordPrecision precision, SamplerType sampler); | 336 TexCoordPrecision precision, SamplerType sampler); |
| 363 const TileProgramOpaque* GetTileProgramOpaque( | 337 const TileProgramOpaque* GetTileProgramOpaque( |
| 364 TexCoordPrecision precision, SamplerType sampler); | 338 TexCoordPrecision precision, SamplerType sampler); |
| 365 const TileProgramAA* GetTileProgramAA( | 339 const TileProgramAA* GetTileProgramAA( |
| 366 TexCoordPrecision precision, SamplerType sampler); | 340 TexCoordPrecision precision, SamplerType sampler); |
| 367 const TileProgramSwizzle* GetTileProgramSwizzle( | 341 const TileProgramSwizzle* GetTileProgramSwizzle( |
| 368 TexCoordPrecision precision, SamplerType sampler); | 342 TexCoordPrecision precision, SamplerType sampler); |
| 369 const TileProgramSwizzleOpaque* GetTileProgramSwizzleOpaque( | 343 const TileProgramSwizzleOpaque* GetTileProgramSwizzleOpaque( |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 419 bool use_alpha_texture, | 393 bool use_alpha_texture, |
| 420 bool use_nv12, | 394 bool use_nv12, |
| 421 bool use_color_lut); | 395 bool use_color_lut); |
| 422 const VideoStreamTextureProgram* GetVideoStreamTextureProgram( | 396 const VideoStreamTextureProgram* GetVideoStreamTextureProgram( |
| 423 TexCoordPrecision precision); | 397 TexCoordPrecision precision); |
| 424 | 398 |
| 425 const DebugBorderProgram* GetDebugBorderProgram(); | 399 const DebugBorderProgram* GetDebugBorderProgram(); |
| 426 const SolidColorProgram* GetSolidColorProgram(); | 400 const SolidColorProgram* GetSolidColorProgram(); |
| 427 const SolidColorProgramAA* GetSolidColorProgramAA(); | 401 const SolidColorProgramAA* GetSolidColorProgramAA(); |
| 428 | 402 |
| 429 TileProgram | |
| 430 tile_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; | |
| 431 TileProgramOpaque | |
| 432 tile_program_opaque_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; | |
| 433 TileProgramAA | |
| 434 tile_program_aa_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; | |
| 435 TileProgramSwizzle tile_program_swizzle_[LAST_TEX_COORD_PRECISION + | |
| 436 1][LAST_SAMPLER_TYPE + 1]; | |
| 437 TileProgramSwizzleOpaque | |
| 438 tile_program_swizzle_opaque_[LAST_TEX_COORD_PRECISION + | |
| 439 1][LAST_SAMPLER_TYPE + 1]; | |
| 440 TileProgramSwizzleAA tile_program_swizzle_aa_[LAST_TEX_COORD_PRECISION + | |
| 441 1][LAST_SAMPLER_TYPE + 1]; | |
| 442 | |
| 443 TextureProgram | |
| 444 texture_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; | |
| 445 NonPremultipliedTextureProgram | |
| 446 nonpremultiplied_texture_program_[LAST_TEX_COORD_PRECISION + | |
| 447 1][LAST_SAMPLER_TYPE + 1]; | |
| 448 TextureBackgroundProgram | |
| 449 texture_background_program_[LAST_TEX_COORD_PRECISION + | |
| 450 1][LAST_SAMPLER_TYPE + 1]; | |
| 451 NonPremultipliedTextureBackgroundProgram | |
| 452 nonpremultiplied_texture_background_program_[LAST_TEX_COORD_PRECISION + | |
| 453 1][LAST_SAMPLER_TYPE + 1]; | |
| 454 | |
| 455 RenderPassProgram | |
| 456 render_pass_program_[LAST_TEX_COORD_PRECISION + 1][LAST_BLEND_MODE + 1]; | |
| 457 RenderPassProgramAA render_pass_program_aa_[LAST_TEX_COORD_PRECISION + | |
| 458 1][LAST_BLEND_MODE + 1]; | |
| 459 RenderPassMaskProgram | |
| 460 render_pass_mask_program_[LAST_TEX_COORD_PRECISION + 1] | |
| 461 [LAST_SAMPLER_TYPE + 1] | |
| 462 [LAST_BLEND_MODE + 1] | |
| 463 [LAST_MASK_VALUE + 1]; | |
| 464 RenderPassMaskProgramAA | |
| 465 render_pass_mask_program_aa_[LAST_TEX_COORD_PRECISION + 1] | |
| 466 [LAST_SAMPLER_TYPE + 1] | |
| 467 [LAST_BLEND_MODE + 1] | |
| 468 [LAST_MASK_VALUE + 1]; | |
| 469 RenderPassColorMatrixProgram | |
| 470 render_pass_color_matrix_program_[LAST_TEX_COORD_PRECISION + | |
| 471 1][LAST_BLEND_MODE + 1]; | |
| 472 RenderPassColorMatrixProgramAA | |
| 473 render_pass_color_matrix_program_aa_[LAST_TEX_COORD_PRECISION + | |
| 474 1][LAST_BLEND_MODE + 1]; | |
| 475 RenderPassMaskColorMatrixProgram | |
| 476 render_pass_mask_color_matrix_program_[LAST_TEX_COORD_PRECISION + 1] | |
| 477 [LAST_SAMPLER_TYPE + 1] | |
| 478 [LAST_BLEND_MODE + 1] | |
| 479 [LAST_MASK_VALUE + 1]; | |
| 480 RenderPassMaskColorMatrixProgramAA | |
| 481 render_pass_mask_color_matrix_program_aa_[LAST_TEX_COORD_PRECISION + 1] | |
| 482 [LAST_SAMPLER_TYPE + 1] | |
| 483 [LAST_BLEND_MODE + 1] | |
| 484 [LAST_MASK_VALUE + 1]; | |
| 485 | |
| 486 VideoYUVProgram video_yuv_program_[LAST_TEX_COORD_PRECISION + 1] | 403 VideoYUVProgram video_yuv_program_[LAST_TEX_COORD_PRECISION + 1] |
| 487 [LAST_SAMPLER_TYPE + 1][2][2][2]; | 404 [LAST_SAMPLER_TYPE + 1][2][2][2]; |
| 488 VideoStreamTextureProgram | |
| 489 video_stream_texture_program_[LAST_TEX_COORD_PRECISION + 1]; | |
| 490 | |
| 491 DebugBorderProgram debug_border_program_; | |
| 492 SolidColorProgram solid_color_program_; | |
| 493 SolidColorProgramAA solid_color_program_aa_; | |
| 494 | 405 |
| 495 gpu::gles2::GLES2Interface* gl_; | 406 gpu::gles2::GLES2Interface* gl_; |
| 496 gpu::ContextSupport* context_support_; | 407 gpu::ContextSupport* context_support_; |
| 497 std::unique_ptr<ContextCacheController::ScopedVisibility> context_visibility_; | 408 std::unique_ptr<ContextCacheController::ScopedVisibility> context_visibility_; |
| 498 | 409 |
| 499 TextureMailboxDeleter* texture_mailbox_deleter_; | 410 TextureMailboxDeleter* texture_mailbox_deleter_; |
| 500 | 411 |
| 501 gfx::Rect swap_buffer_rect_; | 412 gfx::Rect swap_buffer_rect_; |
| 502 gfx::Rect scissor_rect_; | 413 gfx::Rect scissor_rect_; |
| 503 bool is_using_bind_uniform_; | 414 bool is_using_bind_uniform_; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 542 bool force_drawing_frame_framebuffer_unflipped_ = false; | 453 bool force_drawing_frame_framebuffer_unflipped_ = false; |
| 543 | 454 |
| 544 BoundGeometry bound_geometry_; | 455 BoundGeometry bound_geometry_; |
| 545 ColorLUTCache color_lut_cache_; | 456 ColorLUTCache color_lut_cache_; |
| 546 DISALLOW_COPY_AND_ASSIGN(GLRenderer); | 457 DISALLOW_COPY_AND_ASSIGN(GLRenderer); |
| 547 }; | 458 }; |
| 548 | 459 |
| 549 } // namespace cc | 460 } // namespace cc |
| 550 | 461 |
| 551 #endif // CC_OUTPUT_GL_RENDERER_H_ | 462 #endif // CC_OUTPUT_GL_RENDERER_H_ |
| OLD | NEW |