Bug 1938033 [Wayland] Update DMABuf texture hosts to get DMABuf surface and plave sized r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D234911
This commit is contained in:
@@ -57,6 +57,19 @@ wr::WrExternalImage RenderDMABUFTextureHost::Lock(uint8_t aChannelIndex,
|
|||||||
static_cast<float>(size.width), static_cast<float>(size.height));
|
static_cast<float>(size.width), static_cast<float>(size.height));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gfx::IntSize RenderDMABUFTextureHost::GetSize(uint8_t aChannelIndex) const {
|
||||||
|
MOZ_ASSERT(mSurface);
|
||||||
|
MOZ_ASSERT((mSurface->GetTextureCount() == 0)
|
||||||
|
? (aChannelIndex == mSurface->GetTextureCount())
|
||||||
|
: (aChannelIndex < mSurface->GetTextureCount()));
|
||||||
|
|
||||||
|
if (!mSurface) {
|
||||||
|
return gfx::IntSize();
|
||||||
|
}
|
||||||
|
return gfx::IntSize(mSurface->GetWidth(aChannelIndex),
|
||||||
|
mSurface->GetHeight(aChannelIndex));
|
||||||
|
}
|
||||||
|
|
||||||
void RenderDMABUFTextureHost::Unlock() {}
|
void RenderDMABUFTextureHost::Unlock() {}
|
||||||
|
|
||||||
void RenderDMABUFTextureHost::DeleteTextureHandle() {
|
void RenderDMABUFTextureHost::DeleteTextureHandle() {
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ class RenderDMABUFTextureHost final : public RenderTextureHostSWGL {
|
|||||||
public:
|
public:
|
||||||
explicit RenderDMABUFTextureHost(DMABufSurface* aSurface);
|
explicit RenderDMABUFTextureHost(DMABufSurface* aSurface);
|
||||||
|
|
||||||
|
RenderDMABUFTextureHost* AsRenderDMABUFTextureHost() override { return this; }
|
||||||
|
gfx::IntSize GetSize(uint8_t aChannelIndex) const;
|
||||||
wr::WrExternalImage Lock(uint8_t aChannelIndex, gl::GLContext* aGL) override;
|
wr::WrExternalImage Lock(uint8_t aChannelIndex, gl::GLContext* aGL) override;
|
||||||
void Unlock() override;
|
void Unlock() override;
|
||||||
void ClearCachedResources() override;
|
void ClearCachedResources() override;
|
||||||
@@ -32,6 +34,7 @@ class RenderDMABUFTextureHost final : public RenderTextureHostSWGL {
|
|||||||
return mSurface->GetWidth() * mSurface->GetHeight() *
|
return mSurface->GetWidth() * mSurface->GetHeight() *
|
||||||
BytesPerPixel(mSurface->GetFormat());
|
BytesPerPixel(mSurface->GetFormat());
|
||||||
}
|
}
|
||||||
|
RefPtr<DMABufSurface> GetSurface() { return mSurface; }
|
||||||
|
|
||||||
// RenderTextureHostSWGL
|
// RenderTextureHostSWGL
|
||||||
gfx::SurfaceFormat GetFormat() const override;
|
gfx::SurfaceFormat GetFormat() const override;
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ class RenderMacIOSurfaceTextureHost;
|
|||||||
class RenderBufferTextureHost;
|
class RenderBufferTextureHost;
|
||||||
class RenderTextureHostSWGL;
|
class RenderTextureHostSWGL;
|
||||||
class RenderTextureHostWrapper;
|
class RenderTextureHostWrapper;
|
||||||
|
class RenderDMABUFTextureHost;
|
||||||
|
|
||||||
void ActivateBindAndTexParameteri(gl::GLContext* aGL, GLenum aActiveTexture,
|
void ActivateBindAndTexParameteri(gl::GLContext* aGL, GLenum aActiveTexture,
|
||||||
GLenum aBindTarget, GLuint aBindTexture);
|
GLenum aBindTarget, GLuint aBindTexture);
|
||||||
@@ -144,6 +145,10 @@ class RenderTextureHost {
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual RenderDMABUFTextureHost* AsRenderDMABUFTextureHost() {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
virtual void Destroy();
|
virtual void Destroy();
|
||||||
|
|
||||||
virtual void SetIsSoftwareDecodedVideo() {
|
virtual void SetIsSoftwareDecodedVideo() {
|
||||||
|
|||||||
@@ -127,6 +127,13 @@ RenderTextureHostSWGL* RenderTextureHostWrapper::AsRenderTextureHostSWGL() {
|
|||||||
return mTextureHost->AsRenderTextureHostSWGL();
|
return mTextureHost->AsRenderTextureHostSWGL();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RenderDMABUFTextureHost* RenderTextureHostWrapper::AsRenderDMABUFTextureHost() {
|
||||||
|
if (!mTextureHost) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
return mTextureHost->AsRenderDMABUFTextureHost();
|
||||||
|
}
|
||||||
|
|
||||||
RenderAndroidHardwareBufferTextureHost*
|
RenderAndroidHardwareBufferTextureHost*
|
||||||
RenderTextureHostWrapper::AsRenderAndroidHardwareBufferTextureHost() {
|
RenderTextureHostWrapper::AsRenderAndroidHardwareBufferTextureHost() {
|
||||||
if (!mTextureHost) {
|
if (!mTextureHost) {
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ class RenderTextureHostWrapper final : public RenderTextureHostSWGL {
|
|||||||
RenderAndroidSurfaceTextureHost* AsRenderAndroidSurfaceTextureHost() override;
|
RenderAndroidSurfaceTextureHost* AsRenderAndroidSurfaceTextureHost() override;
|
||||||
RenderEGLImageTextureHost* AsRenderEGLImageTextureHost() override;
|
RenderEGLImageTextureHost* AsRenderEGLImageTextureHost() override;
|
||||||
RenderTextureHostSWGL* AsRenderTextureHostSWGL() override;
|
RenderTextureHostSWGL* AsRenderTextureHostSWGL() override;
|
||||||
|
RenderDMABUFTextureHost* AsRenderDMABUFTextureHost() override;
|
||||||
void SetIsSoftwareDecodedVideo() override;
|
void SetIsSoftwareDecodedVideo() override;
|
||||||
bool IsSoftwareDecodedVideo() override;
|
bool IsSoftwareDecodedVideo() override;
|
||||||
RefPtr<RenderTextureHostUsageInfo> GetOrMergeUsageInfo(
|
RefPtr<RenderTextureHostUsageInfo> GetOrMergeUsageInfo(
|
||||||
|
|||||||
Reference in New Issue
Block a user