| Index: third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h
|
| diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h
|
| index 295b49b80d4f679f31c9f7f492415611ea240519..b11ce0e495ae704b81eb37d9f6c9e9ed1a458226 100644
|
| --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h
|
| +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h
|
| @@ -5,6 +5,7 @@
|
| #ifndef WebGL2RenderingContextBase_h
|
| #define WebGL2RenderingContextBase_h
|
|
|
| +#include "bindings/core/v8/ScriptPromise.h"
|
| #include "modules/webgl/WebGLExtension.h"
|
| #include "modules/webgl/WebGLRenderingContextBase.h"
|
| #include <memory>
|
| @@ -27,6 +28,8 @@ class WebGL2RenderingContextBase : public WebGLRenderingContextBase {
|
| public:
|
| ~WebGL2RenderingContextBase() override;
|
|
|
| + void destroyContext() override;
|
| +
|
| /* Buffer objects */
|
| void bufferData(GLenum, DOMArrayBufferView*, GLenum, GLuint, GLuint);
|
| void bufferSubData(GLenum, GLintptr, DOMArrayBufferView*, GLuint, GLuint);
|
| @@ -42,6 +45,12 @@ class WebGL2RenderingContextBase : public WebGLRenderingContextBase {
|
|
|
| void copyBufferSubData(GLenum, GLenum, long long, long long, long long);
|
| void getBufferSubData(GLenum, long long, DOMArrayBufferView*, GLuint, GLuint);
|
| + ScriptPromise getBufferSubDataAsync(ScriptState*,
|
| + GLenum,
|
| + GLintptr,
|
| + DOMArrayBufferView*,
|
| + GLuint,
|
| + GLuint);
|
|
|
| /* Framebuffer objects */
|
| bool validateTexFuncLayer(const char*, GLenum texTarget, GLint layer);
|
| @@ -807,6 +816,32 @@ class WebGL2RenderingContextBase : public WebGLRenderingContextBase {
|
| GLenum target) override;
|
| bool validateBufferDataUsage(const char* functionName, GLenum usage) override;
|
|
|
| + class GetBufferSubDataAsyncCallback
|
| + : public RefCounted<GetBufferSubDataAsyncCallback> {
|
| + private:
|
| + WeakPersistent<WebGL2RenderingContextBase> context;
|
| + Persistent<DOMArrayBufferView> dstData;
|
| + Persistent<ScriptPromiseResolver> resolver;
|
| + void* subBaseAddress;
|
| + void* mappedData;
|
| + long long subByteLength;
|
| +
|
| + public:
|
| + GetBufferSubDataAsyncCallback(WebGL2RenderingContextBase*,
|
| + DOMArrayBufferView*,
|
| + ScriptPromiseResolver*,
|
| + void*,
|
| + void*,
|
| + long long);
|
| + void destroy();
|
| + static void resolve(GetBufferSubDataAsyncCallback*);
|
| + };
|
| +
|
| + std::set<GetBufferSubDataAsyncCallback*> m_getBufferSubDataAsyncCallbacks;
|
| +
|
| + void registerGetBufferSubDataAsyncCallback(GetBufferSubDataAsyncCallback*);
|
| + void unregisterGetBufferSubDataAsyncCallback(GetBufferSubDataAsyncCallback*);
|
| +
|
| bool canUseTexImageByGPU(TexImageFunctionID,
|
| GLint internalformat,
|
| GLenum type) override;
|
|
|