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 0ec433698eb200967e720a8baf3e32f7bff34357..1f1ce7e2f95b3d598f6a1cf4680b1266880e4aeb 100644 |
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h |
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h |
@@ -45,6 +45,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 "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; |
@@ -1077,6 +1080,27 @@ protected: |
private: |
WebGLRenderingContextBase(HTMLCanvasElement*, OffscreenCanvas*, PassOwnPtr<WebGraphicsContext3DProvider>, const WebGLContextAttributes&); |
+ static PassOwnPtr<WebGraphicsContext3DProvider> createWebGraphicsContext3DProviderInternal(HTMLCanvasElement*, ScriptState*, WebGLContextAttributes, unsigned); |
+ class createWebGraphicsContext3DProviderUtils { |
+ public: |
+ createWebGraphicsContext3DProviderUtils(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 createWebGraphicsContext3DProviderMainThread(createWebGraphicsContext3DProviderUtils*, WaitableEvent*); |
}; |
DEFINE_TYPE_CASTS(WebGLRenderingContextBase, CanvasRenderingContext, context, context->is3d(), context.is3d()); |