Index: cc/output/gl_renderer.h |
diff --git a/cc/output/gl_renderer.h b/cc/output/gl_renderer.h |
index d5cc12924f7749e30118b02b17deba6dfc173b88..51288858a75f2e3229381ad5d7e652f182dd4ece 100644 |
--- a/cc/output/gl_renderer.h |
+++ b/cc/output/gl_renderer.h |
@@ -327,6 +327,10 @@ class CC_EXPORT GLRenderer : public DirectRenderer { |
typedef ProgramBinding<FragmentShaderBase> SolidColorProgram; |
typedef ProgramBinding<FragmentShaderBase> SolidColorProgramAA; |
+ typedef ProgramBinding<FragmentShaderBase> Program; |
+ const Program* GetProgram(const ProgramKey& desc); |
+ const Program* GetProgramForTesting(const ProgramKey& desc) const; |
+ |
const TileProgram* GetTileProgram( |
TexCoordPrecision precision, SamplerType sampler); |
const TileProgramOpaque* GetTileProgramOpaque( |
@@ -395,71 +399,9 @@ class CC_EXPORT GLRenderer : public DirectRenderer { |
const SolidColorProgram* GetSolidColorProgram(); |
const SolidColorProgramAA* GetSolidColorProgramAA(); |
ccameron
2017/01/05 10:32:27
Avoiding adding another dimension to all of these
enne (OOO)
2017/01/09 19:46:48
Thank you for continuing to clean up this mess. I
|
- TileProgram |
- tile_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; |
- TileProgramOpaque |
- tile_program_opaque_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; |
- TileProgramAA |
- tile_program_aa_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; |
- TileProgramSwizzle tile_program_swizzle_[LAST_TEX_COORD_PRECISION + |
- 1][LAST_SAMPLER_TYPE + 1]; |
- TileProgramSwizzleOpaque |
- tile_program_swizzle_opaque_[LAST_TEX_COORD_PRECISION + |
- 1][LAST_SAMPLER_TYPE + 1]; |
- TileProgramSwizzleAA tile_program_swizzle_aa_[LAST_TEX_COORD_PRECISION + |
- 1][LAST_SAMPLER_TYPE + 1]; |
- |
- TextureProgram |
- texture_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; |
- NonPremultipliedTextureProgram |
- nonpremultiplied_texture_program_[LAST_TEX_COORD_PRECISION + |
- 1][LAST_SAMPLER_TYPE + 1]; |
- TextureBackgroundProgram |
- texture_background_program_[LAST_TEX_COORD_PRECISION + |
- 1][LAST_SAMPLER_TYPE + 1]; |
- NonPremultipliedTextureBackgroundProgram |
- nonpremultiplied_texture_background_program_[LAST_TEX_COORD_PRECISION + |
- 1][LAST_SAMPLER_TYPE + 1]; |
- |
- RenderPassProgram |
- render_pass_program_[LAST_TEX_COORD_PRECISION + 1][LAST_BLEND_MODE + 1]; |
- RenderPassProgramAA render_pass_program_aa_[LAST_TEX_COORD_PRECISION + |
- 1][LAST_BLEND_MODE + 1]; |
- RenderPassMaskProgram |
- render_pass_mask_program_[LAST_TEX_COORD_PRECISION + 1] |
- [LAST_SAMPLER_TYPE + 1] |
- [LAST_BLEND_MODE + 1] |
- [LAST_MASK_VALUE + 1]; |
- RenderPassMaskProgramAA |
- render_pass_mask_program_aa_[LAST_TEX_COORD_PRECISION + 1] |
- [LAST_SAMPLER_TYPE + 1] |
- [LAST_BLEND_MODE + 1] |
- [LAST_MASK_VALUE + 1]; |
- RenderPassColorMatrixProgram |
- render_pass_color_matrix_program_[LAST_TEX_COORD_PRECISION + |
- 1][LAST_BLEND_MODE + 1]; |
- RenderPassColorMatrixProgramAA |
- render_pass_color_matrix_program_aa_[LAST_TEX_COORD_PRECISION + |
- 1][LAST_BLEND_MODE + 1]; |
- RenderPassMaskColorMatrixProgram |
- render_pass_mask_color_matrix_program_[LAST_TEX_COORD_PRECISION + 1] |
- [LAST_SAMPLER_TYPE + 1] |
- [LAST_BLEND_MODE + 1] |
- [LAST_MASK_VALUE + 1]; |
- RenderPassMaskColorMatrixProgramAA |
- render_pass_mask_color_matrix_program_aa_[LAST_TEX_COORD_PRECISION + 1] |
- [LAST_SAMPLER_TYPE + 1] |
- [LAST_BLEND_MODE + 1] |
- [LAST_MASK_VALUE + 1]; |
- |
+ std::unordered_map<ProgramKey, Program*, ProgramKeyHash> program_cache_; |
enne (OOO)
2017/01/09 19:46:48
Can you make the Program* a unique_ptr<Program>?
ccameron
2017/01/11 09:46:39
Yes, good point!
|
VideoYUVProgram video_yuv_program_[LAST_TEX_COORD_PRECISION + 1] |
[LAST_SAMPLER_TYPE + 1][2][2][2]; |
- VideoStreamTextureProgram |
- video_stream_texture_program_[LAST_TEX_COORD_PRECISION + 1]; |
- |
- DebugBorderProgram debug_border_program_; |
- SolidColorProgram solid_color_program_; |
- SolidColorProgramAA solid_color_program_aa_; |
gpu::gles2::GLES2Interface* gl_; |
gpu::ContextSupport* context_support_; |