| Index: Source/core/paint/CompositingRecorder.cpp
|
| diff --git a/Source/core/paint/CompositingRecorder.cpp b/Source/core/paint/CompositingRecorder.cpp
|
| index 8d68e46828114ae148889c7e4f7d0ed0663eb0eb..2a2b5c9fe2e26e6df981962a2198e036ca9a5bbf 100644
|
| --- a/Source/core/paint/CompositingRecorder.cpp
|
| +++ b/Source/core/paint/CompositingRecorder.cpp
|
| @@ -13,16 +13,30 @@
|
|
|
| namespace blink {
|
|
|
| -CompositingRecorder::CompositingRecorder(GraphicsContext& graphicsContext, const DisplayItemClientWrapper& client, const SkXfermode::Mode xferMode, const float opacity, const FloatRect* bounds, ColorFilter colorFilter)
|
| +CompositingRecorder::CompositingRecorder(GraphicsContext& graphicsContext, const DisplayItemClientWrapper& client)
|
| : m_client(client)
|
| , m_graphicsContext(graphicsContext)
|
| + , m_engaged(false)
|
| {
|
| - beginCompositing(graphicsContext, m_client, xferMode, opacity, bounds, colorFilter);
|
| +}
|
| +
|
| +CompositingRecorder::CompositingRecorder(GraphicsContext& graphicsContext, const DisplayItemClientWrapper& client, SkXfermode::Mode xferMode, float opacity, const FloatRect* bounds, ColorFilter colorFilter)
|
| + : CompositingRecorder(graphicsContext, client)
|
| +{
|
| + begin(xferMode, opacity, bounds, colorFilter);
|
| }
|
|
|
| CompositingRecorder::~CompositingRecorder()
|
| {
|
| - endCompositing(m_graphicsContext, m_client);
|
| + if (m_engaged)
|
| + endCompositing(m_graphicsContext, m_client);
|
| +}
|
| +
|
| +void CompositingRecorder::begin(SkXfermode::Mode xferMode, float opacity, const FloatRect* bounds, ColorFilter colorFilter)
|
| +{
|
| + ASSERT(!m_engaged);
|
| + m_engaged = true;
|
| + beginCompositing(m_graphicsContext, m_client, xferMode, opacity, bounds, colorFilter);
|
| }
|
|
|
| void CompositingRecorder::beginCompositing(GraphicsContext& graphicsContext, const DisplayItemClientWrapper& client, const SkXfermode::Mode xferMode, const float opacity, const FloatRect* bounds, ColorFilter colorFilter)
|
|
|