Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / content / browser / android / in_process / synchronous_compositor_factory_impl.h
index 1e7987f..4cb7731 100644 (file)
@@ -9,8 +9,13 @@
 #include "content/browser/android/in_process/synchronous_input_event_filter.h"
 #include "content/renderer/android/synchronous_compositor_factory.h"
 #include "content/renderer/media/android/stream_texture_factory_android_synchronous_impl.h"
+#include "gpu/command_buffer/service/in_process_command_buffer.h"
 #include "webkit/common/gpu/context_provider_web_context.h"
 
+namespace gfx {
+class GLSurface;
+}
+
 namespace gpu {
 class GLInProcessContext;
 }
@@ -51,16 +56,19 @@ class SynchronousCompositorFactoryImpl : public SynchronousCompositorFactory {
     return &synchronous_input_event_filter_;
   }
 
+  void SetDeferredGpuService(
+      scoped_refptr<gpu::InProcessCommandBuffer::Service> service);
   void CompositorInitializedHardwareDraw();
   void CompositorReleasedHardwareDraw();
 
+  scoped_refptr<cc::ContextProvider>
+      CreateOnscreenContextProviderForCompositorThread(
+          scoped_refptr<gfx::GLSurface> surface);
+
  private:
-  void ReleaseGlobalHardwareResources();
   bool CanCreateMainThreadContext();
   scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider>
       TryCreateStreamTextureFactory();
-  scoped_ptr<webkit::gpu::WebGraphicsContext3DInProcessCommandBufferImpl>
-      CreateOffscreenContext();
 
   SynchronousInputEventFilter synchronous_input_event_filter_;
 
@@ -72,8 +80,13 @@ class SynchronousCompositorFactoryImpl : public SynchronousCompositorFactory {
   // This is a pointer to the context owned by
   // |offscreen_context_for_main_thread_|.
   gpu::GLInProcessContext* wrapped_gl_context_for_main_thread_;
+  gpu::GLInProcessContext* wrapped_gl_context_for_compositor_thread_;
   scoped_refptr<cc::ContextProvider> offscreen_context_for_compositor_thread_;
 
+  scoped_refptr<gpu::InProcessCommandBuffer::Service> service_;
+  scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider>
+      video_context_provider_;
+
   // |num_hardware_compositor_lock_| is updated on UI thread only but can be
   // read on renderer main thread.
   base::Lock num_hardware_compositor_lock_;