зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1388639 - Use KnowsCompositor instead of ShadowForwarder in MaskImageData and MaskLayerImageCache r=nical
This commit is contained in:
Родитель
b15e213fc9
Коммит
276b8889d3
|
@ -1699,20 +1699,20 @@ public:
|
|||
return mDrawTarget;
|
||||
}
|
||||
|
||||
if (mLayerManager->GetBackendType() == LayersBackend::LAYERS_BASIC ||
|
||||
mLayerManager->GetBackendType() == LayersBackend::LAYERS_WR) {
|
||||
if (mLayerManager->GetBackendType() == LayersBackend::LAYERS_BASIC) {
|
||||
mDrawTarget = mLayerManager->CreateOptimalMaskDrawTarget(mSize);
|
||||
return mDrawTarget;
|
||||
}
|
||||
|
||||
MOZ_ASSERT(mLayerManager->GetBackendType() == LayersBackend::LAYERS_CLIENT);
|
||||
MOZ_ASSERT(mLayerManager->GetBackendType() == LayersBackend::LAYERS_CLIENT ||
|
||||
mLayerManager->GetBackendType() == LayersBackend::LAYERS_WR);
|
||||
|
||||
ShadowLayerForwarder* fwd = mLayerManager->AsShadowForwarder();
|
||||
if (!fwd) {
|
||||
KnowsCompositor* knowsCompositor = mLayerManager->AsKnowsCompositor();
|
||||
if (!knowsCompositor) {
|
||||
return nullptr;
|
||||
}
|
||||
mTextureClient =
|
||||
TextureClient::CreateForDrawing(fwd,
|
||||
TextureClient::CreateForDrawing(knowsCompositor,
|
||||
SurfaceFormat::A8,
|
||||
mSize,
|
||||
BackendSelector::Content,
|
||||
|
@ -1747,8 +1747,7 @@ public:
|
|||
private:
|
||||
already_AddRefed<Image> CreateImage()
|
||||
{
|
||||
if ((mLayerManager->GetBackendType() == LayersBackend::LAYERS_BASIC ||
|
||||
mLayerManager->GetBackendType() == LayersBackend::LAYERS_WR) &&
|
||||
if (mLayerManager->GetBackendType() == LayersBackend::LAYERS_BASIC &&
|
||||
mDrawTarget) {
|
||||
RefPtr<SourceSurface> surface = mDrawTarget->Snapshot();
|
||||
RefPtr<SourceSurfaceImage> image = new SourceSurfaceImage(mSize, surface);
|
||||
|
@ -1758,7 +1757,8 @@ private:
|
|||
return image.forget();
|
||||
}
|
||||
|
||||
if (mLayerManager->GetBackendType() == LayersBackend::LAYERS_CLIENT &&
|
||||
if ((mLayerManager->GetBackendType() == LayersBackend::LAYERS_CLIENT ||
|
||||
mLayerManager->GetBackendType() == LayersBackend::LAYERS_WR) &&
|
||||
mTextureClient &&
|
||||
mDrawTarget) {
|
||||
RefPtr<TextureWrapperImage> image =
|
||||
|
@ -6459,7 +6459,7 @@ ContainerState::CreateMaskLayer(Layer *aLayer,
|
|||
mContainerFrame->PresContext()));
|
||||
newKey->mRoundedClipRects[i].ScaleAndTranslate(imageTransform);
|
||||
}
|
||||
newKey->mForwarder = mManager->AsShadowForwarder();
|
||||
newKey->mKnowsCompositor = mManager->AsKnowsCompositor();
|
||||
|
||||
const MaskLayerImageCache::MaskLayerImageKey* lookupKey = newKey;
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include "MaskLayerImageCache.h"
|
||||
|
||||
#include "ImageContainer.h"
|
||||
#include "mozilla/layers/ShadowLayers.h"
|
||||
#include "mozilla/layers/KnowsCompositor.h"
|
||||
|
||||
using namespace mozilla::layers;
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace mozilla {
|
|||
|
||||
namespace layers {
|
||||
class ImageContainer;
|
||||
class ShadowLayerForwarder;
|
||||
class KnowsCompositor;
|
||||
} // namespace layers
|
||||
|
||||
/**
|
||||
|
@ -34,7 +34,7 @@ class ShadowLayerForwarder;
|
|||
class MaskLayerImageCache
|
||||
{
|
||||
typedef mozilla::layers::ImageContainer ImageContainer;
|
||||
typedef mozilla::layers::ShadowLayerForwarder ShadowLayerForwarder;
|
||||
typedef mozilla::layers::KnowsCompositor KnowsCompositor;
|
||||
public:
|
||||
MaskLayerImageCache();
|
||||
~MaskLayerImageCache();
|
||||
|
@ -154,19 +154,19 @@ public:
|
|||
for (uint32_t i = 0; i < mRoundedClipRects.Length(); ++i) {
|
||||
hash = AddToHash(hash, mRoundedClipRects[i].Hash());
|
||||
}
|
||||
hash = AddToHash(hash, mForwarder.get());
|
||||
hash = AddToHash(hash, mKnowsCompositor.get());
|
||||
|
||||
return hash;
|
||||
}
|
||||
|
||||
bool operator==(const MaskLayerImageKey& aOther) const
|
||||
{
|
||||
return mForwarder == aOther.mForwarder &&
|
||||
return mKnowsCompositor == aOther.mKnowsCompositor &&
|
||||
mRoundedClipRects == aOther.mRoundedClipRects;
|
||||
}
|
||||
|
||||
nsTArray<PixelRoundedRect> mRoundedClipRects;
|
||||
RefPtr<ShadowLayerForwarder> mForwarder;
|
||||
RefPtr<KnowsCompositor> mKnowsCompositor;
|
||||
private:
|
||||
void IncLayerCount() const { ++mLayerCount; }
|
||||
void DecLayerCount() const
|
||||
|
|
Загрузка…
Ссылка в новой задаче