12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /* -*- 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_DynamicImage_h
- #define mozilla_image_DynamicImage_h
- #include "mozilla/MemoryReporting.h"
- #include "gfxDrawable.h"
- #include "Image.h"
- namespace mozilla {
- namespace image {
- /**
- * An Image that is dynamically created. The content of the image is provided by
- * a gfxDrawable. It's anticipated that most uses of DynamicImage will be
- * ephemeral.
- */
- class DynamicImage : public Image
- {
- public:
- NS_DECL_ISUPPORTS
- NS_DECL_IMGICONTAINER
- explicit DynamicImage(gfxDrawable* aDrawable)
- : mDrawable(aDrawable)
- {
- MOZ_ASSERT(aDrawable, "Must have a gfxDrawable to wrap");
- }
- // Inherited methods from Image.
- virtual already_AddRefed<ProgressTracker> GetProgressTracker() override;
- virtual size_t SizeOfSourceWithComputedFallback(
- MallocSizeOf aMallocSizeOf) const override;
- virtual void CollectSizeOfSurfaces(nsTArray<SurfaceMemoryCounter>& aCounters,
- MallocSizeOf aMallocSizeOf) const override;
- virtual void IncrementAnimationConsumers() override;
- virtual void DecrementAnimationConsumers() override;
- #ifdef DEBUG
- virtual uint32_t GetAnimationConsumers() override;
- #endif
- virtual nsresult OnImageDataAvailable(nsIRequest* aRequest,
- nsISupports* aContext,
- nsIInputStream* aInStr,
- uint64_t aSourceOffset,
- uint32_t aCount) override;
- virtual nsresult OnImageDataComplete(nsIRequest* aRequest,
- nsISupports* aContext,
- nsresult aStatus,
- bool aLastPart) override;
- virtual void OnSurfaceDiscarded() override;
- virtual void SetInnerWindowID(uint64_t aInnerWindowId) override;
- virtual uint64_t InnerWindowID() const override;
- virtual bool HasError() override;
- virtual void SetHasError() override;
- virtual ImageURL* GetURI() override;
- private:
- virtual ~DynamicImage() { }
- RefPtr<gfxDrawable> mDrawable;
- };
- } // namespace image
- } // namespace mozilla
- #endif // mozilla_image_DynamicImage_h
|