diff options
Diffstat (limited to '')
-rw-r--r-- | image/AnimationParams.h | 55 |
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 |