Bug 951858 - Support DrawTarget::CopySurface with A8 D2D textures. r=Bas

This commit is contained in:
Nicolas Silva 2013-12-19 19:44:20 +01:00
parent 6eb72965c0
commit 0e614fd67a

View File

@ -821,9 +821,17 @@ DrawTargetD2D::CopySurface(SourceSurface *aSurface,
return;
}
mRT->DrawBitmap(bitmap, D2DRect(dstRect), 1.0f,
D2D1_BITMAP_INTERPOLATION_MODE_LINEAR,
D2DRect(srcRect));
if (aSurface->GetFormat() == FORMAT_A8) {
RefPtr<ID2D1SolidColorBrush> brush;
mRT->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::White),
D2D1::BrushProperties(), byRef(brush));
mRT->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
mRT->FillOpacityMask(bitmap, brush, D2D1_OPACITY_MASK_CONTENT_GRAPHICS);
} else {
mRT->DrawBitmap(bitmap, D2DRect(dstRect), 1.0f,
D2D1_BITMAP_INTERPOLATION_MODE_LINEAR,
D2DRect(srcRect));
}
}
void