Backout 4b46f6eff8f4 (Bug 732988) for linux Cipc orange

This commit is contained in:
Daniel Holbert
2012-03-11 16:43:12 -07:00
parent 25f6085512
commit 22ff58b4ab
5 changed files with 18 additions and 47 deletions

View File

@@ -581,12 +581,6 @@ private:
*/ */
class THEBES_API ImageLayer : public Layer { class THEBES_API ImageLayer : public Layer {
public: public:
enum ScaleMode {
SCALE_NONE,
SCALE_STRETCH // Unimplemented on GL layers and e10s
// Unimplemented - SCALE_PRESERVE_ASPECT_RATIO_CONTAIN
};
/** /**
* CONSTRUCTION PHASE ONLY * CONSTRUCTION PHASE ONLY
* Set the ImageContainer. aContainer must have the same layer manager * Set the ImageContainer. aContainer must have the same layer manager
@@ -602,17 +596,6 @@ public:
*/ */
void SetFilter(gfxPattern::GraphicsFilter aFilter) { mFilter = aFilter; } void SetFilter(gfxPattern::GraphicsFilter aFilter) { mFilter = aFilter; }
/**
* CONSTRUCTION PHASE ONLY
* Set the size to scale the image to and the mode at which to scale.
*/
void SetScaleToSize(const gfxIntSize &aSize, ScaleMode aMode)
{
mScaleToSize = aSize;
mScaleMode = aMode;
}
ImageContainer* GetContainer() { return mContainer; } ImageContainer* GetContainer() { return mContainer; }
gfxPattern::GraphicsFilter GetFilter() { return mFilter; } gfxPattern::GraphicsFilter GetFilter() { return mFilter; }
@@ -637,16 +620,12 @@ public:
protected: protected:
ImageLayer(LayerManager* aManager, void* aImplData) ImageLayer(LayerManager* aManager, void* aImplData)
: Layer(aManager, aImplData), mFilter(gfxPattern::FILTER_GOOD) : Layer(aManager, aImplData), mFilter(gfxPattern::FILTER_GOOD) {}
, mScaleMode(SCALE_NONE) {}
virtual nsACString& PrintInfo(nsACString& aTo, const char* aPrefix); virtual nsACString& PrintInfo(nsACString& aTo, const char* aPrefix);
nsRefPtr<ImageContainer> mContainer; nsRefPtr<ImageContainer> mContainer;
gfxPattern::GraphicsFilter mFilter; gfxPattern::GraphicsFilter mFilter;
gfxIntSize mScaleToSize;
ScaleMode mScaleMode;
}; };
/****** Image subtypes for the different formats ******/ /****** Image subtypes for the different formats ******/

View File

