| Index: cc/output/gl_renderer.h | 
| diff --git a/cc/output/gl_renderer.h b/cc/output/gl_renderer.h | 
| deleted file mode 100644 | 
| index 1bb8c2d78d65dc11b6a17d416d9a6045ba50531b..0000000000000000000000000000000000000000 | 
| --- a/cc/output/gl_renderer.h | 
| +++ /dev/null | 
| @@ -1,527 +0,0 @@ | 
| -// Copyright 2010 The Chromium Authors. All rights reserved. | 
| -// Use of this source code is governed by a BSD-style license that can be | 
| -// found in the LICENSE file. | 
| - | 
| -#ifndef CC_OUTPUT_GL_RENDERER_H_ | 
| -#define CC_OUTPUT_GL_RENDERER_H_ | 
| - | 
| -#include "base/cancelable_callback.h" | 
| -#include "cc/base/scoped_ptr_deque.h" | 
| -#include "cc/base/scoped_ptr_vector.h" | 
| -#include "cc/output/direct_renderer.h" | 
| -#include "cc/output/gl_renderer_draw_cache.h" | 
| -#include "cc/output/program_binding.h" | 
| -#include "cc/output/renderer.h" | 
| -#include "cc/quads/checkerboard_draw_quad.h" | 
| -#include "cc/quads/debug_border_draw_quad.h" | 
| -#include "cc/quads/io_surface_draw_quad.h" | 
| -#include "cc/quads/render_pass_draw_quad.h" | 
| -#include "cc/quads/solid_color_draw_quad.h" | 
| -#include "cc/quads/tile_draw_quad.h" | 
| -#include "cc/quads/yuv_video_draw_quad.h" | 
| -#include "ui/gfx/geometry/quad_f.h" | 
| - | 
| -class SkBitmap; | 
| - | 
| -namespace gpu { | 
| -namespace gles2 { | 
| -class GLES2Interface; | 
| -} | 
| -} | 
| - | 
| -namespace cc { | 
| - | 
| -class GLRendererShaderTest; | 
| -class OutputSurface; | 
| -class PictureDrawQuad; | 
| -class ScopedResource; | 
| -class StreamVideoDrawQuad; | 
| -class TextureDrawQuad; | 
| -class TextureMailboxDeleter; | 
| -class StaticGeometryBinding; | 
| -class DynamicGeometryBinding; | 
| -class ScopedEnsureFramebufferAllocation; | 
| - | 
| -// Class that handles drawing of composited render layers using GL. | 
| -class GLRenderer : public DirectRenderer { | 
| - public: | 
| -  class ScopedUseGrContext; | 
| - | 
| -  static scoped_ptr<GLRenderer> Create( | 
| -      RendererClient* client, | 
| -      const RendererSettings* settings, | 
| -      OutputSurface* output_surface, | 
| -      ResourceProvider* resource_provider, | 
| -      TextureMailboxDeleter* texture_mailbox_deleter, | 
| -      int highp_threshold_min); | 
| - | 
| -  ~GLRenderer() override; | 
| - | 
| -  const RendererCapabilitiesImpl& Capabilities() const override; | 
| - | 
| -  // Waits for rendering to finish. | 
| -  void Finish() override; | 
| - | 
| -  void DoNoOp() override; | 
| -  void SwapBuffers(const CompositorFrameMetadata& metadata) override; | 
| - | 
| -  virtual bool IsContextLost(); | 
| - | 
| -  static void DebugGLCall(gpu::gles2::GLES2Interface* gl, | 
| -                          const char* command, | 
| -                          const char* file, | 
| -                          int line); | 
| - | 
| - protected: | 
| -  GLRenderer(RendererClient* client, | 
| -             const RendererSettings* settings, | 
| -             OutputSurface* output_surface, | 
| -             ResourceProvider* resource_provider, | 
| -             TextureMailboxDeleter* texture_mailbox_deleter, | 
| -             int highp_threshold_min); | 
| - | 
| -  void DidChangeVisibility() override; | 
| - | 
| -  bool IsBackbufferDiscarded() const { return is_backbuffer_discarded_; } | 
| - | 
| -  const gfx::QuadF& SharedGeometryQuad() const { return shared_geometry_quad_; } | 
| -  const StaticGeometryBinding* SharedGeometry() const { | 
| -    return shared_geometry_.get(); | 
| -  } | 
| - | 
| -  void GetFramebufferPixelsAsync(const DrawingFrame* frame, | 
| -                                 const gfx::Rect& rect, | 
| -                                 scoped_ptr<CopyOutputRequest> request); | 
| -  void GetFramebufferTexture(unsigned texture_id, | 
| -                             ResourceFormat texture_format, | 
| -                             const gfx::Rect& device_rect); | 
| -  void ReleaseRenderPassTextures(); | 
| -  enum BoundGeometry { NO_BINDING, SHARED_BINDING, CLIPPED_BINDING }; | 
| -  void PrepareGeometry(BoundGeometry geometry_to_bind); | 
| -  void SetStencilEnabled(bool enabled); | 
| -  bool stencil_enabled() const { return stencil_shadow_; } | 
| -  void SetBlendEnabled(bool enabled); | 
| -  bool blend_enabled() const { return blend_shadow_; } | 
| - | 
| -  void BindFramebufferToOutputSurface(DrawingFrame* frame) override; | 
| -  bool BindFramebufferToTexture(DrawingFrame* frame, | 
| -                                const ScopedResource* resource, | 
| -                                const gfx::Rect& target_rect) override; | 
| -  void SetDrawViewport(const gfx::Rect& window_space_viewport) override; | 
| -  void SetScissorTestRect(const gfx::Rect& scissor_rect) override; | 
| -  void PrepareSurfaceForPass(DrawingFrame* frame, | 
| -                             SurfaceInitializationMode initialization_mode, | 
| -                             const gfx::Rect& render_pass_scissor) override; | 
| -  void DoDrawQuad(DrawingFrame* frame, | 
| -                  const class DrawQuad*, | 
| -                  const gfx::QuadF* draw_region) override; | 
| -  void BeginDrawingFrame(DrawingFrame* frame) override; | 
| -  void FinishDrawingFrame(DrawingFrame* frame) override; | 
| -  bool FlippedFramebuffer(const DrawingFrame* frame) const override; | 
| -  bool FlippedRootFramebuffer() const; | 
| -  void EnsureScissorTestEnabled() override; | 
| -  void EnsureScissorTestDisabled() override; | 
| -  void CopyCurrentRenderPassToBitmap( | 
| -      DrawingFrame* frame, | 
| -      scoped_ptr<CopyOutputRequest> request) override; | 
| -  void FinishDrawingQuadList() override; | 
| - | 
| -  // Returns true if quad requires antialiasing and false otherwise. | 
| -  static bool ShouldAntialiasQuad(const gfx::Transform& device_transform, | 
| -                                  const DrawQuad* quad, | 
| -                                  bool force_antialiasing); | 
| - | 
| -  // Inflate the quad and fill edge array for fragment shader. | 
| -  // |local_quad| is set to inflated quad. |edge| array is filled with | 
| -  // inflated quad's edge data. | 
| -  static void SetupQuadForClippingAndAntialiasing( | 
| -      const gfx::Transform& device_transform, | 
| -      const DrawQuad* quad, | 
| -      bool use_aa, | 
| -      const gfx::QuadF* clip_region, | 
| -      gfx::QuadF* local_quad, | 
| -      float edge[24]); | 
| - | 
| - private: | 
| -  friend class GLRendererShaderPixelTest; | 
| -  friend class GLRendererShaderTest; | 
| - | 
| -  static void ToGLMatrix(float* gl_matrix, const gfx::Transform& transform); | 
| - | 
| -  void DiscardPixels(); | 
| -  void ClearFramebuffer(DrawingFrame* frame); | 
| - | 
| -  void DrawCheckerboardQuad(const DrawingFrame* frame, | 
| -                            const CheckerboardDrawQuad* quad, | 
| -                            const gfx::QuadF* clip_region); | 
| -  void DrawDebugBorderQuad(const DrawingFrame* frame, | 
| -                           const DebugBorderDrawQuad* quad); | 
| -  static bool IsDefaultBlendMode(SkXfermode::Mode blend_mode) { | 
| -    return blend_mode == SkXfermode::kSrcOver_Mode; | 
| -  } | 
| -  bool CanApplyBlendModeUsingBlendFunc(SkXfermode::Mode blend_mode); | 
| -  void ApplyBlendModeUsingBlendFunc(SkXfermode::Mode blend_mode); | 
| -  void RestoreBlendFuncToDefault(SkXfermode::Mode blend_mode); | 
| - | 
| -  gfx::Rect GetBackdropBoundingBoxForRenderPassQuad( | 
| -      DrawingFrame* frame, | 
| -      const RenderPassDrawQuad* quad, | 
| -      const gfx::Transform& contents_device_transform, | 
| -      const gfx::QuadF* clip_region, | 
| -      bool use_aa); | 
| -  scoped_ptr<ScopedResource> GetBackdropTexture(const gfx::Rect& bounding_rect); | 
| - | 
| -  void DrawRenderPassQuad(DrawingFrame* frame, | 
| -                          const RenderPassDrawQuad* quadi, | 
| -                          const gfx::QuadF* clip_region); | 
| -  void DrawSolidColorQuad(const DrawingFrame* frame, | 
| -                          const SolidColorDrawQuad* quad, | 
| -                          const gfx::QuadF* clip_region); | 
| -  void DrawStreamVideoQuad(const DrawingFrame* frame, | 
| -                           const StreamVideoDrawQuad* quad, | 
| -                           const gfx::QuadF* clip_region); | 
| -  void DrawTextureQuad(const DrawingFrame* frame, | 
| -                       const TextureDrawQuad* quad, | 
| -                       const gfx::QuadF* clip_region); | 
| -  void EnqueueTextureQuad(const DrawingFrame* frame, | 
| -                          const TextureDrawQuad* quad, | 
| -                          const gfx::QuadF* clip_region); | 
| -  void FlushTextureQuadCache(BoundGeometry flush_binding); | 
| -  void DrawIOSurfaceQuad(const DrawingFrame* frame, | 
| -                         const IOSurfaceDrawQuad* quad, | 
| -                         const gfx::QuadF* clip_region); | 
| -  void DrawTileQuad(const DrawingFrame* frame, | 
| -                    const TileDrawQuad* quad, | 
| -                    const gfx::QuadF* clip_region); | 
| -  void DrawContentQuad(const DrawingFrame* frame, | 
| -                       const ContentDrawQuadBase* quad, | 
| -                       ResourceProvider::ResourceId resource_id, | 
| -                       const gfx::QuadF* clip_region); | 
| -  void DrawContentQuadAA(const DrawingFrame* frame, | 
| -                         const ContentDrawQuadBase* quad, | 
| -                         ResourceProvider::ResourceId resource_id, | 
| -                         const gfx::Transform& device_transform, | 
| -                         const gfx::QuadF* clip_region); | 
| -  void DrawContentQuadNoAA(const DrawingFrame* frame, | 
| -                           const ContentDrawQuadBase* quad, | 
| -                           ResourceProvider::ResourceId resource_id, | 
| -                           const gfx::QuadF* clip_region); | 
| -  void DrawYUVVideoQuad(const DrawingFrame* frame, | 
| -                        const YUVVideoDrawQuad* quad, | 
| -                        const gfx::QuadF* clip_region); | 
| -  void DrawPictureQuad(const DrawingFrame* frame, | 
| -                       const PictureDrawQuad* quad, | 
| -                       const gfx::QuadF* clip_region); | 
| - | 
| -  void SetShaderOpacity(float opacity, int alpha_location); | 
| -  void SetShaderQuadF(const gfx::QuadF& quad, int quad_location); | 
| -  void DrawQuadGeometryClippedByQuadF(const DrawingFrame* frame, | 
| -                                      const gfx::Transform& draw_transform, | 
| -                                      const gfx::RectF& quad_rect, | 
| -                                      const gfx::QuadF& clipping_region_quad, | 
| -                                      int matrix_location, | 
| -                                      const float uv[8]); | 
| -  void DrawQuadGeometry(const DrawingFrame* frame, | 
| -                        const gfx::Transform& draw_transform, | 
| -                        const gfx::RectF& quad_rect, | 
| -                        int matrix_location); | 
| -  void SetUseProgram(unsigned program); | 
| - | 
| -  bool UseScopedTexture(DrawingFrame* frame, | 
| -                        const ScopedResource* resource, | 
| -                        const gfx::Rect& viewport_rect); | 
| - | 
| -  bool MakeContextCurrent(); | 
| - | 
| -  void InitializeSharedObjects(); | 
| -  void CleanupSharedObjects(); | 
| - | 
| -  typedef base::Callback<void(scoped_ptr<CopyOutputRequest> copy_request, | 
| -                              bool success)> | 
| -      AsyncGetFramebufferPixelsCleanupCallback; | 
| -  void FinishedReadback(unsigned source_buffer, | 
| -                        unsigned query, | 
| -                        const gfx::Size& size); | 
| - | 
| -  void ReinitializeGLState(); | 
| -  void RestoreGLState(); | 
| -  void RestoreFramebuffer(DrawingFrame* frame); | 
| - | 
| -  void DiscardBackbuffer() override; | 
| -  void EnsureBackbuffer() override; | 
| -  void EnforceMemoryPolicy(); | 
| - | 
| -  void ScheduleOverlays(DrawingFrame* frame); | 
| - | 
| -  typedef ScopedPtrVector<ResourceProvider::ScopedReadLockGL> | 
| -      OverlayResourceLockList; | 
| -  OverlayResourceLockList pending_overlay_resources_; | 
| -  OverlayResourceLockList in_use_overlay_resources_; | 
| - | 
| -  RendererCapabilitiesImpl capabilities_; | 
| - | 
| -  unsigned offscreen_framebuffer_id_; | 
| - | 
| -  scoped_ptr<StaticGeometryBinding> shared_geometry_; | 
| -  scoped_ptr<DynamicGeometryBinding> clipped_geometry_; | 
| -  gfx::QuadF shared_geometry_quad_; | 
| - | 
| -  // This block of bindings defines all of the programs used by the compositor | 
| -  // itself.  Add any new programs here to GLRendererShaderTest. | 
| - | 
| -  // Tiled layer shaders. | 
| -  typedef ProgramBinding<VertexShaderTile, FragmentShaderRGBATexAlpha> | 
| -      TileProgram; | 
| -  typedef ProgramBinding<VertexShaderTileAA, FragmentShaderRGBATexClampAlphaAA> | 
| -      TileProgramAA; | 
| -  typedef ProgramBinding<VertexShaderTileAA, | 
| -                         FragmentShaderRGBATexClampSwizzleAlphaAA> | 
| -      TileProgramSwizzleAA; | 
| -  typedef ProgramBinding<VertexShaderTile, FragmentShaderRGBATexOpaque> | 
| -      TileProgramOpaque; | 
| -  typedef ProgramBinding<VertexShaderTile, FragmentShaderRGBATexSwizzleAlpha> | 
| -      TileProgramSwizzle; | 
| -  typedef ProgramBinding<VertexShaderTile, FragmentShaderRGBATexSwizzleOpaque> | 
| -      TileProgramSwizzleOpaque; | 
| -  typedef ProgramBinding<VertexShaderPosTex, FragmentShaderCheckerboard> | 
| -      TileCheckerboardProgram; | 
| - | 
| -  // Texture shaders. | 
| -  typedef ProgramBinding<VertexShaderPosTexTransform, | 
| -                         FragmentShaderRGBATexVaryingAlpha> TextureProgram; | 
| -  typedef ProgramBinding<VertexShaderPosTexTransform, | 
| -                         FragmentShaderRGBATexPremultiplyAlpha> | 
| -      NonPremultipliedTextureProgram; | 
| -  typedef ProgramBinding<VertexShaderPosTexTransform, | 
| -                         FragmentShaderTexBackgroundVaryingAlpha> | 
| -      TextureBackgroundProgram; | 
| -  typedef ProgramBinding<VertexShaderPosTexTransform, | 
| -                         FragmentShaderTexBackgroundPremultiplyAlpha> | 
| -      NonPremultipliedTextureBackgroundProgram; | 
| - | 
| -  // Render surface shaders. | 
| -  typedef ProgramBinding<VertexShaderPosTexTransform, | 
| -                         FragmentShaderRGBATexAlpha> RenderPassProgram; | 
| -  typedef ProgramBinding<VertexShaderPosTexTransform, | 
| -                         FragmentShaderRGBATexAlphaMask> RenderPassMaskProgram; | 
| -  typedef ProgramBinding<VertexShaderQuadTexTransformAA, | 
| -                         FragmentShaderRGBATexAlphaAA> RenderPassProgramAA; | 
| -  typedef ProgramBinding<VertexShaderQuadTexTransformAA, | 
| -                         FragmentShaderRGBATexAlphaMaskAA> | 
| -      RenderPassMaskProgramAA; | 
| -  typedef ProgramBinding<VertexShaderPosTexTransform, | 
| -                         FragmentShaderRGBATexColorMatrixAlpha> | 
| -      RenderPassColorMatrixProgram; | 
| -  typedef ProgramBinding<VertexShaderQuadTexTransformAA, | 
| -                         FragmentShaderRGBATexAlphaMaskColorMatrixAA> | 
| -      RenderPassMaskColorMatrixProgramAA; | 
| -  typedef ProgramBinding<VertexShaderQuadTexTransformAA, | 
| -                         FragmentShaderRGBATexAlphaColorMatrixAA> | 
| -      RenderPassColorMatrixProgramAA; | 
| -  typedef ProgramBinding<VertexShaderPosTexTransform, | 
| -                         FragmentShaderRGBATexAlphaMaskColorMatrix> | 
| -      RenderPassMaskColorMatrixProgram; | 
| - | 
| -  // Video shaders. | 
| -  typedef ProgramBinding<VertexShaderVideoTransform, FragmentShaderRGBATex> | 
| -      VideoStreamTextureProgram; | 
| -  typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, | 
| -                         FragmentShaderYUVVideo> VideoYUVProgram; | 
| -  typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, | 
| -                         FragmentShaderYUVAVideo> VideoYUVAProgram; | 
| - | 
| -  // Special purpose / effects shaders. | 
| -  typedef ProgramBinding<VertexShaderPos, FragmentShaderColor> | 
| -      DebugBorderProgram; | 
| -  typedef ProgramBinding<VertexShaderQuad, FragmentShaderColor> | 
| -      SolidColorProgram; | 
| -  typedef ProgramBinding<VertexShaderQuadAA, FragmentShaderColorAA> | 
| -      SolidColorProgramAA; | 
| - | 
| -  const TileProgram* GetTileProgram( | 
| -      TexCoordPrecision precision, SamplerType sampler); | 
| -  const TileProgramOpaque* GetTileProgramOpaque( | 
| -      TexCoordPrecision precision, SamplerType sampler); | 
| -  const TileProgramAA* GetTileProgramAA( | 
| -      TexCoordPrecision precision, SamplerType sampler); | 
| -  const TileProgramSwizzle* GetTileProgramSwizzle( | 
| -      TexCoordPrecision precision, SamplerType sampler); | 
| -  const TileProgramSwizzleOpaque* GetTileProgramSwizzleOpaque( | 
| -      TexCoordPrecision precision, SamplerType sampler); | 
| -  const TileProgramSwizzleAA* GetTileProgramSwizzleAA( | 
| -      TexCoordPrecision precision, SamplerType sampler); | 
| - | 
| -  const TileCheckerboardProgram* GetTileCheckerboardProgram(); | 
| - | 
| -  const RenderPassProgram* GetRenderPassProgram(TexCoordPrecision precision, | 
| -                                                BlendMode blend_mode); | 
| -  const RenderPassProgramAA* GetRenderPassProgramAA(TexCoordPrecision precision, | 
| -                                                    BlendMode blend_mode); | 
| -  const RenderPassMaskProgram* GetRenderPassMaskProgram( | 
| -      TexCoordPrecision precision, | 
| -      SamplerType sampler, | 
| -      BlendMode blend_mode, | 
| -      bool mask_for_background); | 
| -  const RenderPassMaskProgramAA* GetRenderPassMaskProgramAA( | 
| -      TexCoordPrecision precision, | 
| -      SamplerType sampler, | 
| -      BlendMode blend_mode, | 
| -      bool mask_for_background); | 
| -  const RenderPassColorMatrixProgram* GetRenderPassColorMatrixProgram( | 
| -      TexCoordPrecision precision, | 
| -      BlendMode blend_mode); | 
| -  const RenderPassColorMatrixProgramAA* GetRenderPassColorMatrixProgramAA( | 
| -      TexCoordPrecision precision, | 
| -      BlendMode blend_mode); | 
| -  const RenderPassMaskColorMatrixProgram* GetRenderPassMaskColorMatrixProgram( | 
| -      TexCoordPrecision precision, | 
| -      SamplerType sampler, | 
| -      BlendMode blend_mode, | 
| -      bool mask_for_background); | 
| -  const RenderPassMaskColorMatrixProgramAA* | 
| -  GetRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision, | 
| -                                        SamplerType sampler, | 
| -                                        BlendMode blend_mode, | 
| -                                        bool mask_for_background); | 
| - | 
| -  const TextureProgram* GetTextureProgram( | 
| -      TexCoordPrecision precision); | 
| -  const NonPremultipliedTextureProgram* GetNonPremultipliedTextureProgram( | 
| -      TexCoordPrecision precision); | 
| -  const TextureBackgroundProgram* GetTextureBackgroundProgram( | 
| -      TexCoordPrecision precision); | 
| -  const NonPremultipliedTextureBackgroundProgram* | 
| -      GetNonPremultipliedTextureBackgroundProgram(TexCoordPrecision precision); | 
| -  const TextureProgram* GetTextureIOSurfaceProgram( | 
| -      TexCoordPrecision precision); | 
| - | 
| -  const VideoYUVProgram* GetVideoYUVProgram( | 
| -      TexCoordPrecision precision); | 
| -  const VideoYUVAProgram* GetVideoYUVAProgram( | 
| -      TexCoordPrecision precision); | 
| -  const VideoStreamTextureProgram* GetVideoStreamTextureProgram( | 
| -      TexCoordPrecision precision); | 
| - | 
| -  const DebugBorderProgram* GetDebugBorderProgram(); | 
| -  const SolidColorProgram* GetSolidColorProgram(); | 
| -  const SolidColorProgramAA* GetSolidColorProgramAA(); | 
| - | 
| -  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]; | 
| - | 
| -  TileCheckerboardProgram tile_checkerboard_program_; | 
| - | 
| -  TextureProgram texture_program_[LAST_TEX_COORD_PRECISION + 1]; | 
| -  NonPremultipliedTextureProgram | 
| -      nonpremultiplied_texture_program_[LAST_TEX_COORD_PRECISION + 1]; | 
| -  TextureBackgroundProgram | 
| -      texture_background_program_[LAST_TEX_COORD_PRECISION + 1]; | 
| -  NonPremultipliedTextureBackgroundProgram | 
| -      nonpremultiplied_texture_background_program_[LAST_TEX_COORD_PRECISION + | 
| -                                                   1]; | 
| -  TextureProgram texture_io_surface_program_[LAST_TEX_COORD_PRECISION + 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]; | 
| - | 
| -  VideoYUVProgram video_yuv_program_[LAST_TEX_COORD_PRECISION + 1]; | 
| -  VideoYUVAProgram video_yuva_program_[LAST_TEX_COORD_PRECISION + 1]; | 
| -  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_; | 
| - | 
| -  TextureMailboxDeleter* texture_mailbox_deleter_; | 
| - | 
| -  gfx::Rect swap_buffer_rect_; | 
| -  gfx::Rect scissor_rect_; | 
| -  gfx::Rect viewport_; | 
| -  bool is_backbuffer_discarded_; | 
| -  bool is_using_bind_uniform_; | 
| -  bool is_scissor_enabled_; | 
| -  bool scissor_rect_needs_reset_; | 
| -  bool stencil_shadow_; | 
| -  bool blend_shadow_; | 
| -  unsigned program_shadow_; | 
| -  TexturedQuadDrawCache draw_cache_; | 
| -  int highp_threshold_min_; | 
| -  int highp_threshold_cache_; | 
| - | 
| -  struct PendingAsyncReadPixels; | 
| -  ScopedPtrVector<PendingAsyncReadPixels> pending_async_read_pixels_; | 
| - | 
| -  scoped_ptr<ResourceProvider::ScopedWriteLockGL> current_framebuffer_lock_; | 
| - | 
| -  class SyncQuery; | 
| -  ScopedPtrDeque<SyncQuery> pending_sync_queries_; | 
| -  ScopedPtrDeque<SyncQuery> available_sync_queries_; | 
| -  scoped_ptr<SyncQuery> current_sync_query_; | 
| -  bool use_sync_query_; | 
| -  bool use_blend_equation_advanced_; | 
| -  bool use_blend_equation_advanced_coherent_; | 
| - | 
| -  SkBitmap on_demand_tile_raster_bitmap_; | 
| -  ResourceProvider::ResourceId on_demand_tile_raster_resource_id_; | 
| -  BoundGeometry bound_geometry_; | 
| -  DISALLOW_COPY_AND_ASSIGN(GLRenderer); | 
| -}; | 
| - | 
| -// Setting DEBUG_GL_CALLS to 1 will call glGetError() after almost every GL | 
| -// call made by the compositor. Useful for debugging rendering issues but | 
| -// will significantly degrade performance. | 
| -#define DEBUG_GL_CALLS 0 | 
| - | 
| -#if DEBUG_GL_CALLS && !defined(NDEBUG) | 
| -#define GLC(context, x)                                                        \ | 
| -  (x, GLRenderer::DebugGLCall(&* context, #x, __FILE__, __LINE__)) | 
| -#else | 
| -#define GLC(context, x) (x) | 
| -#endif | 
| - | 
| -}  // namespace cc | 
| - | 
| -#endif  // CC_OUTPUT_GL_RENDERER_H_ | 
|  |