summaryrefslogtreecommitdiffstats
path: root/image/AnimationParams.h
diff options
context:
space:
mode:
Diffstat (limited to 'image/AnimationParams.h')
-rw-r--r--image/AnimationParams.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/image/AnimationParams.h b/image/AnimationParams.h
new file mode 100644
index 0000000000..1e20eea04a
--- /dev/null
+++ b/image/AnimationParams.h
@@ -0,0 +1,55 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef mozilla_image_AnimationParams_h
+#define mozilla_image_AnimationParams_h
+
+#include <stdint.h>
+#include "mozilla/gfx/Rect.h"
+#include "FrameTimeout.h"
+
+namespace mozilla {
+namespace image {
+
+enum class BlendMethod : int8_t {
+ // All color components of the frame, including alpha, overwrite the current
+ // contents of the frame's output buffer region.
+ SOURCE,
+
+ // The frame should be composited onto the output buffer based on its alpha,
+ // using a simple OVER operation.
+ OVER
+};
+
+enum class DisposalMethod : int8_t {
+ CLEAR_ALL = -1, // Clear the whole image, revealing what's underneath.
+ NOT_SPECIFIED, // Leave the frame and let the new frame draw on top.
+ KEEP, // Leave the frame and let the new frame draw on top.
+ CLEAR, // Clear the frame's area, revealing what's underneath.
+ RESTORE_PREVIOUS // Restore the previous (composited) frame.
+};
+
+struct AnimationParams {
+ AnimationParams(const gfx::IntRect& aBlendRect, const FrameTimeout& aTimeout,
+ uint32_t aFrameNum, BlendMethod aBlendMethod,
+ DisposalMethod aDisposalMethod)
+ : mBlendRect(aBlendRect),
+ mTimeout(aTimeout),
+ mFrameNum(aFrameNum),
+ mBlendMethod(aBlendMethod),
+ mDisposalMethod(aDisposalMethod) {}
+
+ gfx::IntRect mBlendRect;
+ FrameTimeout mTimeout;
+ uint32_t mFrameNum;
+ BlendMethod mBlendMethod;
+ DisposalMethod mDisposalMethod;
+};
+
+} // namespace image
+} // namespace mozilla
+
+#endif // mozilla_image_AnimationParams_h