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_ |