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..ce85198b3ba1a4610f34fa9739336614a4ef450e |
--- /dev/null |
+++ b/Source/platform/graphics/GraphicsContextCullSaver.h |
@@ -0,0 +1,47 @@ |
+#ifndef GraphicsContextCullSaver_h |
+#define GraphicsContextCullSaver_h |
+ |
+#include "platform/PlatformExport.h" |
+#include "platform/graphics/GraphicsContext.h" |
+ |
+namespace WebCore { |
+ |
+class FloatRect; |
+ |
+class PLATFORM_EXPORT GraphicsContextCullSaver { |
Stephen Chennney
2014/03/21 19:44:20
You don't need this for a fully inlined class.
|
+ 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 |