Index: content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h |
diff --git a/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h b/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h |
index 0137b381dfe19ca5db35537418c161098bd696a9..778c2ce2ad7f3eeeaffd50c728fc5403ba874598 100644 |
--- a/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h |
+++ b/content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.h |
@@ -6,8 +6,6 @@ |
#define CONTENT_RENDERER_GPU_WEBGRAPHICSCONTEXT3D_COMMAND_BUFFER_IMPL_H_ |
#pragma once |
-#if defined(ENABLE_GPU) |
- |
#include <string> |
#include <vector> |
@@ -47,17 +45,29 @@ using WebKit::WGC3Dclampf; |
using WebKit::WGC3Dintptr; |
using WebKit::WGC3Dsizeiptr; |
+// TODO(piman): move this logic to the compositor and remove it from the |
+// context... |
+class WebGraphicsContext3DSwapBuffersClient { |
+ public: |
+ virtual ~WebGraphicsContext3DSwapBuffersClient() { } |
+ virtual void OnViewContextSwapBuffersPosted() = 0; |
+ virtual void OnViewContextSwapBuffersComplete() = 0; |
+ virtual void OnViewContextSwapBuffersAborted() = 0; |
+}; |
+ |
class WebGraphicsContext3DCommandBufferImpl |
: public WebKit::WebGraphicsContext3D { |
public: |
- WebGraphicsContext3DCommandBufferImpl(); |
+ WebGraphicsContext3DCommandBufferImpl( |
+ int surface_id, |
+ const GURL& active_url, |
+ const base::WeakPtr<WebGraphicsContext3DSwapBuffersClient>& swap_client); |
virtual ~WebGraphicsContext3DCommandBufferImpl(); |
+ bool Initialize(const Attributes& attributes); |
+ |
//---------------------------------------------------------------------- |
// WebGraphicsContext3D methods |
- virtual bool initialize(WebGraphicsContext3D::Attributes attributes, |
- WebKit::WebView*, |
- bool renderDirectlyToWebView); |
// Must be called after initialize() and before any of the following methods. |
// Permanently binds to the first calling thread. Returns false if the |
@@ -490,19 +500,10 @@ class WebGraphicsContext3DCommandBufferImpl |
// State needed by MaybeInitializeGL. |
GpuChannelHost* host_; |
- GURL active_url_; |
int32 surface_id_; |
+ GURL active_url_; |
+ base::WeakPtr<WebGraphicsContext3DSwapBuffersClient> swap_client_; |
- bool render_directly_to_web_view_; |
- |
- // If rendering directly to WebView, weak pointer to it. |
- // This is only set when the context is bound to the main thread. |
- WebKit::WebView* web_view_; |
- |
-#if defined(OS_MACOSX) |
- // "Fake" plugin window handle in browser process for the compositor's output. |
- gfx::PluginWindowHandle plugin_handle_; |
-#endif |
WebGraphicsContext3D::WebGraphicsContextLostCallback* context_lost_callback_; |
WGC3Denum context_lost_reason_; |
@@ -529,5 +530,4 @@ class WebGraphicsContext3DCommandBufferImpl |
#endif |
}; |
-#endif // defined(ENABLE_GPU) |
#endif // CONTENT_RENDERER_GPU_WEBGRAPHICSCONTEXT3D_COMMAND_BUFFER_IMPL_H_ |