| Index: Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp
|
| diff --git a/Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp b/Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp
|
| index 6c12bccb7048db6bf46c1ecee414aec519394be5..487bd58f066efa6cacfe9244909ee30fe6ee932e 100644
|
| --- a/Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp
|
| +++ b/Source/core/html/canvas/WebGLVertexArrayObjectOES.cpp
|
| @@ -31,9 +31,9 @@
|
|
|
| namespace WebCore {
|
|
|
| -PassRefPtr<WebGLVertexArrayObjectOES> WebGLVertexArrayObjectOES::create(WebGLRenderingContextBase* ctx, VaoType type)
|
| +PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectOES> WebGLVertexArrayObjectOES::create(WebGLRenderingContextBase* ctx, VaoType type)
|
| {
|
| - return adoptRef(new WebGLVertexArrayObjectOES(ctx, type));
|
| + return adoptRefWillBeNoop(new WebGLVertexArrayObjectOES(ctx, type));
|
| }
|
|
|
| WebGLVertexArrayObjectOES::WebGLVertexArrayObjectOES(WebGLRenderingContextBase* ctx, VaoType type)
|
| @@ -56,6 +56,11 @@ WebGLVertexArrayObjectOES::WebGLVertexArrayObjectOES(WebGLRenderingContextBase*
|
|
|
| WebGLVertexArrayObjectOES::~WebGLVertexArrayObjectOES()
|
| {
|
| +#if ENABLE(OILPAN)
|
| + m_boundElementArrayBuffer = nullptr;
|
| + m_vertexAttribState.clear();
|
| +#endif
|
| + detach();
|
| deleteObject(0);
|
| }
|
|
|
| @@ -65,7 +70,7 @@ void WebGLVertexArrayObjectOES::deleteObjectImpl(blink::WebGraphicsContext3D* co
|
| case VaoTypeDefault:
|
| break;
|
| default:
|
| - context()->webContext()->deleteVertexArrayOES(object);
|
| + context3d->deleteVertexArrayOES(object);
|
| break;
|
| }
|
|
|
| @@ -79,18 +84,17 @@ void WebGLVertexArrayObjectOES::deleteObjectImpl(blink::WebGraphicsContext3D* co
|
| }
|
| }
|
|
|
| -void WebGLVertexArrayObjectOES::setElementArrayBuffer(PassRefPtr<WebGLBuffer> buffer)
|
| +void WebGLVertexArrayObjectOES::setElementArrayBuffer(PassRefPtrWillBeRawPtr<WebGLBuffer> buffer)
|
| {
|
| if (buffer)
|
| buffer->onAttached();
|
| if (m_boundElementArrayBuffer)
|
| m_boundElementArrayBuffer->onDetached(context()->webContext());
|
| m_boundElementArrayBuffer = buffer;
|
| -
|
| }
|
|
|
| void WebGLVertexArrayObjectOES::setVertexAttribState(
|
| - GLuint index, GLsizei bytesPerElement, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset, PassRefPtr<WebGLBuffer> buffer)
|
| + GLuint index, GLsizei bytesPerElement, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset, PassRefPtrWillBeRawPtr<WebGLBuffer> buffer)
|
| {
|
| GLsizei validatedStride = stride ? stride : bytesPerElement;
|
|
|
| @@ -111,7 +115,7 @@ void WebGLVertexArrayObjectOES::setVertexAttribState(
|
| state.offset = offset;
|
| }
|
|
|
| -void WebGLVertexArrayObjectOES::unbindBuffer(PassRefPtr<WebGLBuffer> buffer)
|
| +void WebGLVertexArrayObjectOES::unbindBuffer(PassRefPtrWillBeRawPtr<WebGLBuffer> buffer)
|
| {
|
| if (m_boundElementArrayBuffer == buffer) {
|
| m_boundElementArrayBuffer->onDetached(context()->webContext());
|
| @@ -133,4 +137,16 @@ void WebGLVertexArrayObjectOES::setVertexAttribDivisor(GLuint index, GLuint divi
|
| state.divisor = divisor;
|
| }
|
|
|
| +void WebGLVertexArrayObjectOES::VertexAttribState::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(bufferBinding);
|
| +}
|
| +
|
| +void WebGLVertexArrayObjectOES::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(m_boundElementArrayBuffer);
|
| + visitor->trace(m_vertexAttribState);
|
| + WebGLContextObject::trace(visitor);
|
| +}
|
| +
|
| }
|
|
|