diff options
author | Nicolas Roard <nicolas@android.com> | 2010-12-08 14:47:40 -0800 |
---|---|---|
committer | Nicolas Roard <nicolas@android.com> | 2010-12-08 14:49:38 -0800 |
commit | ca545d559ae83b77f092246a390b463ff7b6901d (patch) | |
tree | c1f2ce0c93c7f5c8a16a4e6e762b13418012f950 /WebCore/platform/graphics/android/DeleteTextureOperation.h | |
parent | 1f77d3c65df83217526caa2170b295c52a30416f (diff) | |
download | external_webkit-ca545d559ae83b77f092246a390b463ff7b6901d.zip external_webkit-ca545d559ae83b77f092246a390b463ff7b6901d.tar.gz external_webkit-ca545d559ae83b77f092246a390b463ff7b6901d.tar.bz2 |
Add a DeleteTextureOperation class and use it in SharedTexture
Change-Id: If0fd058911d84263b4f6257bf19cf6b2132c029a
Diffstat (limited to 'WebCore/platform/graphics/android/DeleteTextureOperation.h')
-rw-r--r-- | WebCore/platform/graphics/android/DeleteTextureOperation.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/WebCore/platform/graphics/android/DeleteTextureOperation.h b/WebCore/platform/graphics/android/DeleteTextureOperation.h new file mode 100644 index 0000000..32717a0 --- /dev/null +++ b/WebCore/platform/graphics/android/DeleteTextureOperation.h @@ -0,0 +1,61 @@ +/* + * Copyright 2010, The Android Open Source Project + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef DeleteTextureOperation_h +#define DeleteTextureOperation_h + +#include "GLUtils.h" +#include "QueuedOperation.h" + +namespace WebCore { + +class DeleteTextureOperation : public QueuedOperation { + public: + DeleteTextureOperation(GLuint textureId, EGLImageKHR eglImage) + : QueuedOperation(QueuedOperation::DeleteTexture, 0) + , m_textureId(textureId) + , m_eglImage(eglImage) {} + virtual bool operator==(const QueuedOperation* operation) + { + if (operation->type() != type()) + return false; + const DeleteTextureOperation* op = static_cast<const DeleteTextureOperation*>(operation); + return op->m_textureId == m_textureId; + } + virtual void run() + { + if (m_textureId) + GLUtils::deleteTexture(&m_textureId); + if (m_eglImage) + eglDestroyImageKHR(eglGetCurrentDisplay(), m_eglImage); + } + private: + GLuint m_textureId; + EGLImageKHR m_eglImage; +}; + +} + +#endif // DeleteTextureOperation_h |