зеркало из https://github.com/mozilla/gecko-dev.git
56 строки
1.8 KiB
C++
56 строки
1.8 KiB
C++
/* -*- 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
|