diff options
Diffstat (limited to 'Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.cpp b/Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.cpp index 4584d4986..49321182b 100644 --- a/Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.cpp +++ b/Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.cpp @@ -97,6 +97,21 @@ unsigned CCDrawQuad::size() const return sizeof(CCDrawQuad); } +PassOwnPtr<CCDrawQuad> CCDrawQuad::copy(const CCSharedQuadState* copiedSharedQuadState) const +{ + // RenderPass quads have their own copy() method. + ASSERT(material() != RenderPass); + + unsigned bytes = size(); + ASSERT(bytes); + + OwnPtr<CCDrawQuad> copyQuad(adoptPtr(reinterpret_cast<CCDrawQuad*>(new char[bytes]))); + memcpy(copyQuad.get(), this, bytes); + copyQuad->setSharedQuadState(copiedSharedQuadState); + + return copyQuad.release(); +} + void CCDrawQuad::setSharedQuadState(const CCSharedQuadState* sharedQuadState) { m_sharedQuadState = sharedQuadState; |