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

Unified Diff: blimp/client/app/compositor/browser_compositor.cc

Issue 2498053004: Add InProcessContextProvider and update InProcessCommandBuffer (Closed)
Patch Set: Remove Surface on RemoveCompositor 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
Index: blimp/client/app/compositor/browser_compositor.cc
diff --git a/blimp/client/app/compositor/browser_compositor.cc b/blimp/client/app/compositor/browser_compositor.cc
index 9aa4811f00fa3a66668a73229962dad310ca36fb..c87d52cd44b0917dafb777afc8dc0c5287997dce 100644
--- a/blimp/client/app/compositor/browser_compositor.cc
+++ b/blimp/client/app/compositor/browser_compositor.cc
@@ -7,6 +7,7 @@
#include "blimp/client/public/compositor/compositor_dependencies.h"
#include "blimp/client/support/compositor/blimp_context_provider.h"
#include "cc/output/context_provider.h"
+#include "gpu/ipc/common/gpu_surface_tracker.h"
namespace blimp {
namespace client {
@@ -15,14 +16,22 @@ BrowserCompositor::BrowserCompositor(
CompositorDependencies* compositor_dependencies)
: BlimpEmbedderCompositor(compositor_dependencies) {}
-BrowserCompositor::~BrowserCompositor() = default;
+BrowserCompositor::~BrowserCompositor() {
+ if (surface_handle_ != gpu::kNullSurfaceHandle) {
+ gpu::GpuSurfaceTracker::Get()->RemoveSurface(surface_handle_);
+ }
+}
void BrowserCompositor::SetAcceleratedWidget(gfx::AcceleratedWidget widget) {
scoped_refptr<cc::ContextProvider> provider;
if (widget != gfx::kNullAcceleratedWidget) {
+ DCHECK_EQ(gpu::kNullSurfaceHandle, surface_handle_);
+ surface_handle_ =
+ gpu::GpuSurfaceTracker::Get()->AddSurfaceForNativeWidget(widget);
provider = BlimpContextProvider::Create(
- widget, compositor_dependencies()->GetGpuMemoryBufferManager());
+ surface_handle_,
+ compositor_dependencies()->GetGpuMemoryBufferManager());
}
SetContextProvider(std::move(provider));

Powered by Google App Engine
This is Rietveld 408576698