@@ -867,7 +867,8 @@ BasicThebesLayerBuffer::SetBackingBufferAndUpdateFrom(
class BasicImageLayer : public ImageLayer, public BasicImplData { class BasicImageLayer : public ImageLayer, public BasicImplData {
public: public:
BasicImageLayer(BasicLayerManager* aLayerManager) : BasicImageLayer(BasicLayerManager* aLayerManager) :
ImageLayer(aLayerManager, static_cast<BasicImplData*>(this)) ImageLayer(aLayerManager, static_cast<BasicImplData*>(this)),
mSize(-1, -1)
{ {
MOZ_COUNT_CTOR(BasicImageLayer); MOZ_COUNT_CTOR(BasicImageLayer);
} }
@@ -900,6 +901,8 @@ protected:
already_AddRefed<gfxPattern> already_AddRefed<gfxPattern>
GetAndPaintCurrentImage(gfxContext* aContext, GetAndPaintCurrentImage(gfxContext* aContext,
float aOpacity); float aOpacity);
gfxIntSize mSize;
}; };
void void
@@ -923,7 +926,7 @@ BasicImageLayer::GetAndPaintCurrentImage(gfxContext* aContext,
nsRefPtr<gfxASurface> surface; nsRefPtr<gfxASurface> surface;
AutoLockImage autoLock(mContainer, getter_AddRefs(surface)); AutoLockImage autoLock(mContainer, getter_AddRefs(surface));
Image *image = autoLock.GetImage(); Image *image = autoLock.GetImage();
gfxIntSize size = autoLock.GetSize(); mSize = autoLock.GetSize();
if (!surface || surface->CairoStatus()) { if (!surface || surface->CairoStatus()) {
return nsnull; return nsnull;
@@ -935,15 +938,6 @@ BasicImageLayer::GetAndPaintCurrentImage(gfxContext* aContext,
} }
pat->SetFilter(mFilter); pat->SetFilter(mFilter);
gfxIntSize sourceSize = surface->GetSize();
if (mScaleMode != SCALE_NONE) {
NS_ASSERTION(mScaleMode == SCALE_STRETCH,
"No other scalemodes than stretch and none supported yet.");
gfxMatrix mat = pat->GetMatrix();
mat.Scale(float(sourceSize.width) / mScaleToSize.width, float(sourceSize.height) / mScaleToSize.height);
pat->SetMatrix(mat);
size = mScaleToSize;
}
// The visible region can extend outside the image. If we're not // The visible region can extend outside the image. If we're not
// tiling, we don't want to draw into that area, so just draw within // tiling, we don't want to draw into that area, so just draw within
@@ -951,7 +945,7 @@ BasicImageLayer::GetAndPaintCurrentImage(gfxContext* aContext,
const nsIntRect* tileSrcRect = GetTileSourceRect(); const nsIntRect* tileSrcRect = GetTileSourceRect();
AutoSetOperator setOperator(aContext, GetOperator()); AutoSetOperator setOperator(aContext, GetOperator());
PaintContext(pat, PaintContext(pat,
tileSrcRect ? GetVisibleRegion() : nsIntRegion(nsIntRect(0, 0, size.width, size.height)), tileSrcRect ? GetVisibleRegion() : nsIntRegion(nsIntRect(0, 0, mSize.width, mSize.height)),
tileSrcRect, tileSrcRect,
aOpacity, aContext); aOpacity, aContext);
@@ -2475,8 +2469,7 @@ class BasicShadowableImageLayer : public BasicImageLayer,
public: public:
BasicShadowableImageLayer(BasicShadowLayerManager* aManager) : BasicShadowableImageLayer(BasicShadowLayerManager* aManager) :
BasicImageLayer(aManager), BasicImageLayer(aManager),
mBufferIsOpaque(false), mBufferIsOpaque(false)
mSize(-1, -1)
{ {
MOZ_COUNT_CTOR(BasicShadowableImageLayer); MOZ_COUNT_CTOR(BasicShadowableImageLayer);
} }
@@ -2543,7 +2536,6 @@ private:
nsRefPtr<gfxSharedImageSurface> mBackBufferU; nsRefPtr<gfxSharedImageSurface> mBackBufferU;
nsRefPtr<gfxSharedImageSurface> mBackBufferV; nsRefPtr<gfxSharedImageSurface> mBackBufferV;
gfxIntSize mCbCrSize; gfxIntSize mCbCrSize;
gfxIntSize mSize;
}; };
void void

View File

@@ -130,8 +130,6 @@ ImageLayerD3D10::RenderLayer()
return; return;
} }
gfxIntSize size = mScaleMode == SCALE_NONE ? image->GetSize() : mScaleToSize;
SetEffectTransformAndOpacity(); SetEffectTransformAndOpacity();
ID3D10EffectTechnique *technique; ID3D10EffectTechnique *technique;
@@ -139,6 +137,7 @@ ImageLayerD3D10::RenderLayer()
if (image->GetFormat() == Image::CAIRO_SURFACE || image->GetFormat() == Image::REMOTE_IMAGE_BITMAP) if (image->GetFormat() == Image::CAIRO_SURFACE || image->GetFormat() == Image::REMOTE_IMAGE_BITMAP)
{ {
bool hasAlpha = false; bool hasAlpha = false;
gfxIntSize size;
if (image->GetFormat() == Image::REMOTE_IMAGE_BITMAP) { if (image->GetFormat() == Image::REMOTE_IMAGE_BITMAP) {
RemoteBitmapImage *remoteImage = RemoteBitmapImage *remoteImage =
@@ -155,6 +154,7 @@ ImageLayerD3D10::RenderLayer()
} }
hasAlpha = remoteImage->mFormat == RemoteImageData::BGRA32; hasAlpha = remoteImage->mFormat == RemoteImageData::BGRA32;
size = remoteImage->mSize;
} else { } else {
CairoImage *cairoImage = CairoImage *cairoImage =
static_cast<CairoImage*>(image); static_cast<CairoImage*>(image);
@@ -174,6 +174,7 @@ ImageLayerD3D10::RenderLayer()
} }
hasAlpha = cairoImage->mSurface->GetContentType() == gfxASurface::CONTENT_COLOR_ALPHA; hasAlpha = cairoImage->mSurface->GetContentType() == gfxASurface::CONTENT_COLOR_ALPHA;
size = cairoImage->mSize;
} }
TextureD3D10BackendData *data = TextureD3D10BackendData *data =
@@ -285,8 +286,8 @@ ImageLayerD3D10::RenderLayer()
ShaderConstantRectD3D10( ShaderConstantRectD3D10(
(float)0, (float)0,
(float)0, (float)0,
(float)size.width, (float)yuvImage->mSize.width,
(float)size.height) (float)yuvImage->mSize.height)
); );
effect()->GetVariableByName("vTextureCoords")->AsVector()->SetFloatVector( effect()->GetVariableByName("vTextureCoords")->AsVector()->SetFloatVector(

View File

@@ -325,11 +325,10 @@ ImageLayerD3D9::RenderLayer()
SetShaderTransformAndOpacity(); SetShaderTransformAndOpacity();
gfxIntSize size = mScaleMode == SCALE_NONE ? image->GetSize() : mScaleToSize;
if (image->GetFormat() == Image::CAIRO_SURFACE || image->GetFormat() == Image::REMOTE_IMAGE_BITMAP) if (image->GetFormat() == Image::CAIRO_SURFACE || image->GetFormat() == Image::REMOTE_IMAGE_BITMAP)
{ {
bool hasAlpha = false; bool hasAlpha = false;
gfxIntSize size;
if (image->GetFormat() == Image::REMOTE_IMAGE_BITMAP) { if (image->GetFormat() == Image::REMOTE_IMAGE_BITMAP) {
RemoteBitmapImage *remoteImage = RemoteBitmapImage *remoteImage =
@@ -344,6 +343,7 @@ ImageLayerD3D9::RenderLayer()
} }
hasAlpha = remoteImage->mFormat == RemoteImageData::BGRA32; hasAlpha = remoteImage->mFormat == RemoteImageData::BGRA32;
size = remoteImage->mSize;
} else { } else {
CairoImage *cairoImage = CairoImage *cairoImage =
static_cast<CairoImage*>(image); static_cast<CairoImage*>(image);
@@ -361,6 +361,7 @@ ImageLayerD3D9::RenderLayer()
} }
hasAlpha = cairoImage->mSurface->GetContentType() == gfxASurface::CONTENT_COLOR_ALPHA; hasAlpha = cairoImage->mSurface->GetContentType() == gfxASurface::CONTENT_COLOR_ALPHA;
size = cairoImage->mSize;
} }
TextureD3D9BackendData *data = TextureD3D9BackendData *data =
@@ -432,8 +433,8 @@ ImageLayerD3D9::RenderLayer()
device()->SetVertexShaderConstantF(CBvLayerQuad, device()->SetVertexShaderConstantF(CBvLayerQuad,
ShaderConstantRect(0, ShaderConstantRect(0,
0, 0,
size.width, yuvImage->mSize.width,
size.height), yuvImage->mSize.height),
1); 1);
device()->SetVertexShaderConstantF(CBvTextureCoords, device()->SetVertexShaderConstantF(CBvTextureCoords,

View File

@@ -230,8 +230,6 @@ ImageLayerOGL::RenderLayer(int,
NS_ASSERTION(image->GetFormat() != Image::REMOTE_IMAGE_BITMAP, NS_ASSERTION(image->GetFormat() != Image::REMOTE_IMAGE_BITMAP,
"Remote images aren't handled yet in OGL layers!"); "Remote images aren't handled yet in OGL layers!");
NS_ASSERTION(mScaleMode == SCALE_NONE || image->GetSize() == mScaleToSize,
"Scale modes other than none not handled yet in OGL layers!");
if (image->GetFormat() == Image::PLANAR_YCBCR) { if (image->GetFormat() == Image::PLANAR_YCBCR) {
PlanarYCbCrImage *yuvImage = PlanarYCbCrImage *yuvImage =