Bug 695845 - Part 2: Add ShadowImplData. r=cjones

This commit is contained in:
Matt Woodrow
2011-12-19 14:49:45 -05:00
parent d560b9919e
commit ade16125e3
3 changed files with 30 additions and 5 deletions

View File

@@ -97,7 +97,7 @@ class ShadowableLayer;
* | |
* +-> BasicImageLayer <--------------+
*/
class BasicImplData {
class BasicImplData : public ShadowImplData {
public:
BasicImplData() : mHidden(false),
mClipToVisibleRegion(false), mOperator(gfxContext::OPERATOR_OVER)
@@ -197,6 +197,13 @@ ToData(Layer* aLayer)
return static_cast<BasicImplData*>(aLayer->ImplData());
}
template <typename T>
static ShadowImplData*
ToShadowData(T* aLayer)
{
return static_cast<ShadowImplData*>(aLayer->ImplData());
}
template<class Container>
static void ContainerInsertAfter(Layer* aChild, Layer* aAfter, Container* aContainer);
template<class Container>
@@ -2078,10 +2085,11 @@ public:
virtual BasicShadowableThebesLayer* AsThebes() { return nsnull; }
};
template <typename T>
static ShadowableLayer*
ToShadowable(Layer* aLayer)
ToShadowable(T* aLayer)
{
return ToData(aLayer)->AsShadowableLayer();
return ToShadowData(aLayer)->AsShadowableLayer();
}
// Some layers, like ReadbackLayers, can't be shadowed and shadowing