WebGLRenderbuffer::~WebGLRenderbuffer() { // This render buffer (heap) object must finalize itself. m_emulatedStencilBuffer.clear(); // See the comment in WebGLObject::detachAndDeleteObject(). detachAndDeleteObject(); }
WebGLVertexArrayObjectBase::~WebGLVertexArrayObjectBase() { m_destructionInProgress = true; // Delete the platform framebuffer resource, in case // where this vertex array object isn't detached when it and // the WebGLRenderingContextBase object it is registered with // are both finalized. detachAndDeleteObject(); }
WebGLFramebuffer::~WebGLFramebuffer() { // Attachments in |m_attachments| will be deleted from other // places, and we must not touch that map in deleteObjectImpl once // the destructor has been entered. m_destructionInProgress = true; // See the comment in WebGLObject::detachAndDeleteObject(). detachAndDeleteObject(); }
WebGLSampler::~WebGLSampler() { // Always call detach here to ensure that platform object deletion // happens with Oilpan enabled. It keeps the code regular to do it // with or without Oilpan enabled. // // See comment in WebGLBuffer's destructor for additional // information on why this is done for WebGLSharedObject-derived // objects. detachAndDeleteObject(); }
WebGLFramebuffer::~WebGLFramebuffer() { // Delete the platform framebuffer resource. Explicit detachment // is for the benefit of Oilpan, where the framebuffer object // isn't detached when it and the WebGLRenderingContextBase object // it is registered with are both finalized. Without Oilpan, the // object will have been detached. // // To keep the code regular, the trivial detach()ment is always // performed. detachAndDeleteObject(); }
WebGLRenderbuffer::~WebGLRenderbuffer() { #if ENABLE(OILPAN) // This render buffer (heap) object must finalize itself. m_emulatedStencilBuffer.clear(); #endif // Always call detach here to ensure that platform object deletion // happens with Oilpan enabled. It keeps the code regular to do it // with or without Oilpan enabled. // // See comment in WebGLBuffer's destructor for additional // information on why this is done for WebGLSharedObject-derived // objects. detachAndDeleteObject(); }
WebGLVertexArrayObjectOES::~WebGLVertexArrayObjectOES() { #if ENABLE(OILPAN) m_destructionInProgress = true; #endif // Delete the platform framebuffer resource. Explicit detachment // is for the benefit of Oilpan, where this vertex array object // isn't detached when it and the WebGLRenderingContextBase object // it is registered with are both finalized. Without Oilpan, the // object will have been detached. // // To keep the code regular, the trivial detach()ment is always // performed. detachAndDeleteObject(); }
WebGLProgram::~WebGLProgram() { #if ENABLE(OILPAN) // These heap objects handle detachment on their own. Clear out // the references to prevent deleteObjectImpl() from trying to do // same, as we cannot safely access other heap objects from this // destructor. m_vertexShader = nullptr; m_fragmentShader = nullptr; #endif // Always call detach here to ensure that platform object deletion // happens with Oilpan enabled. It keeps the code regular to do it // with or without Oilpan enabled. // // See comment in WebGLBuffer's destructor for additional // information on why this is done for WebGLSharedObject-derived // objects. detachAndDeleteObject(); }
WebGLVertexArrayObjectOES::~WebGLVertexArrayObjectOES() { #if ENABLE(OILPAN) // These heap objects must not be accessed by deleteObjectImpl(), // clear them out before a call to it is triggered below. The // finalizers of these two (and their elements) will themselves // handle detachment. m_boundElementArrayBuffer.clear(); m_vertexAttribState.clear(); #endif // Delete the platform framebuffer resource. Explicit detachment // is for the benefit of Oilpan, where this vertex array object // isn't detached when it and the WebGLRenderingContextBase object // it is registered with are both finalized. Without Oilpan, the // object will have been detached. // // To keep the code regular, the trivial detach()ment is always // performed. detachAndDeleteObject(); }
WebGLSync::~WebGLSync() { // See the comment in WebGLObject::detachAndDeleteObject(). detachAndDeleteObject(); }
WebGLSampler::~WebGLSampler() { // See the comment in WebGLObject::detachAndDeleteObject(). detachAndDeleteObject(); }
WebGLQuery::~WebGLQuery() { // See the comment in WebGLObject::detachAndDeleteObject(). detachAndDeleteObject(); }