1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef mozilla_image_DynamicImage_h
7 #define mozilla_image_DynamicImage_h
9 #include "mozilla/MemoryReporting.h"
10 #include "gfxDrawable.h"
17 * An Image that is dynamically created. The content of the image is provided by
18 * a gfxDrawable. It's anticipated that most uses of DynamicImage will be
21 class DynamicImage
: public Image
27 explicit DynamicImage(gfxDrawable
* aDrawable
)
28 : mDrawable(aDrawable
)
30 MOZ_ASSERT(aDrawable
, "Must have a gfxDrawable to wrap");
33 // Inherited methods from Image.
34 nsresult
GetNativeSizes(nsTArray
<gfx::IntSize
>& aNativeSizes
) const override
;
35 size_t GetNativeSizesLength() const override
;
36 virtual already_AddRefed
<ProgressTracker
> GetProgressTracker() override
;
37 virtual size_t SizeOfSourceWithComputedFallback(
38 SizeOfState
& aState
) const override
;
39 virtual void CollectSizeOfSurfaces(nsTArray
<SurfaceMemoryCounter
>& aCounters
,
40 MallocSizeOf aMallocSizeOf
) const override
;
42 virtual void IncrementAnimationConsumers() override
;
43 virtual void DecrementAnimationConsumers() override
;
45 virtual uint32_t GetAnimationConsumers() override
;
48 virtual nsresult
OnImageDataAvailable(nsIRequest
* aRequest
,
49 nsISupports
* aContext
,
50 nsIInputStream
* aInStr
,
51 uint64_t aSourceOffset
,
52 uint32_t aCount
) override
;
53 virtual nsresult
OnImageDataComplete(nsIRequest
* aRequest
,
54 nsISupports
* aContext
,
56 bool aLastPart
) override
;
58 virtual void OnSurfaceDiscarded(const SurfaceKey
& aSurfaceKey
) override
;
60 virtual void SetInnerWindowID(uint64_t aInnerWindowId
) override
;
61 virtual uint64_t InnerWindowID() const override
;
63 virtual bool HasError() override
;
64 virtual void SetHasError() override
;
66 nsIURI
* GetURI() const override
;
69 virtual ~DynamicImage() { }
71 RefPtr
<gfxDrawable
> mDrawable
;
75 } // namespace mozilla
77 #endif // mozilla_image_DynamicImage_h