Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(676)

Unified Diff: services/ui/surfaces/direct_output_surface_ozone.cc

Issue 2529703002: Mus: Install SwapBuffersCompleted/VSync callbacks to DirectOutputSurface(Ozone) (Closed)
Patch Set: Grab capabilities from the InProcessCommandBuffer instead of making them up Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « services/ui/surfaces/direct_output_surface_ozone.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/surfaces/direct_output_surface_ozone.cc
diff --git a/services/ui/surfaces/direct_output_surface_ozone.cc b/services/ui/surfaces/direct_output_surface_ozone.cc
index 2821826221261e8e2755c4798e4592a1ecf4238c..18591694591e61faf01cb0809312baa94e1d73bb 100644
--- a/services/ui/surfaces/direct_output_surface_ozone.cc
+++ b/services/ui/surfaces/direct_output_surface_ozone.cc
@@ -53,7 +53,10 @@ DirectOutputSurfaceOzone::DirectOutputSurfaceOzone(
context_provider->SetSwapBuffersCompletionCallback(
base::Bind(&DirectOutputSurfaceOzone::OnGpuSwapBuffersCompleted,
- base::Unretained(this)));
+ weak_ptr_factory_.GetWeakPtr()));
+ context_provider->SetUpdateVSyncParametersCallback(
+ base::Bind(&DirectOutputSurfaceOzone::OnVSyncParametersUpdated,
+ weak_ptr_factory_.GetWeakPtr()));
}
DirectOutputSurfaceOzone::~DirectOutputSurfaceOzone() {
@@ -140,13 +143,6 @@ bool DirectOutputSurfaceOzone::HasExternalStencilTest() const {
void DirectOutputSurfaceOzone::ApplyExternalStencil() {}
-void DirectOutputSurfaceOzone::OnUpdateVSyncParametersFromGpu(
- base::TimeTicks timebase,
- base::TimeDelta interval) {
- DCHECK(client_);
- synthetic_begin_frame_source_->OnUpdateVSyncParameters(timebase, interval);
-}
-
void DirectOutputSurfaceOzone::OnGpuSwapBuffersCompleted(
const std::vector<ui::LatencyInfo>& latency_info,
gfx::SwapResult result,
@@ -167,4 +163,13 @@ void DirectOutputSurfaceOzone::OnGpuSwapBuffersCompleted(
client_->SetNeedsRedrawRect(gfx::Rect(swap_size_));
}
+void DirectOutputSurfaceOzone::OnVSyncParametersUpdated(
+ base::TimeTicks timebase,
+ base::TimeDelta interval) {
+ // TODO(brianderson): We should not be receiving 0 intervals.
+ synthetic_begin_frame_source_->OnUpdateVSyncParameters(
+ timebase,
+ interval.is_zero() ? cc::BeginFrameArgs::DefaultInterval() : interval);
+}
+
} // namespace ui
« no previous file with comments | « services/ui/surfaces/direct_output_surface_ozone.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698