#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;
};
}
#endif