summaryrefslogtreecommitdiffstats
path: root/chromium/cc/output/renderer.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/cc/output/renderer.h')
-rw-r--r--chromium/cc/output/renderer.h47
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);