| Index: Source/platform/graphics/GraphicsContextCullSaver.h
|
| diff --git a/Source/platform/graphics/GraphicsContextCullSaver.h b/Source/platform/graphics/GraphicsContextCullSaver.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1b1023ddea8cdaa31ee49dbe6bc466e8acf1af59
|
| --- /dev/null
|
| +++ b/Source/platform/graphics/GraphicsContextCullSaver.h
|
| @@ -0,0 +1,46 @@
|
| +#ifndef GraphicsContextCullSaver_h
|
| +#define GraphicsContextCullSaver_h
|
| +
|
| +#include "platform/graphics/GraphicsContext.h"
|
| +
|
| +namespace WebCore {
|
| +
|
| +class FloatRect;
|
| +
|
| +class GraphicsContextCullSaver {
|
| + WTF_MAKE_FAST_ALLOCATED;
|
| +public:
|
| + GraphicsContextCullSaver(GraphicsContext& context)
|
| + : m_context(context)
|
| + , m_cullApplied(false)
|
| + {
|
| + }
|
| +
|
| + GraphicsContextCullSaver(GraphicsContext& context, const FloatRect& rect)
|
| + : m_context(context)
|
| + , m_cullApplied(true)
|
| + {
|
| + context.beginCull(rect);
|
| + }
|
| +
|
| + ~GraphicsContextCullSaver()
|
| + {
|
| + if (m_cullApplied)
|
| + m_context.endCull();
|
| + }
|
| +
|
| + void cull(const FloatRect& rect)
|
| + {
|
| + ASSERT(!m_cullApplied);
|
| + m_context.beginCull(rect);
|
| + m_cullApplied = true;
|
| + }
|
| +
|
| +private:
|
| + GraphicsContext& m_context;
|
| + bool m_cullApplied;
|
| +};
|
| +
|
| +} // namespace WebCore
|
| +
|
| +#endif // GraphicsContextCullSaver_h
|
|
|