| Index: cc/surfaces/display.h
|
| diff --git a/cc/surfaces/display.h b/cc/surfaces/display.h
|
| index 3ab9cefbe8682085a6740c4d70f312b6f272f480..d3e256d770068c2dfd3b7acefd207865c491eb31 100644
|
| --- a/cc/surfaces/display.h
|
| +++ b/cc/surfaces/display.h
|
| @@ -55,11 +55,12 @@ class CC_SURFACES_EXPORT Display : public DisplaySchedulerClient,
|
| SurfaceManager* manager,
|
| SharedBitmapManager* bitmap_manager,
|
| gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
|
| - const RendererSettings& settings);
|
| + const RendererSettings& settings,
|
| + uint32_t compositor_surface_namespace);
|
| ~Display() override;
|
|
|
| bool Initialize(std::unique_ptr<OutputSurface> output_surface,
|
| - DisplayScheduler* scheduler);
|
| + base::SingleThreadTaskRunner* task_runner);
|
|
|
| // device_scale_factor is used to communicate to the external window system
|
| // what scale this was rendered at.
|
| @@ -74,7 +75,8 @@ class CC_SURFACES_EXPORT Display : public DisplaySchedulerClient,
|
|
|
| // OutputSurfaceClient implementation.
|
| void CommitVSyncParameters(base::TimeTicks timebase,
|
| - base::TimeDelta interval) override;
|
| + base::TimeDelta interval) override {}
|
| + void SetBeginFrameSource(BeginFrameSource* source) override;
|
| void SetNeedsRedrawRect(const gfx::Rect& damage_rect) override;
|
| void DidSwapBuffers() override;
|
| void DidSwapBuffersComplete() override;
|
| @@ -96,28 +98,39 @@ class CC_SURFACES_EXPORT Display : public DisplaySchedulerClient,
|
| // SurfaceDamageObserver implementation.
|
| void OnSurfaceDamaged(SurfaceId surface, bool* changed) override;
|
|
|
| - private:
|
| + protected:
|
| + // Virtual for tests.
|
| + virtual void CreateScheduler(base::SingleThreadTaskRunner* task_runner);
|
| +
|
| void InitializeRenderer();
|
| void UpdateRootSurfaceResourcesLocked();
|
|
|
| DisplayClient* client_;
|
| - SurfaceManager* manager_;
|
| + SurfaceManager* surface_manager_;
|
| SharedBitmapManager* bitmap_manager_;
|
| gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager_;
|
| RendererSettings settings_;
|
| SurfaceId current_surface_id_;
|
| + uint32_t compositor_surface_namespace_;
|
| gfx::Size current_surface_size_;
|
| float device_scale_factor_;
|
| bool swapped_since_resize_;
|
| gfx::Rect external_clip_;
|
| std::unique_ptr<OutputSurface> output_surface_;
|
| - DisplayScheduler* scheduler_;
|
| + // An internal synthetic BFS. May be null when not used.
|
| + std::unique_ptr<BeginFrameSource> internal_begin_frame_source_;
|
| + // The real BFS tied to vsync provided by the BrowserCompositorOutputSurface.
|
| + BeginFrameSource* vsync_begin_frame_source_;
|
| + // The current BFS driving the Display/DisplayScheduler.
|
| + BeginFrameSource* observed_begin_frame_source_;
|
| + std::unique_ptr<DisplayScheduler> scheduler_;
|
| std::unique_ptr<ResourceProvider> resource_provider_;
|
| std::unique_ptr<SurfaceAggregator> aggregator_;
|
| std::unique_ptr<DirectRenderer> renderer_;
|
| std::unique_ptr<TextureMailboxDeleter> texture_mailbox_deleter_;
|
| std::vector<ui::LatencyInfo> stored_latency_info_;
|
|
|
| + private:
|
| DISALLOW_COPY_AND_ASSIGN(Display);
|
| };
|
|
|
|
|