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

Unified Diff: content/browser/compositor/gpu_browser_compositor_output_surface.cc

Issue 1962493002: Make Mac swap code like other platforms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Incorporate review feedback Created 4 years, 7 months 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
Index: content/browser/compositor/gpu_browser_compositor_output_surface.cc
diff --git a/content/browser/compositor/gpu_browser_compositor_output_surface.cc b/content/browser/compositor/gpu_browser_compositor_output_surface.cc
index 7226a7cab02018c289043233f5d1056ab40f533c..8d10b058ac1ac42b457e4dc8ef8ed4c7fa3e43ee 100644
--- a/content/browser/compositor/gpu_browser_compositor_output_surface.cc
+++ b/content/browser/compositor/gpu_browser_compositor_output_surface.cc
@@ -17,6 +17,12 @@
#include "gpu/command_buffer/client/context_support.h"
#include "gpu/ipc/client/command_buffer_proxy_impl.h"
+#if defined(OS_MACOSX)
+#include "content/browser/gpu/gpu_surface_tracker.h"
+#include "gpu/ipc/client/gpu_process_hosted_ca_layer_tree_params.h"
+#include "ui/accelerated_widget_mac/accelerated_widget_mac.h"
+#endif
+
namespace content {
GpuBrowserCompositorOutputSurface::GpuBrowserCompositorOutputSurface(
@@ -118,7 +124,20 @@ void GpuBrowserCompositorOutputSurface::SwapBuffers(
void GpuBrowserCompositorOutputSurface::OnGpuSwapBuffersCompleted(
const std::vector<ui::LatencyInfo>& latency_info,
- gfx::SwapResult result) {
+ gfx::SwapResult result,
+ const gpu::GpuProcessHostedCALayerTreeParamsMac* params_mac) {
+#if defined(OS_MACOSX)
+ if (!SurfaceIsSuspendForRecycle()) {
+ gfx::AcceleratedWidget native_widget =
+ content::GpuSurfaceTracker::Get()->AcquireNativeWidget(
+ params_mac->surface_handle);
+ ui::AcceleratedWidgetMacGotFrame(
+ native_widget, params_mac->ca_context_id,
+ params_mac->fullscreen_low_power_ca_context_valid,
+ params_mac->fullscreen_low_power_ca_context_id, params_mac->io_surface,
+ params_mac->pixel_size, params_mac->scale_factor, nullptr, nullptr);
+ }
+#endif
RenderWidgetHostImpl::CompositorFrameDrawn(latency_info);
OnSwapBuffersComplete();
}

Powered by Google App Engine
This is Rietveld 408576698