Chromium Code Reviews| Index: third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h |
| diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h |
| index 8d225171f7490da6c60aa362ee397a2ccaf55959..d7add47cacd81039d4c64476c751f67ac33794e6 100644 |
| --- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h |
| +++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h |
| @@ -44,6 +44,8 @@ |
| #include "platform/graphics/gpu/DrawingBuffer.h" |
| #include "platform/graphics/gpu/Extensions3DUtil.h" |
| #include "platform/graphics/gpu/WebGLImageConversion.h" |
| +#include "public/platform/Platform.h" |
| +#include "public/platform/WebGraphicsContext3DProvider.h" |
| #include "third_party/khronos/GLES2/gl2.h" |
| #include "wtf/OwnPtr.h" |
| #include "wtf/text/WTFString.h" |
| @@ -83,6 +85,7 @@ class OESTextureFloatLinear; |
| class OESTextureHalfFloat; |
| class OESTextureHalfFloatLinear; |
| class OESVertexArrayObject; |
| +class WaitableEvent; |
| class WebGLActiveInfo; |
| class WebGLBuffer; |
| class WebGLCompressedTextureASTC; |
| @@ -1090,6 +1093,27 @@ protected: |
| private: |
| WebGLRenderingContextBase(HTMLCanvasElement*, OffscreenCanvas*, PassOwnPtr<WebGraphicsContext3DProvider>, const WebGLContextAttributes&); |
| + static PassOwnPtr<WebGraphicsContext3DProvider> createContextProviderInternal(HTMLCanvasElement*, ScriptState*, WebGLContextAttributes, unsigned); |
| + class ContextProviderCreationInfo { |
|
sof
2016/05/07 07:21:42
Can we avoid inlining this local class in an alrea
|
| + public: |
| + ContextProviderCreationInfo(Platform::ContextAttributes contextAttributes, Platform::GraphicsInfo glInfo, ScriptState* scriptState) |
| + { |
| + m_contextAttributes = contextAttributes; |
| + m_glInfo = glInfo; |
| + m_scriptState = scriptState; |
| + } |
| + Platform::ContextAttributes contextAttributes() { return m_contextAttributes; } |
| + Platform::GraphicsInfo glInfo() { return m_glInfo; } |
| + ScriptState* scriptState() { return m_scriptState; } |
| + void setContextProvider(PassOwnPtr<WebGraphicsContext3DProvider> provider) { m_provider = std::move(provider); } |
| + PassOwnPtr<WebGraphicsContext3DProvider> releaseContextProvider() { return m_provider.release(); } |
| + private: |
| + Platform::ContextAttributes m_contextAttributes; |
| + Platform::GraphicsInfo m_glInfo; |
| + ScriptState* m_scriptState; |
| + OwnPtr<WebGraphicsContext3DProvider> m_provider; |
| + }; |
| + static void createContextProviderOnMainThread(ContextProviderCreationInfo*, WaitableEvent*); |
| }; |
| DEFINE_TYPE_CASTS(WebGLRenderingContextBase, CanvasRenderingContext, context, context->is3d(), context.is3d()); |