| Index: content/public/browser/android/synchronous_compositor.h
|
| diff --git a/content/public/browser/android/synchronous_compositor.h b/content/public/browser/android/synchronous_compositor.h
|
| index 476b86dce8310bb235402a50a67bab4137f8fca5..0ec5f97c1ac31ba2f44004d398ce9179b7834095 100644
|
| --- a/content/public/browser/android/synchronous_compositor.h
|
| +++ b/content/public/browser/android/synchronous_compositor.h
|
| @@ -5,9 +5,12 @@
|
| #ifndef CONTENT_PUBLIC_BROWSER_ANDROID_SYNCHRONOUS_COMPOSITOR_H_
|
| #define CONTENT_PUBLIC_BROWSER_ANDROID_SYNCHRONOUS_COMPOSITOR_H_
|
|
|
| +#include "base/callback.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "cc/blink/context_provider_web_context.h"
|
| #include "content/common/content_export.h"
|
| #include "gpu/command_buffer/service/in_process_command_buffer.h"
|
| +#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
|
| #include "ui/gfx/geometry/rect.h"
|
| #include "ui/gfx/geometry/size.h"
|
|
|
| @@ -20,10 +23,11 @@ class CompositorFrameAck;
|
|
|
| namespace gfx {
|
| class Transform;
|
| -};
|
| +}
|
|
|
| namespace gpu {
|
| class GLInProcessContext;
|
| +struct GLInProcessContextSharedMemoryLimits;
|
| }
|
|
|
| namespace content {
|
| @@ -36,13 +40,26 @@ class WebContents;
|
| // kEnableSyncrhonousRendererCompositor flag is specified.
|
| class CONTENT_EXPORT SynchronousCompositor {
|
| public:
|
| + struct CONTENT_EXPORT ContextHolder {
|
| + ContextHolder();
|
| + ~ContextHolder();
|
| +
|
| + scoped_refptr<cc_blink::ContextProviderWebContext> context_provider;
|
| + gpu::GLInProcessContext* context;
|
| + };
|
| +
|
| // Must be called once per WebContents instance. Will create the compositor
|
| // instance as needed, but only if |client| is non-nullptr.
|
| static void SetClientForWebContents(WebContents* contents,
|
| SynchronousCompositorClient* client);
|
|
|
| - static void SetGpuService(
|
| - scoped_refptr<gpu::InProcessCommandBuffer::Service> service);
|
| + typedef base::Callback<ContextHolder(
|
| + bool /* need_share_group_with_parent */,
|
| + const blink::WebGraphicsContext3D::Attributes& /* attributes */,
|
| + bool /* is_offscreen */,
|
| + const gpu::GLInProcessContextSharedMemoryLimits& /* mem_limits */)>
|
| + CreateContextCallback;
|
| + static void SetCreateContextCallback(CreateContextCallback callback);
|
|
|
| // By default, synchronous compopsitor records the full layer, not only
|
| // what is inside and around the view port. This can be used to switch
|
|
|