forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			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
 | 
