mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 776802; Give better info about Azure. r=Bas
This commit is contained in:
parent
00dd95f3d6
commit
9f4ddcf0fb
@ -552,8 +552,7 @@ namespace dom {
|
||||
bool
|
||||
AzureCanvasEnabled()
|
||||
{
|
||||
BackendType dontCare;
|
||||
return gfxPlatform::GetPlatform()->SupportsAzureCanvas(dontCare);
|
||||
return gfxPlatform::GetPlatform()->SupportsAzureCanvas();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ function IsAzureEnabled() {
|
||||
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var backend = Components.classes["@mozilla.org/gfx/info;1"].getService(Components.interfaces.nsIGfxInfo).getInfo().AzureBackend;
|
||||
var backend = Components.classes["@mozilla.org/gfx/info;1"].getService(Components.interfaces.nsIGfxInfo).getInfo().AzureCanvasBackend;
|
||||
enabled = (backend != "none");
|
||||
} catch (e) { }
|
||||
|
||||
@ -56,7 +56,7 @@ function IsAzureSkia() {
|
||||
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var backend = Components.classes["@mozilla.org/gfx/info;1"].getService(Components.interfaces.nsIGfxInfo).getInfo().AzureBackend;
|
||||
var backend = Components.classes["@mozilla.org/gfx/info;1"].getService(Components.interfaces.nsIGfxInfo).getInfo().AzureCanvasBackend;
|
||||
enabled = (backend == "skia");
|
||||
} catch (e) { }
|
||||
|
||||
@ -68,7 +68,7 @@ function IsAzureCairo() {
|
||||
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var backend = Components.classes["@mozilla.org/gfx/info;1"].getService(Components.interfaces.nsIGfxInfo).getInfo().AzureBackend;
|
||||
var backend = Components.classes["@mozilla.org/gfx/info;1"].getService(Components.interfaces.nsIGfxInfo).getInfo().AzureCanvasBackend;
|
||||
enabled = (backend == "cairo");
|
||||
} catch (e) { }
|
||||
|
||||
|
@ -484,11 +484,10 @@ TemporaryRef<DrawTarget>
|
||||
LayerManagerD3D10::CreateDrawTarget(const IntSize &aSize,
|
||||
SurfaceFormat aFormat)
|
||||
{
|
||||
BackendType backend;
|
||||
if ((aFormat != FORMAT_B8G8R8A8 &&
|
||||
aFormat != FORMAT_B8G8R8X8) ||
|
||||
!gfxPlatform::GetPlatform()->SupportsAzureCanvas(backend) ||
|
||||
backend != BACKEND_DIRECT2D) {
|
||||
!gfxPlatform::GetPlatform()->SupportsAzureCanvas() ||
|
||||
gfxPlatform::GetPlatform()->GetPreferredCanvasBackend() != BACKEND_DIRECT2D) {
|
||||
return LayerManager::CreateDrawTarget(aSize, aFormat);
|
||||
}
|
||||
|
||||
|
@ -213,7 +213,7 @@ static const char *gPrefLangNames[] = {
|
||||
};
|
||||
|
||||
gfxPlatform::gfxPlatform()
|
||||
: mAzureCanvasBackendCollector(this, &gfxPlatform::GetAzureCanvasBackendInfo)
|
||||
: mAzureCanvasBackendCollector(this, &gfxPlatform::GetAzureBackendInfo)
|
||||
{
|
||||
mUseHarfBuzzScripts = UNINITIALIZED_VALUE;
|
||||
mAllowDownloadableFonts = UNINITIALIZED_VALUE;
|
||||
@ -675,8 +675,7 @@ gfxPlatform::GetThebesSurfaceForDrawTarget(DrawTarget *aTarget)
|
||||
RefPtr<DrawTarget>
|
||||
gfxPlatform::CreateDrawTargetForBackend(BackendType aBackend, const IntSize& aSize, SurfaceFormat aFormat)
|
||||
{
|
||||
BackendType backend;
|
||||
if (!SupportsAzureCanvas(backend)) {
|
||||
if (!SupportsAzureCanvas()) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -704,12 +703,11 @@ gfxPlatform::CreateDrawTargetForBackend(BackendType aBackend, const IntSize& aSi
|
||||
RefPtr<DrawTarget>
|
||||
gfxPlatform::CreateOffscreenDrawTarget(const IntSize& aSize, SurfaceFormat aFormat)
|
||||
{
|
||||
BackendType backend;
|
||||
if (!SupportsAzureCanvas(backend)) {
|
||||
if (!SupportsAzureCanvas()) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
RefPtr<DrawTarget> target = CreateDrawTargetForBackend(backend, aSize, aFormat);
|
||||
RefPtr<DrawTarget> target = CreateDrawTargetForBackend(mPreferredCanvasBackend, aSize, aFormat);
|
||||
if (target ||
|
||||
mFallbackCanvasBackend == BACKEND_NONE) {
|
||||
return target;
|
||||
@ -722,19 +720,17 @@ gfxPlatform::CreateOffscreenDrawTarget(const IntSize& aSize, SurfaceFormat aForm
|
||||
RefPtr<DrawTarget>
|
||||
gfxPlatform::CreateDrawTargetForData(unsigned char* aData, const IntSize& aSize, int32_t aStride, SurfaceFormat aFormat)
|
||||
{
|
||||
BackendType backend;
|
||||
if (!SupportsAzureCanvas(backend)) {
|
||||
if (!SupportsAzureCanvas()) {
|
||||
return NULL;
|
||||
}
|
||||
return Factory::CreateDrawTargetForData(backend, aData, aSize, aStride, aFormat);
|
||||
return Factory::CreateDrawTargetForData(mPreferredCanvasBackend, aData, aSize, aStride, aFormat);
|
||||
}
|
||||
|
||||
bool
|
||||
gfxPlatform::SupportsAzureCanvas(BackendType& aBackend)
|
||||
gfxPlatform::SupportsAzureCanvas()
|
||||
{
|
||||
NS_ASSERTION(mFallbackCanvasBackend == BACKEND_NONE || mPreferredCanvasBackend != BACKEND_NONE,
|
||||
"fallback backend with no preferred backend");
|
||||
aBackend = mPreferredCanvasBackend;
|
||||
return mPreferredCanvasBackend != BACKEND_NONE;
|
||||
}
|
||||
|
||||
|
@ -197,12 +197,16 @@ public:
|
||||
CreateDrawTargetForData(unsigned char* aData, const mozilla::gfx::IntSize& aSize,
|
||||
int32_t aStride, mozilla::gfx::SurfaceFormat aFormat);
|
||||
|
||||
// aBackend will be set to the preferred backend for Azure canvas
|
||||
bool SupportsAzureCanvas(mozilla::gfx::BackendType& aBackend);
|
||||
bool SupportsAzureCanvas();
|
||||
|
||||
// aObj will contain the preferred backend for Azure canvas
|
||||
void GetAzureCanvasBackendInfo(mozilla::widget::InfoObject &aObj) {
|
||||
aObj.DefineProperty("AzureBackend", GetBackendName(mPreferredCanvasBackend));
|
||||
void GetAzureBackendInfo(mozilla::widget::InfoObject &aObj) {
|
||||
aObj.DefineProperty("AzureCanvasBackend", GetBackendName(mPreferredCanvasBackend));
|
||||
aObj.DefineProperty("AzureFallbackCanvasBackend", GetBackendName(mFallbackCanvasBackend));
|
||||
aObj.DefineProperty("AzureContentBackend", GetBackendName(GetContentBackend()));
|
||||
}
|
||||
|
||||
mozilla::gfx::BackendType GetPreferredCanvasBackend() {
|
||||
return mPreferredCanvasBackend;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -478,7 +482,12 @@ protected:
|
||||
* which is a component of aBackendBitmask, a bitmask of backend types
|
||||
*/
|
||||
static mozilla::gfx::BackendType GetCanvasBackendPref(PRUint32 aBackendBitmask);
|
||||
static mozilla::gfx::BackendType BackendTypeForName(const nsCString& aName);
|
||||
static mozilla::gfx::BackendType BackendTypeForName(const nsCString& aName);
|
||||
|
||||
virtual mozilla::gfx::BackendType GetContentBackend()
|
||||
{
|
||||
return mozilla::gfx::BACKEND_NONE;
|
||||
}
|
||||
|
||||
PRInt8 mAllowDownloadableFonts;
|
||||
PRInt8 mDownloadableFontsSanitize;
|
||||
|
@ -242,6 +242,13 @@ public:
|
||||
static bool IsRunningInWindows8Metro();
|
||||
|
||||
protected:
|
||||
virtual mozilla::gfx::BackendType GetContentBackend()
|
||||
{
|
||||
return UseAzureContentDrawing() && mRenderMode == RENDER_DIRECT2D ?
|
||||
mozilla::gfx::BACKEND_DIRECT2D :
|
||||
mozilla::gfx::BACKEND_NONE;
|
||||
}
|
||||
|
||||
RenderMode mRenderMode;
|
||||
|
||||
PRInt8 mUseClearTypeForDownloadableFonts;
|
||||
|
@ -486,8 +486,8 @@ function BuildConditionSandbox(aURL) {
|
||||
} catch (e) {
|
||||
sandbox.d2d = false;
|
||||
}
|
||||
sandbox.azureQuartz = gfxInfo.getInfo().AzureBackend == "quartz";
|
||||
sandbox.azureSkia = gfxInfo.getInfo().AzureBackend == "skia";
|
||||
sandbox.azureQuartz = gfxInfo.getInfo().AzureCanvasBackend == "quartz";
|
||||
sandbox.azureSkia = gfxInfo.getInfo().AzureCanvasBackend == "skia";
|
||||
|
||||
sandbox.layersGPUAccelerated =
|
||||
gWindowUtils.layerManagerType != "Basic";
|
||||
|
Loading…
Reference in New Issue
Block a user