mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Bug 1379920 - Introduce WebRenderCanvasData. r=kats
MozReview-Commit-ID: 4aBfWib1bQq
This commit is contained in:
parent
f3d4ff499f
commit
23c9ce9b7b
@ -10,6 +10,7 @@
|
||||
#include "mozilla/layers/WebRenderLayerManager.h"
|
||||
#include "mozilla/layers/WebRenderMessages.h"
|
||||
#include "nsDisplayListInvalidation.h"
|
||||
#include "WebRenderCanvasRenderer.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace layers {
|
||||
@ -190,5 +191,24 @@ WebRenderAnimationData::WebRenderAnimationData(WebRenderLayerManager* aWRManager
|
||||
{
|
||||
}
|
||||
|
||||
WebRenderCanvasData::WebRenderCanvasData(WebRenderLayerManager* aWRManager)
|
||||
: WebRenderUserData(aWRManager)
|
||||
{
|
||||
}
|
||||
|
||||
WebRenderCanvasData::~WebRenderCanvasData()
|
||||
{
|
||||
}
|
||||
|
||||
WebRenderCanvasRendererAsync*
|
||||
WebRenderCanvasData::GetCanvasRenderer()
|
||||
{
|
||||
if (!mCanvasRenderer) {
|
||||
mCanvasRenderer = MakeUnique<WebRenderCanvasRendererAsync>(mWRManager);
|
||||
}
|
||||
|
||||
return mCanvasRenderer.get();
|
||||
}
|
||||
|
||||
} // namespace layers
|
||||
} // namespace mozilla
|
||||
|
@ -14,9 +14,12 @@ class nsDisplayItemGeometry;
|
||||
|
||||
namespace mozilla {
|
||||
namespace layers {
|
||||
class CanvasLayer;
|
||||
class ImageClient;
|
||||
class ImageContainer;
|
||||
class WebRenderBridgeChild;
|
||||
class WebRenderCanvasData;
|
||||
class WebRenderCanvasRendererAsync;
|
||||
class WebRenderImageData;
|
||||
class WebRenderFallbackData;
|
||||
class WebRenderLayerManager;
|
||||
@ -30,11 +33,13 @@ public:
|
||||
|
||||
virtual WebRenderImageData* AsImageData() { return nullptr; }
|
||||
virtual WebRenderFallbackData* AsFallbackData() { return nullptr; }
|
||||
virtual WebRenderCanvasData* AsCanvasData() { return nullptr; }
|
||||
|
||||
enum class UserDataType {
|
||||
eImage,
|
||||
eFallback,
|
||||
eAnimation,
|
||||
eCanvas,
|
||||
};
|
||||
|
||||
virtual UserDataType GetType() = 0;
|
||||
@ -120,6 +125,22 @@ protected:
|
||||
AnimationInfo mAnimationInfo;
|
||||
};
|
||||
|
||||
class WebRenderCanvasData : public WebRenderUserData
|
||||
{
|
||||
public:
|
||||
explicit WebRenderCanvasData(WebRenderLayerManager* aWRManager);
|
||||
virtual ~WebRenderCanvasData();
|
||||
|
||||
virtual WebRenderCanvasData* AsCanvasData() override { return this; }
|
||||
virtual UserDataType GetType() override { return UserDataType::eCanvas; }
|
||||
static UserDataType Type() { return UserDataType::eCanvas; }
|
||||
|
||||
WebRenderCanvasRendererAsync* GetCanvasRenderer();
|
||||
|
||||
protected:
|
||||
UniquePtr<WebRenderCanvasRendererAsync> mCanvasRenderer;
|
||||
};
|
||||
|
||||
} // namespace layers
|
||||
} // namespace mozilla
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user