diff options
Diffstat (limited to 'content')
8 files changed, 97 insertions, 108 deletions
diff --git a/content/browser/renderer_host/compositor_impl_android.cc b/content/browser/renderer_host/compositor_impl_android.cc index 9d32f1e..c5a6159 100644 --- a/content/browser/renderer_host/compositor_impl_android.cc +++ b/content/browser/renderer_host/compositor_impl_android.cc @@ -15,6 +15,7 @@ #include "cc/input_handler.h" #include "cc/layer.h" #include "cc/layer_tree_host.h" +#include "cc/output_surface.h" #include "cc/thread_impl.h" #include "content/browser/gpu/browser_gpu_channel_host_factory.h" #include "content/browser/gpu/gpu_surface_tracker.h" @@ -26,7 +27,6 @@ #include "content/public/common/content_switches.h" #include "third_party/khronos/GLES2/gl2.h" #include "third_party/khronos/GLES2/gl2ext.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorOutputSurface.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3D.h" #include "ui/gfx/android/java_bitmap.h" #include "webkit/glue/webthread_impl.h" @@ -42,46 +42,43 @@ static bool g_initialized = false; static webkit_glue::WebThreadImpl* g_impl_thread = NULL; static bool g_use_direct_gl = false; -// Adapts a pure WebGraphicsContext3D into a WebCompositorOutputSurface. -class WebGraphicsContextToOutputSurfaceAdapter : - public WebKit::WebCompositorOutputSurface { -public: - explicit WebGraphicsContextToOutputSurfaceAdapter( - WebKit::WebGraphicsContext3D* context) - : m_context3D(context) - , m_client(0) - { - } +// Adapts a pure WebGraphicsContext3D into a cc::OutputSurface. +class WebGraphicsContextToOutputSurfaceAdapter : public cc::OutputSurface { + public: + explicit WebGraphicsContextToOutputSurfaceAdapter( + WebKit::WebGraphicsContext3D* context) + : context3d_(context), + client_(0) { + } - virtual bool bindToClient( - WebKit::WebCompositorOutputSurfaceClient* client) OVERRIDE - { - DCHECK(client); - if (!m_context3D->makeContextCurrent()) - return false; - m_client = client; - return true; - } + virtual bool BindToClient(cc::OutputSurfaceClient* client) OVERRIDE { + DCHECK(client); + if (!context3d_->makeContextCurrent()) + return false; + client_ = client; + return true; + } - virtual const Capabilities& capabilities() const OVERRIDE - { - return m_capabilities; - } + virtual const struct Capabilities& Capabilities() const OVERRIDE { + return capabilities_; + } - virtual WebKit::WebGraphicsContext3D* context3D() const OVERRIDE - { - return m_context3D.get(); - } + virtual WebKit::WebGraphicsContext3D* Context3D() const OVERRIDE { + return context3d_.get(); + } - virtual void sendFrameToParentCompositor( - const WebKit::WebCompositorFrame&) OVERRIDE - { - } + virtual cc::SoftwareOutputDevice* SoftwareDevice() const OVERRIDE { + return NULL; + } + + virtual void SendFrameToParentCompositor( + const cc::CompositorFrame&) OVERRIDE { + } -private: - scoped_ptr<WebKit::WebGraphicsContext3D> m_context3D; - Capabilities m_capabilities; - WebKit::WebCompositorOutputSurfaceClient* m_client; + private: + scoped_ptr<WebKit::WebGraphicsContext3D> context3d_; + struct Capabilities capabilities_; + cc::OutputSurfaceClient* client_; }; } // anonymous namespace @@ -278,8 +275,7 @@ void CompositorImpl::applyScrollAndScale(gfx::Vector2d scrollDelta, float pageScale) { } -scoped_ptr<WebKit::WebCompositorOutputSurface> - CompositorImpl::createOutputSurface() { +scoped_ptr<cc::OutputSurface> CompositorImpl::createOutputSurface() { if (g_use_direct_gl) { WebKit::WebGraphicsContext3D::Attributes attrs; attrs.shareResources = false; @@ -289,7 +285,7 @@ scoped_ptr<WebKit::WebCompositorOutputSurface> attrs, window_, NULL)); - return scoped_ptr<WebKit::WebCompositorOutputSurface>( + return scoped_ptr<cc::OutputSurface>( new WebGraphicsContextToOutputSurfaceAdapter(context.release())); } else { DCHECK(window_ && surface_id_); @@ -308,9 +304,9 @@ scoped_ptr<WebKit::WebCompositorOutputSurface> false, CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE)) { LOG(ERROR) << "Failed to create 3D context for compositor."; - return scoped_ptr<WebKit::WebCompositorOutputSurface>(); + return scoped_ptr<cc::OutputSurface>(); } - return scoped_ptr<WebKit::WebCompositorOutputSurface>( + return scoped_ptr<cc::OutputSurface>( new WebGraphicsContextToOutputSurfaceAdapter(context.release())); } } diff --git a/content/browser/renderer_host/compositor_impl_android.h b/content/browser/renderer_host/compositor_impl_android.h index bf44a93..1514fcf51 100644 --- a/content/browser/renderer_host/compositor_impl_android.h +++ b/content/browser/renderer_host/compositor_impl_android.h @@ -65,8 +65,7 @@ class CONTENT_EXPORT CompositorImpl virtual void layout() OVERRIDE; virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float pageScale) OVERRIDE; - virtual scoped_ptr<WebKit::WebCompositorOutputSurface> createOutputSurface() - OVERRIDE; + virtual scoped_ptr<cc::OutputSurface> createOutputSurface() OVERRIDE; virtual scoped_ptr<cc::InputHandler> createInputHandler() OVERRIDE; virtual void didRecreateOutputSurface(bool success) OVERRIDE; virtual void willCommit() OVERRIDE {} diff --git a/content/browser/renderer_host/image_transport_factory.cc b/content/browser/renderer_host/image_transport_factory.cc index 60dbdd8..7e3e6e3 100644 --- a/content/browser/renderer_host/image_transport_factory.cc +++ b/content/browser/renderer_host/image_transport_factory.cc @@ -12,6 +12,8 @@ #include "base/memory/ref_counted.h" #include "base/observer_list.h" #include "base/threading/non_thread_safe.h" +#include "cc/output_surface.h" +#include "cc/output_surface_client.h" #include "content/browser/gpu/browser_gpu_channel_host_factory.h" #include "content/browser/gpu/gpu_data_manager_impl.h" #include "content/browser/gpu/gpu_process_host.h" @@ -24,8 +26,6 @@ #include "content/common/webkitplatformsupport_impl.h" #include "content/public/common/content_switches.h" #include "gpu/ipc/command_buffer_proxy.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorOutputSurface.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorOutputSurfaceClient.h" #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebGraphicsContext3D.h" #include "ui/compositor/compositor.h" #include "ui/compositor/compositor_setup.h" @@ -270,10 +270,10 @@ class BrowserCompositorOutputSurfaceProxy : // Adapts a WebGraphicsContext3DCommandBufferImpl into a -// WebCompositorOutputSurface that also handles vsync parameter updates +// cc::OutputSurface that also handles vsync parameter updates // arriving from the GPU process. class BrowserCompositorOutputSurface : - public WebKit::WebCompositorOutputSurface, + public cc::OutputSurface, public base::NonThreadSafe { public: explicit BrowserCompositorOutputSurface( @@ -294,8 +294,8 @@ class BrowserCompositorOutputSurface : output_surface_proxy_->RemoveSurface(surface_id_); } - virtual bool bindToClient( - WebKit::WebCompositorOutputSurfaceClient* client) OVERRIDE { + virtual bool BindToClient( + cc::OutputSurfaceClient* client) OVERRIDE { DCHECK(CalledOnValidThread()); DCHECK(client); DCHECK(!client_); @@ -309,36 +309,37 @@ class BrowserCompositorOutputSurface : return true; } - virtual const Capabilities& capabilities() const OVERRIDE { + virtual const struct Capabilities& Capabilities() const OVERRIDE { DCHECK(CalledOnValidThread()); return capabilities_; } - virtual WebKit::WebGraphicsContext3D* context3D() const OVERRIDE { + virtual WebKit::WebGraphicsContext3D* Context3D() const OVERRIDE { DCHECK(CalledOnValidThread()); return context3D_.get(); } - virtual void sendFrameToParentCompositor( - const WebKit::WebCompositorFrame&) OVERRIDE { + virtual cc::SoftwareOutputDevice* SoftwareDevice() const OVERRIDE { + DCHECK(CalledOnValidThread()); + return NULL; + } + + virtual void SendFrameToParentCompositor( + const cc::CompositorFrame&) OVERRIDE { } void OnUpdateVSyncParameters( base::TimeTicks timebase, base::TimeDelta interval) { DCHECK(CalledOnValidThread()); DCHECK(client_); - double monotonicTimebase = timebase.ToInternalValue() / - static_cast<double>(base::Time::kMicrosecondsPerSecond); - double intervalInSeconds = interval.ToInternalValue() / - static_cast<double>(base::Time::kMicrosecondsPerSecond); - client_->onVSyncParametersChanged(monotonicTimebase, intervalInSeconds); + client_->OnVSyncParametersChanged(timebase, interval); } private: scoped_ptr<WebGraphicsContext3DCommandBufferImpl> context3D_; int surface_id_; - Capabilities capabilities_; - WebKit::WebCompositorOutputSurfaceClient* client_; + struct Capabilities capabilities_; + cc::OutputSurfaceClient* client_; scoped_refptr<BrowserCompositorOutputSurfaceProxy> output_surface_proxy_; }; @@ -369,7 +370,7 @@ class GpuProcessTransportFactory : return CreateContextCommon(swap_client, 0); } - virtual WebKit::WebCompositorOutputSurface* CreateOutputSurface( + virtual cc::OutputSurface* CreateOutputSurface( ui::Compositor* compositor) OVERRIDE { PerCompositorData* data = per_compositor_data_[compositor]; if (!data) diff --git a/content/renderer/gpu/compositor_output_surface.cc b/content/renderer/gpu/compositor_output_surface.cc index 71a4be8..21eaf80 100644 --- a/content/renderer/gpu/compositor_output_surface.cc +++ b/content/renderer/gpu/compositor_output_surface.cc @@ -5,15 +5,15 @@ #include "content/renderer/gpu/compositor_output_surface.h" #include "base/message_loop_proxy.h" +#include "cc/output_surface_client.h" #include "content/common/view_messages.h" #include "content/renderer/render_thread_impl.h" #include "ipc/ipc_forwarding_message_filter.h" #include "ipc/ipc_sync_channel.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorOutputSurfaceClient.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3D.h" +using cc::SoftwareOutputDevice; using WebKit::WebGraphicsContext3D; -using WebKit::WebCompositorSoftwareOutputDevice; namespace content { @@ -32,7 +32,7 @@ IPC::ForwardingMessageFilter* CompositorOutputSurface::CreateFilter( CompositorOutputSurface::CompositorOutputSurface( int32 routing_id, WebGraphicsContext3D* context3D, - WebCompositorSoftwareOutputDevice* software_device) + cc::SoftwareOutputDevice* software_device) : output_surface_filter_( RenderThreadImpl::current()->compositor_output_surface_filter()), client_(NULL), @@ -40,7 +40,7 @@ CompositorOutputSurface::CompositorOutputSurface( context3D_(context3D), software_device_(software_device) { DCHECK(output_surface_filter_); - capabilities_.hasParentCompositor = false; + capabilities_.has_parent_compositor = false; DetachFromThread(); } @@ -52,14 +52,14 @@ CompositorOutputSurface::~CompositorOutputSurface() { output_surface_filter_->RemoveRoute(routing_id_); } -const WebKit::WebCompositorOutputSurface::Capabilities& - CompositorOutputSurface::capabilities() const { +const struct cc::OutputSurface::Capabilities& + CompositorOutputSurface::Capabilities() const { DCHECK(CalledOnValidThread()); return capabilities_; } -bool CompositorOutputSurface::bindToClient( - WebKit::WebCompositorOutputSurfaceClient* client) { +bool CompositorOutputSurface::BindToClient( + cc::OutputSurfaceClient* client) { DCHECK(CalledOnValidThread()); DCHECK(!client_); if (context3D_.get()) { @@ -78,18 +78,17 @@ bool CompositorOutputSurface::bindToClient( return true; } -WebGraphicsContext3D* CompositorOutputSurface::context3D() const { +WebGraphicsContext3D* CompositorOutputSurface::Context3D() const { DCHECK(CalledOnValidThread()); return context3D_.get(); } -WebCompositorSoftwareOutputDevice* CompositorOutputSurface::softwareDevice() - const { +cc::SoftwareOutputDevice* CompositorOutputSurface::SoftwareDevice() const { return software_device_.get(); } -void CompositorOutputSurface::sendFrameToParentCompositor( - const WebKit::WebCompositorFrame&) { +void CompositorOutputSurface::SendFrameToParentCompositor( + const cc::CompositorFrame&) { DCHECK(CalledOnValidThread()); NOTREACHED(); } @@ -104,15 +103,10 @@ void CompositorOutputSurface::OnMessageReceived(const IPC::Message& message) { } void CompositorOutputSurface::OnUpdateVSyncParameters( - base::TimeTicks timebase, - base::TimeDelta interval) { + base::TimeTicks timebase, base::TimeDelta interval) { DCHECK(CalledOnValidThread()); DCHECK(client_); - double monotonicTimebase = timebase.ToInternalValue() / - static_cast<double>(base::Time::kMicrosecondsPerSecond); - double intervalInSeconds = interval.ToInternalValue() / - static_cast<double>(base::Time::kMicrosecondsPerSecond); - client_->onVSyncParametersChanged(monotonicTimebase, intervalInSeconds); + client_->OnVSyncParametersChanged(timebase, interval); } } // namespace content diff --git a/content/renderer/gpu/compositor_output_surface.h b/content/renderer/gpu/compositor_output_surface.h index f5753a6..d288ad9 100644 --- a/content/renderer/gpu/compositor_output_surface.h +++ b/content/renderer/gpu/compositor_output_surface.h @@ -11,8 +11,8 @@ #include "base/memory/scoped_ptr.h" #include "base/threading/non_thread_safe.h" #include "base/time.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorOutputSurface.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorSoftwareOutputDevice.h" +#include "cc/output_surface.h" +#include "cc/software_output_device.h" namespace base { class TaskRunner; @@ -28,25 +28,24 @@ namespace content { // This class can be created only on the main thread, but then becomes pinned // to a fixed thread when bindToClient is called. class CompositorOutputSurface - : NON_EXPORTED_BASE(public WebKit::WebCompositorOutputSurface), - NON_EXPORTED_BASE(public base::NonThreadSafe) { + : NON_EXPORTED_BASE(public cc::OutputSurface), + NON_EXPORTED_BASE(public base::NonThreadSafe) { public: static IPC::ForwardingMessageFilter* CreateFilter( base::TaskRunner* target_task_runner); CompositorOutputSurface(int32 routing_id, WebKit::WebGraphicsContext3D* context3d, - WebKit::WebCompositorSoftwareOutputDevice* software); + cc::SoftwareOutputDevice* software); virtual ~CompositorOutputSurface(); - // WebCompositorOutputSurface implementation. - virtual bool bindToClient( - WebKit::WebCompositorOutputSurfaceClient* client) OVERRIDE; - virtual const Capabilities& capabilities() const OVERRIDE; - virtual WebKit::WebGraphicsContext3D* context3D() const OVERRIDE; - virtual WebKit::WebCompositorSoftwareOutputDevice* softwareDevice() const; - virtual void sendFrameToParentCompositor( - const WebKit::WebCompositorFrame&) OVERRIDE; + // cc::OutputSurface implementation. + virtual bool BindToClient(cc::OutputSurfaceClient* client) OVERRIDE; + virtual const struct Capabilities& Capabilities() const OVERRIDE; + virtual WebKit::WebGraphicsContext3D* Context3D() const OVERRIDE; + virtual cc::SoftwareOutputDevice* SoftwareDevice() const OVERRIDE; + virtual void SendFrameToParentCompositor( + const cc::CompositorFrame&) OVERRIDE; private: class CompositorOutputSurfaceProxy : @@ -74,12 +73,12 @@ class CompositorOutputSurface base::TimeTicks timebase, base::TimeDelta interval); scoped_refptr<IPC::ForwardingMessageFilter> output_surface_filter_; - WebKit::WebCompositorOutputSurfaceClient* client_; + cc::OutputSurfaceClient* client_; scoped_refptr<CompositorOutputSurfaceProxy> output_surface_proxy_; int routing_id_; - Capabilities capabilities_; + struct Capabilities capabilities_; scoped_ptr<WebKit::WebGraphicsContext3D> context3D_; - scoped_ptr<WebKit::WebCompositorSoftwareOutputDevice> software_device_; + scoped_ptr<cc::SoftwareOutputDevice> software_device_; }; } // namespace content diff --git a/content/renderer/gpu/compositor_software_output_device_gl_adapter.cc b/content/renderer/gpu/compositor_software_output_device_gl_adapter.cc index e9c8df41..1e9372a 100644 --- a/content/renderer/gpu/compositor_software_output_device_gl_adapter.cc +++ b/content/renderer/gpu/compositor_software_output_device_gl_adapter.cc @@ -39,20 +39,20 @@ CompositorSoftwareOutputDeviceGLAdapter:: Destroy(); } -WebImage* CompositorSoftwareOutputDeviceGLAdapter::lock(bool forWrite) { +WebImage* CompositorSoftwareOutputDeviceGLAdapter::Lock(bool forWrite) { locked_for_write_ = forWrite; image_ = device_->accessBitmap(forWrite); return &image_; } -void CompositorSoftwareOutputDeviceGLAdapter::unlock() { +void CompositorSoftwareOutputDeviceGLAdapter::Unlock() { if (locked_for_write_) Draw(device_->accessBitmap(false).pixelRef()->pixels()); image_.reset(); } -void CompositorSoftwareOutputDeviceGLAdapter::didChangeViewportSize( - WebSize size) { +void CompositorSoftwareOutputDeviceGLAdapter::DidChangeViewportSize( + gfx::Size size) { if (!initialized_) Initialize(); diff --git a/content/renderer/gpu/compositor_software_output_device_gl_adapter.h b/content/renderer/gpu/compositor_software_output_device_gl_adapter.h index 2073644..5d77edc 100644 --- a/content/renderer/gpu/compositor_software_output_device_gl_adapter.h +++ b/content/renderer/gpu/compositor_software_output_device_gl_adapter.h @@ -10,9 +10,9 @@ #include "base/memory/scoped_ptr.h" #include "base/memory/ref_counted.h" #include "base/threading/non_thread_safe.h" +#include "cc/software_output_device.h" #include "third_party/skia/include/core/SkCanvas.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebImage.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorSoftwareOutputDevice.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3D.h" #include "ui/gfx/size.h" @@ -21,17 +21,17 @@ namespace content { // This class can be created only on the main thread, but then becomes pinned // to a fixed thread when bindToClient is called. class CompositorSoftwareOutputDeviceGLAdapter - : NON_EXPORTED_BASE(public WebKit::WebCompositorSoftwareOutputDevice), + : NON_EXPORTED_BASE(public cc::SoftwareOutputDevice), NON_EXPORTED_BASE(public base::NonThreadSafe) { public: CompositorSoftwareOutputDeviceGLAdapter( WebKit::WebGraphicsContext3D* context3d); virtual ~CompositorSoftwareOutputDeviceGLAdapter(); - virtual WebKit::WebImage* lock(bool forWrite) OVERRIDE; - virtual void unlock() OVERRIDE; - - virtual void didChangeViewportSize(WebKit::WebSize size) OVERRIDE; + // cc::SoftwareOutputDevice implementation + virtual WebKit::WebImage* Lock(bool forWrite) OVERRIDE; + virtual void Unlock() OVERRIDE; + virtual void DidChangeViewportSize(gfx::Size size) OVERRIDE; private: void Initialize(); diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index b12859b..40a87b6 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -27,6 +27,7 @@ #include "base/sys_string_conversions.h" #include "base/time.h" #include "base/utf_string_conversions.h" +#include "cc/output_surface.h" #include "cc/switches.h" #include "content/common/appcache/appcache_dispatcher.h" #include "content/common/child_thread.h" @@ -121,7 +122,6 @@ #include "net/base/net_errors.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h" #include "net/http/http_util.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebCompositorOutputSurface.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebAccessibilityObject.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebColorName.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMEvent.h" |