Chromium Code Reviews| Index: cc/output/gl_renderer.h |
| diff --git a/cc/output/gl_renderer.h b/cc/output/gl_renderer.h |
| index 2af2c3091e04adaea2d2c0b298383a841be91659..553f346814c91a746bdbf5efd3cbc3637ca53c03 100644 |
| --- a/cc/output/gl_renderer.h |
| +++ b/cc/output/gl_renderer.h |
| @@ -6,6 +6,7 @@ |
| #define CC_OUTPUT_GL_RENDERER_H_ |
| #include <deque> |
| +#include <set> |
| #include <vector> |
| #include "base/cancelable_callback.h" |
| @@ -270,6 +271,14 @@ class CC_EXPORT GLRenderer : public DirectRenderer { |
| void ScheduleRenderPassDrawQuad(const CALayerOverlay* ca_layer_overlay, |
| DrawingFrame* external_frame); |
| + // Setup/flush all pending overdraw feedback to framebuffer. |
| + void SetupOverdrawFeedback(); |
| + void FlushOverdrawFeedback(const DrawingFrame* frame, |
| + const gfx::Rect& output_rect); |
| + // Process overdraw feedback from query. |
| + void OverdrawFeedback(unsigned query, int category, base::Closure barrier); |
| + void UpdateOverdrawCounter() const; |
| + |
| using OverlayResourceLock = |
| std::unique_ptr<ResourceProvider::ScopedReadLockGL>; |
| using OverlayResourceLockList = std::vector<OverlayResourceLock>; |
| @@ -543,6 +552,13 @@ class CC_EXPORT GLRenderer : public DirectRenderer { |
| BoundGeometry bound_geometry_; |
| ColorLUTCache color_lut_cache_; |
| + |
| + std::set<int> current_overdraw_; |
|
danakj
2017/01/12 00:42:58
set is very slow, is there a better structure you
reveman
2017/01/13 01:27:43
FYI, this will become a map in a follow up patch w
|
| + unsigned offscreen_stencil_renderbuffer_id_ = 0; |
| + gfx::Size offscreen_stencil_renderbuffer_size_; |
| + struct PendingOverdrawQuery; |
| + std::deque<std::unique_ptr<PendingOverdrawQuery>> pending_overdraw_queries_; |
|
danakj
2017/01/12 00:42:58
deque is very costly for memory https://bugs.chrom
reveman
2017/01/13 01:27:43
Removed this completely from latest version of the
|
| + |
| DISALLOW_COPY_AND_ASSIGN(GLRenderer); |
| }; |