diff options
Diffstat (limited to 'chromium/cc/output/renderer.h')
-rw-r--r-- | chromium/cc/output/renderer.h | 47 |
1 files changed, 32 insertions, 15 deletions
diff --git a/chromium/cc/output/renderer.h b/chromium/cc/output/renderer.h index 147b535fd72..d95a7479188 100644 --- a/chromium/cc/output/renderer.h +++ b/chromium/cc/output/renderer.h @@ -15,19 +15,40 @@ namespace cc { class CompositorFrameAck; class CompositorFrameMetadata; class ScopedResource; +class Task; + +struct RendererCapabilitiesImpl { + RendererCapabilitiesImpl(); + ~RendererCapabilitiesImpl(); + + // Capabilities copied to main thread. + ResourceFormat best_texture_format; + bool allow_partial_texture_updates; + int max_texture_size; + bool using_shared_memory_resources; + + // Capabilities used on compositor thread only. + bool using_partial_swap; + bool using_egl_image; + bool avoid_pow2_textures; + bool using_map_image; + bool using_discard_framebuffer; + bool allow_rasterize_on_demand; + + RendererCapabilities MainThreadCapabilities() const; +}; class CC_EXPORT RendererClient { public: virtual void SetFullRootLayerDamage() = 0; + virtual void RunOnDemandRasterTask(Task* on_demand_raster_task) = 0; }; class CC_EXPORT Renderer { public: virtual ~Renderer() {} - virtual const RendererCapabilities& Capabilities() const = 0; - - virtual bool CanReadPixels() const = 0; + virtual const RendererCapabilitiesImpl& Capabilities() const = 0; virtual void DecideRenderPassAllocationsForFrame( const RenderPassList& render_passes_in_draw_order) {} @@ -39,11 +60,9 @@ class CC_EXPORT Renderer { // The |device_viewport_rect| and |device_clip_rect| are in non-y-flipped // window space. virtual void DrawFrame(RenderPassList* render_passes_in_draw_order, - ContextProvider* offscreen_context_provider, float device_scale_factor, - gfx::Rect device_viewport_rect, - gfx::Rect device_clip_rect, - bool allow_partial_swap, + const gfx::Rect& device_viewport_rect, + const gfx::Rect& device_clip_rect, bool disable_picture_quad_image_filtering) = 0; // Waits for rendering to finish. @@ -55,22 +74,20 @@ class CC_EXPORT Renderer { virtual void SwapBuffers(const CompositorFrameMetadata& metadata) = 0; virtual void ReceiveSwapBuffersAck(const CompositorFrameAck& ack) {} - virtual void GetFramebufferPixels(void* pixels, gfx::Rect rect) = 0; - virtual bool IsContextLost(); - virtual void SetVisible(bool visible) = 0; - - virtual void SendManagedMemoryStats(size_t bytes_visible, - size_t bytes_visible_and_nearby, - size_t bytes_allocated) = 0; + bool visible() const { return visible_; } + void SetVisible(bool visible); protected: explicit Renderer(RendererClient* client, const LayerTreeSettings* settings) - : client_(client), settings_(settings) {} + : client_(client), settings_(settings), visible_(true) {} + + virtual void DidChangeVisibility() = 0; RendererClient* client_; const LayerTreeSettings* settings_; + bool visible_; private: DISALLOW_COPY_AND_ASSIGN(Renderer); |