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

Unified Diff: content/common/gpu/image_transport_surface_win.cc

Issue 8625003: Revert 111040 - Reland 110355 - Use shared D3D9 texture to transport the compositor's backing buf... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 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 | « content/common/gpu/image_transport_surface_mac.cc ('k') | content/content_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/gpu/image_transport_surface_win.cc
===================================================================
--- content/common/gpu/image_transport_surface_win.cc (revision 111041)
+++ content/common/gpu/image_transport_surface_win.cc (working copy)
@@ -1,176 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#if defined(ENABLE_GPU)
-
-#include "content/common/gpu/image_transport_surface.h"
-
-#include "base/bind.h"
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "base/win/windows_version.h"
-#include "content/common/gpu/gpu_messages.h"
-#include "ui/gfx/gl/gl_bindings.h"
-#include "ui/gfx/gl/gl_context.h"
-#include "ui/gfx/gl/gl_implementation.h"
-#include "ui/gfx/gl/gl_surface_egl.h"
-#include "ui/gfx/native_widget_types.h"
-
-namespace {
-
-// We are backed by an Pbuffer offscreen surface through which ANGLE provides
-// a handle to the corresponding render target texture through an extension.
-class PbufferImageTransportSurface
- : public gfx::GLSurfaceAdapter,
- public ImageTransportSurface,
- public base::SupportsWeakPtr<PbufferImageTransportSurface> {
- public:
- PbufferImageTransportSurface(GpuChannelManager* manager,
- int32 render_view_id,
- int32 renderer_id,
- int32 command_buffer_id);
-
- // GLSurface implementation
- virtual bool Initialize();
- virtual void Destroy();
- virtual bool IsOffscreen();
- virtual bool SwapBuffers();
-
- protected:
- // ImageTransportSurface implementation
- virtual void OnNewSurfaceACK(uint64 surface_id,
- TransportDIB::Handle shm_handle) OVERRIDE;
- virtual void OnBuffersSwappedACK() OVERRIDE;
- virtual void OnResizeViewACK() OVERRIDE;
- virtual void OnResize(gfx::Size size) OVERRIDE;
-
- private:
- virtual ~PbufferImageTransportSurface();
- void SendBuffersSwapped();
-
- scoped_ptr<ImageTransportHelper> helper_;
-
- DISALLOW_COPY_AND_ASSIGN(PbufferImageTransportSurface);
-};
-
-PbufferImageTransportSurface::PbufferImageTransportSurface(
- GpuChannelManager* manager,
- int32 render_view_id,
- int32 renderer_id,
- int32 command_buffer_id)
- : GLSurfaceAdapter(new gfx::PbufferGLSurfaceEGL(false,
- gfx::Size(1, 1))) {
- helper_.reset(new ImageTransportHelper(this,
- manager,
- render_view_id,
- renderer_id,
- command_buffer_id,
- gfx::kNullPluginWindow));
-}
-
-PbufferImageTransportSurface::~PbufferImageTransportSurface() {
- Destroy();
-}
-
-bool PbufferImageTransportSurface::Initialize() {
- // Only support this path if the GL implementation is ANGLE.
- // IO surfaces will not work with, for example, OSMesa software renderer
- // GL contexts.
- if (gfx::GetGLImplementation() != gfx::kGLImplementationEGLGLES2)
- return false;
-
- if (!helper_->Initialize())
- return false;
-
- return GLSurfaceAdapter::Initialize();
-}
-
-void PbufferImageTransportSurface::Destroy() {
- helper_->Destroy();
- GLSurfaceAdapter::Destroy();
-}
-
-bool PbufferImageTransportSurface::IsOffscreen() {
- return false;
-}
-
-bool PbufferImageTransportSurface::SwapBuffers() {
- HANDLE surface_handle = GetShareHandle();
- if (!surface_handle)
- return false;
-
- helper_->DeferToFence(base::Bind(
- &PbufferImageTransportSurface::SendBuffersSwapped,
- AsWeakPtr()));
-
- return true;
-}
-
-void PbufferImageTransportSurface::SendBuffersSwapped() {
- GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params;
- params.surface_id = reinterpret_cast<int64>(GetShareHandle());
- params.size = GetSize();
- helper_->SendAcceleratedSurfaceBuffersSwapped(params);
-
- helper_->SetScheduled(false);
-}
-
-void PbufferImageTransportSurface::OnBuffersSwappedACK() {
- helper_->SetScheduled(true);
-}
-
-void PbufferImageTransportSurface::OnNewSurfaceACK(
- uint64 surface_id,
- TransportDIB::Handle shm_handle) {
- NOTIMPLEMENTED();
-}
-
-void PbufferImageTransportSurface::OnResizeViewACK() {
- NOTIMPLEMENTED();
-}
-
-void PbufferImageTransportSurface::OnResize(gfx::Size size) {
- Resize(size);
-}
-
-} // namespace anonymous
-
-// static
-scoped_refptr<gfx::GLSurface> ImageTransportSurface::CreateSurface(
- GpuChannelManager* manager,
- int32 render_view_id,
- int32 renderer_id,
- int32 command_buffer_id,
- gfx::PluginWindowHandle handle) {
- scoped_refptr<gfx::GLSurface> surface;
-
- base::win::OSInfo* os_info = base::win::OSInfo::GetInstance();
-
- // TODO(apatrick): Enable this once it has settled in the tree.
- if (false && gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2 &&
- os_info->version() >= base::win::VERSION_VISTA) {
- surface = new PbufferImageTransportSurface(manager,
- render_view_id,
- renderer_id,
- command_buffer_id);
- } else {
- surface = gfx::GLSurface::CreateViewGLSurface(false, handle);
- if (!surface.get())
- return NULL;
-
- surface = new PassThroughImageTransportSurface(manager,
- render_view_id,
- renderer_id,
- command_buffer_id,
- surface.get());
- }
-
- if (surface->Initialize())
- return surface;
- else
- return NULL;
-}
-
-#endif // ENABLE_GPU
« no previous file with comments | « content/common/gpu/image_transport_surface_mac.cc ('k') | content/content_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698