From 3d037c531f2f2fa40976c9bc1a9048d9a1533b05 Mon Sep 17 00:00:00 2001 From: vincentliu Date: Fri, 12 May 2017 14:09:53 +0800 Subject: [PATCH] Bug 1363675 - Get D3D11Device from TextureSourceProvider if it exists. r=dvander --- gfx/layers/d3d11/TextureD3D11.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gfx/layers/d3d11/TextureD3D11.cpp b/gfx/layers/d3d11/TextureD3D11.cpp index 1c4de1d829fd..213e0dd5d366 100644 --- a/gfx/layers/d3d11/TextureD3D11.cpp +++ b/gfx/layers/d3d11/TextureD3D11.cpp @@ -748,7 +748,12 @@ DXGITextureHostD3D11::GetDevice() if (mFlags & TextureFlags::INVALID_COMPOSITOR) { return nullptr; } - return mDevice; + + if (mProvider) { + return mProvider->GetD3D11Device(); + } else { + return mDevice; + } } void @@ -821,6 +826,7 @@ DXGITextureHostD3D11::LockInternal() } if (mProvider) { + MOZ_RELEASE_ASSERT(mProvider->IsValid()); mTextureSource = new DataTextureSourceD3D11(mFormat, mProvider, mTexture); } else { mTextureSource = new DataTextureSourceD3D11(mDevice, mFormat, mTexture);