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..993ef4483144cf69d1744b1b8639d6433c30cfbc 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 frambuffer. |
| + 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_; |
|
Daniele Castagna
2017/01/09 18:53:06
Why don't you just use std::bitset here?
Daniele Castagna
2017/01/09 18:53:06
Why don't you just use std::bitset here?
reveman
2017/01/10 23:52:01
That requires knowing the number of overdraw categ
reveman
2017/01/11 03:22:02
Fyi, follow up patch that uses SAMPLES_PASSED_ARB
|
| + unsigned offscreen_stencil_renderbuffer_id_ = 0; |
| + gfx::Size offscreen_stencil_renderbuffer_size_; |
| + struct PendingOverdrawQuery; |
| + std::deque<std::unique_ptr<PendingOverdrawQuery>> pending_overdraw_queries_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(GLRenderer); |
| }; |