Bug 784260; DrawTargetD2D should deal with Cairo surfaces in CreateBrush... . r=Bas

--HG--
extra : rebase_source : 6f6226c1b22b6e863499a40268cb44afab799381
This commit is contained in:
Nicholas Cameron 2012-08-23 08:56:03 +12:00
parent 23ba347f48
commit d65d21e855
2 changed files with 12 additions and 7 deletions

View File

@ -151,6 +151,10 @@ GetCairoSurfaceForSourceSurface(SourceSurface *aSurface)
}
RefPtr<DataSourceSurface> data = aSurface->GetDataSurface();
if (!data) {
return nullptr;
}
cairo_surface_t* surf =
cairo_image_surface_create_for_data(data->GetData(),
GfxFormatToCairoFormat(data->GetFormat()),

View File

@ -2090,19 +2090,20 @@ DrawTargetD2D::CreateBrushForPattern(const Pattern &aPattern, Float aAlpha)
AddDependencyOnSource(surf);
}
break;
case SURFACE_DATA:
default:
{
DataSourceSurface *dataSurf =
static_cast<DataSourceSurface*>(pat->mSurface.get());
bitmap = CreatePartialBitmapForSurface(dataSurf, mat, pat->mExtendMode);
RefPtr<DataSourceSurface> dataSurf = pat->mSurface->GetDataSurface();
if (!dataSurf) {
gfxWarning() << "Invalid surface type.";
return nullptr;
}
bitmap = CreatePartialBitmapForSurface(dataSurf, mat, pat->mExtendMode);
if (!bitmap) {
return nullptr;
}
}
break;
default:
break;
}
mRT->CreateBitmapBrush(bitmap,