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

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

Issue 2352963002: cc: Make most of cc::OutputSurface abstract. (Closed)
Patch Set: outputsurface-cleanup: rebase Created 4 years, 3 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 5a9da8e31032039ebec89e590ae47f4715538b13..fec90677d6ebd49da7c18f60bcbae4f70c66deb9 100644
--- a/content/browser/compositor/gpu_browser_compositor_output_surface.cc
+++ b/content/browser/compositor/gpu_browser_compositor_output_surface.cc
@@ -15,6 +15,7 @@
#include "content/browser/renderer_host/render_widget_host_impl.h"
#include "content/common/gpu/client/context_provider_command_buffer.h"
#include "gpu/command_buffer/client/context_support.h"
+#include "gpu/command_buffer/client/gles2_interface.h"
#include "gpu/ipc/client/command_buffer_proxy_impl.h"
namespace content {
@@ -49,6 +50,15 @@ GpuBrowserCompositorOutputSurface::GetCommandBufferProxy() {
return command_buffer_proxy;
}
+void GpuBrowserCompositorOutputSurface::OnReflectorChanged() {
+ if (!reflector_) {
+ reflector_texture_.reset();
+ } else {
+ reflector_texture_.reset(new ReflectorTexture(context_provider()));
+ reflector_->OnSourceTextureMailboxUpdated(reflector_texture_->mailbox());
+ }
+}
+
bool GpuBrowserCompositorOutputSurface::BindToClient(
cc::OutputSurfaceClient* client) {
if (!BrowserCompositorOutputSurface::BindToClient(client))
@@ -65,18 +75,14 @@ bool GpuBrowserCompositorOutputSurface::BindToClient(
return true;
}
-uint32_t GpuBrowserCompositorOutputSurface::GetFramebufferCopyTextureFormat() {
- auto* gl = static_cast<ContextProviderCommandBuffer*>(context_provider());
- return gl->GetCopyTextureInternalFormat();
+void GpuBrowserCompositorOutputSurface::EnsureBackbuffer() {}
+
+void GpuBrowserCompositorOutputSurface::DiscardBackbuffer() {
+ context_provider()->ContextGL()->DiscardBackbufferCHROMIUM();
}
-void GpuBrowserCompositorOutputSurface::OnReflectorChanged() {
- if (!reflector_) {
- reflector_texture_.reset();
- } else {
- reflector_texture_.reset(new ReflectorTexture(context_provider()));
- reflector_->OnSourceTextureMailboxUpdated(reflector_texture_->mailbox());
- }
+void GpuBrowserCompositorOutputSurface::BindFramebuffer() {
+ context_provider()->ContextGL()->BindFramebuffer(GL_FRAMEBUFFER, 0);
}
void GpuBrowserCompositorOutputSurface::SwapBuffers(cc::CompositorFrame frame) {
@@ -105,12 +111,29 @@ void GpuBrowserCompositorOutputSurface::SwapBuffers(cc::CompositorFrame frame) {
}
}
+uint32_t GpuBrowserCompositorOutputSurface::GetFramebufferCopyTextureFormat() {
+ auto* gl = static_cast<ContextProviderCommandBuffer*>(context_provider());
+ return gl->GetCopyTextureInternalFormat();
+}
+
+bool GpuBrowserCompositorOutputSurface::IsDisplayedAsOverlayPlane() const {
+ return false;
+}
+
+unsigned GpuBrowserCompositorOutputSurface::GetOverlayTextureId() const {
+ return 0;
+}
+
+bool GpuBrowserCompositorOutputSurface::SurfaceIsSuspendForRecycle() const {
+ return false;
+}
+
void GpuBrowserCompositorOutputSurface::OnGpuSwapBuffersCompleted(
const std::vector<ui::LatencyInfo>& latency_info,
gfx::SwapResult result,
const gpu::GpuProcessHostedCALayerTreeParamsMac* params_mac) {
RenderWidgetHostImpl::CompositorFrameDrawn(latency_info);
- OnSwapBuffersComplete();
+ client_->DidSwapBuffersComplete();
}
#if defined(OS_MACOSX)

Powered by Google App Engine
This is Rietveld 408576698