| 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 "base/cancelable_callback.h" | 8 #include "base/cancelable_callback.h" |
| 9 #include "cc/base/cc_export.h" | 9 #include "cc/base/cc_export.h" |
| 10 #include "cc/base/scoped_ptr_deque.h" | 10 #include "cc/base/scoped_ptr_deque.h" |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 static bool IsDefaultBlendMode(SkXfermode::Mode blend_mode) { | 146 static bool IsDefaultBlendMode(SkXfermode::Mode blend_mode) { |
| 147 return blend_mode == SkXfermode::kSrcOver_Mode; | 147 return blend_mode == SkXfermode::kSrcOver_Mode; |
| 148 } | 148 } |
| 149 bool CanApplyBlendModeUsingBlendFunc(SkXfermode::Mode blend_mode); | 149 bool CanApplyBlendModeUsingBlendFunc(SkXfermode::Mode blend_mode); |
| 150 void ApplyBlendModeUsingBlendFunc(SkXfermode::Mode blend_mode); | 150 void ApplyBlendModeUsingBlendFunc(SkXfermode::Mode blend_mode); |
| 151 void RestoreBlendFuncToDefault(SkXfermode::Mode blend_mode); | 151 void RestoreBlendFuncToDefault(SkXfermode::Mode blend_mode); |
| 152 | 152 |
| 153 gfx::Rect GetBackdropBoundingBoxForRenderPassQuad( | 153 gfx::Rect GetBackdropBoundingBoxForRenderPassQuad( |
| 154 DrawingFrame* frame, | 154 DrawingFrame* frame, |
| 155 const RenderPassDrawQuad* quad, | 155 const RenderPassDrawQuad* quad, |
| 156 const gfx::Transform& contents_device_transform); | 156 const gfx::Transform& contents_device_transform, |
| 157 bool use_aa); |
| 157 scoped_ptr<ScopedResource> GetBackdropTexture(const gfx::Rect& bounding_rect); | 158 scoped_ptr<ScopedResource> GetBackdropTexture(const gfx::Rect& bounding_rect); |
| 158 | 159 |
| 159 static bool ShouldApplyBackgroundFilters(DrawingFrame* frame, | 160 static bool ShouldApplyBackgroundFilters(DrawingFrame* frame, |
| 160 const RenderPassDrawQuad* quad); | 161 const RenderPassDrawQuad* quad); |
| 161 skia::RefPtr<SkImage> ApplyBackgroundFilters( | 162 skia::RefPtr<SkImage> ApplyBackgroundFilters( |
| 162 DrawingFrame* frame, | 163 DrawingFrame* frame, |
| 163 const RenderPassDrawQuad* quad, | 164 const RenderPassDrawQuad* quad, |
| 164 ScopedResource* background_texture); | 165 ScopedResource* background_texture); |
| 165 scoped_ptr<ScopedResource> ApplyInverseTransformForBackgroundFilters( | 166 scoped_ptr<ScopedResource> ApplyInverseTransformForBackgroundFilters( |
| 166 DrawingFrame* frame, | 167 DrawingFrame* frame, |
| 167 const RenderPassDrawQuad* quad, | 168 const RenderPassDrawQuad* quad, |
| 168 const gfx::Transform& contents_device_transform_inverse, | 169 const gfx::Transform& contents_device_transform_inverse, |
| 169 ScopedResource* background_texture, | |
| 170 skia::RefPtr<SkImage> backdrop_bitmap, | 170 skia::RefPtr<SkImage> backdrop_bitmap, |
| 171 const gfx::Rect& backdrop_bounding_rect); | 171 const gfx::Rect& backdrop_bounding_rect); |
| 172 | 172 |
| 173 void DrawRenderPassQuad(DrawingFrame* frame, const RenderPassDrawQuad* quad); | 173 void DrawRenderPassQuad(DrawingFrame* frame, const RenderPassDrawQuad* quad); |
| 174 void DrawSolidColorQuad(const DrawingFrame* frame, | 174 void DrawSolidColorQuad(const DrawingFrame* frame, |
| 175 const SolidColorDrawQuad* quad); | 175 const SolidColorDrawQuad* quad); |
| 176 void DrawStreamVideoQuad(const DrawingFrame* frame, | 176 void DrawStreamVideoQuad(const DrawingFrame* frame, |
| 177 const StreamVideoDrawQuad* quad); | 177 const StreamVideoDrawQuad* quad); |
| 178 void EnqueueTextureQuad(const DrawingFrame* frame, | 178 void EnqueueTextureQuad(const DrawingFrame* frame, |
| 179 const TextureDrawQuad* quad); | 179 const TextureDrawQuad* quad); |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 TexCoordPrecision precision, SamplerType sampler); | 321 TexCoordPrecision precision, SamplerType sampler); |
| 322 const TileProgramSwizzle* GetTileProgramSwizzle( | 322 const TileProgramSwizzle* GetTileProgramSwizzle( |
| 323 TexCoordPrecision precision, SamplerType sampler); | 323 TexCoordPrecision precision, SamplerType sampler); |
| 324 const TileProgramSwizzleOpaque* GetTileProgramSwizzleOpaque( | 324 const TileProgramSwizzleOpaque* GetTileProgramSwizzleOpaque( |
| 325 TexCoordPrecision precision, SamplerType sampler); | 325 TexCoordPrecision precision, SamplerType sampler); |
| 326 const TileProgramSwizzleAA* GetTileProgramSwizzleAA( | 326 const TileProgramSwizzleAA* GetTileProgramSwizzleAA( |
| 327 TexCoordPrecision precision, SamplerType sampler); | 327 TexCoordPrecision precision, SamplerType sampler); |
| 328 | 328 |
| 329 const TileCheckerboardProgram* GetTileCheckerboardProgram(); | 329 const TileCheckerboardProgram* GetTileCheckerboardProgram(); |
| 330 | 330 |
| 331 const RenderPassProgram* GetRenderPassProgram( | 331 const RenderPassProgram* GetRenderPassProgram(TexCoordPrecision precision, |
| 332 TexCoordPrecision precision); | 332 BlendMode blend_mode); |
| 333 const RenderPassProgramAA* GetRenderPassProgramAA( | 333 const RenderPassProgramAA* GetRenderPassProgramAA(TexCoordPrecision precision, |
| 334 TexCoordPrecision precision); | 334 BlendMode blend_mode); |
| 335 const RenderPassMaskProgram* GetRenderPassMaskProgram( | 335 const RenderPassMaskProgram* GetRenderPassMaskProgram( |
| 336 TexCoordPrecision precision); | 336 TexCoordPrecision precision, |
| 337 BlendMode blend_mode); |
| 337 const RenderPassMaskProgramAA* GetRenderPassMaskProgramAA( | 338 const RenderPassMaskProgramAA* GetRenderPassMaskProgramAA( |
| 338 TexCoordPrecision precision); | 339 TexCoordPrecision precision, |
| 340 BlendMode blend_mode); |
| 339 const RenderPassColorMatrixProgram* GetRenderPassColorMatrixProgram( | 341 const RenderPassColorMatrixProgram* GetRenderPassColorMatrixProgram( |
| 340 TexCoordPrecision precision); | 342 TexCoordPrecision precision, |
| 343 BlendMode blend_mode); |
| 341 const RenderPassColorMatrixProgramAA* GetRenderPassColorMatrixProgramAA( | 344 const RenderPassColorMatrixProgramAA* GetRenderPassColorMatrixProgramAA( |
| 342 TexCoordPrecision precision); | 345 TexCoordPrecision precision, |
| 346 BlendMode blend_mode); |
| 343 const RenderPassMaskColorMatrixProgram* GetRenderPassMaskColorMatrixProgram( | 347 const RenderPassMaskColorMatrixProgram* GetRenderPassMaskColorMatrixProgram( |
| 344 TexCoordPrecision precision); | 348 TexCoordPrecision precision, |
| 349 BlendMode blend_mode); |
| 345 const RenderPassMaskColorMatrixProgramAA* | 350 const RenderPassMaskColorMatrixProgramAA* |
| 346 GetRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision); | 351 GetRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision, |
| 352 BlendMode blend_mode); |
| 347 | 353 |
| 348 const TextureProgram* GetTextureProgram( | 354 const TextureProgram* GetTextureProgram( |
| 349 TexCoordPrecision precision); | 355 TexCoordPrecision precision); |
| 350 const NonPremultipliedTextureProgram* GetNonPremultipliedTextureProgram( | 356 const NonPremultipliedTextureProgram* GetNonPremultipliedTextureProgram( |
| 351 TexCoordPrecision precision); | 357 TexCoordPrecision precision); |
| 352 const TextureBackgroundProgram* GetTextureBackgroundProgram( | 358 const TextureBackgroundProgram* GetTextureBackgroundProgram( |
| 353 TexCoordPrecision precision); | 359 TexCoordPrecision precision); |
| 354 const NonPremultipliedTextureBackgroundProgram* | 360 const NonPremultipliedTextureBackgroundProgram* |
| 355 GetNonPremultipliedTextureBackgroundProgram(TexCoordPrecision precision); | 361 GetNonPremultipliedTextureBackgroundProgram(TexCoordPrecision precision); |
| 356 const TextureProgram* GetTextureIOSurfaceProgram( | 362 const TextureProgram* GetTextureIOSurfaceProgram( |
| (...skipping 24 matching lines...) Expand all Loading... |
| 381 TileCheckerboardProgram tile_checkerboard_program_; | 387 TileCheckerboardProgram tile_checkerboard_program_; |
| 382 | 388 |
| 383 TextureProgram texture_program_[NumTexCoordPrecisions]; | 389 TextureProgram texture_program_[NumTexCoordPrecisions]; |
| 384 NonPremultipliedTextureProgram | 390 NonPremultipliedTextureProgram |
| 385 nonpremultiplied_texture_program_[NumTexCoordPrecisions]; | 391 nonpremultiplied_texture_program_[NumTexCoordPrecisions]; |
| 386 TextureBackgroundProgram texture_background_program_[NumTexCoordPrecisions]; | 392 TextureBackgroundProgram texture_background_program_[NumTexCoordPrecisions]; |
| 387 NonPremultipliedTextureBackgroundProgram | 393 NonPremultipliedTextureBackgroundProgram |
| 388 nonpremultiplied_texture_background_program_[NumTexCoordPrecisions]; | 394 nonpremultiplied_texture_background_program_[NumTexCoordPrecisions]; |
| 389 TextureProgram texture_io_surface_program_[NumTexCoordPrecisions]; | 395 TextureProgram texture_io_surface_program_[NumTexCoordPrecisions]; |
| 390 | 396 |
| 391 RenderPassProgram render_pass_program_[NumTexCoordPrecisions]; | 397 RenderPassProgram render_pass_program_[NumTexCoordPrecisions][NumBlendModes]; |
| 392 RenderPassProgramAA render_pass_program_aa_[NumTexCoordPrecisions]; | 398 RenderPassProgramAA |
| 393 RenderPassMaskProgram render_pass_mask_program_[NumTexCoordPrecisions]; | 399 render_pass_program_aa_[NumTexCoordPrecisions][NumBlendModes]; |
| 394 RenderPassMaskProgramAA render_pass_mask_program_aa_[NumTexCoordPrecisions]; | 400 RenderPassMaskProgram |
| 401 render_pass_mask_program_[NumTexCoordPrecisions][NumBlendModes]; |
| 402 RenderPassMaskProgramAA |
| 403 render_pass_mask_program_aa_[NumTexCoordPrecisions][NumBlendModes]; |
| 395 RenderPassColorMatrixProgram | 404 RenderPassColorMatrixProgram |
| 396 render_pass_color_matrix_program_[NumTexCoordPrecisions]; | 405 render_pass_color_matrix_program_[NumTexCoordPrecisions][NumBlendModes]; |
| 397 RenderPassColorMatrixProgramAA | 406 RenderPassColorMatrixProgramAA render_pass_color_matrix_program_aa_ |
| 398 render_pass_color_matrix_program_aa_[NumTexCoordPrecisions]; | 407 [NumTexCoordPrecisions][NumBlendModes]; |
| 399 RenderPassMaskColorMatrixProgram | 408 RenderPassMaskColorMatrixProgram render_pass_mask_color_matrix_program_ |
| 400 render_pass_mask_color_matrix_program_[NumTexCoordPrecisions]; | 409 [NumTexCoordPrecisions][NumBlendModes]; |
| 401 RenderPassMaskColorMatrixProgramAA | 410 RenderPassMaskColorMatrixProgramAA render_pass_mask_color_matrix_program_aa_ |
| 402 render_pass_mask_color_matrix_program_aa_[NumTexCoordPrecisions]; | 411 [NumTexCoordPrecisions][NumBlendModes]; |
| 403 | 412 |
| 404 VideoYUVProgram video_yuv_program_[NumTexCoordPrecisions]; | 413 VideoYUVProgram video_yuv_program_[NumTexCoordPrecisions]; |
| 405 VideoYUVAProgram video_yuva_program_[NumTexCoordPrecisions]; | 414 VideoYUVAProgram video_yuva_program_[NumTexCoordPrecisions]; |
| 406 VideoStreamTextureProgram | 415 VideoStreamTextureProgram |
| 407 video_stream_texture_program_[NumTexCoordPrecisions]; | 416 video_stream_texture_program_[NumTexCoordPrecisions]; |
| 408 | 417 |
| 409 DebugBorderProgram debug_border_program_; | 418 DebugBorderProgram debug_border_program_; |
| 410 SolidColorProgram solid_color_program_; | 419 SolidColorProgram solid_color_program_; |
| 411 SolidColorProgramAA solid_color_program_aa_; | 420 SolidColorProgramAA solid_color_program_aa_; |
| 412 | 421 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 #if DEBUG_GL_CALLS && !defined(NDEBUG) | 464 #if DEBUG_GL_CALLS && !defined(NDEBUG) |
| 456 #define GLC(context, x) \ | 465 #define GLC(context, x) \ |
| 457 (x, GLRenderer::DebugGLCall(&* context, #x, __FILE__, __LINE__)) | 466 (x, GLRenderer::DebugGLCall(&* context, #x, __FILE__, __LINE__)) |
| 458 #else | 467 #else |
| 459 #define GLC(context, x) (x) | 468 #define GLC(context, x) (x) |
| 460 #endif | 469 #endif |
| 461 | 470 |
| 462 } // namespace cc | 471 } // namespace cc |
| 463 | 472 |
| 464 #endif // CC_OUTPUT_GL_RENDERER_H_ | 473 #endif // CC_OUTPUT_GL_RENDERER_H_ |
| OLD | NEW |