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));
|
||||
}
|
||||
|
||||
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::DeleteTextureHandle() {
|
||||
|
||||
@@ -24,6 +24,8 @@ class RenderDMABUFTextureHost final : public RenderTextureHostSWGL {
|
||||
public:
|
||||
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;
|
||||
void Unlock() override;
|
||||
void ClearCachedResources() override;
|
||||
@@ -32,6 +34,7 @@ class RenderDMABUFTextureHost final : public RenderTextureHostSWGL {
|
||||
return mSurface->GetWidth() * mSurface->GetHeight() *
|
||||
BytesPerPixel(mSurface->GetFormat());
|
||||
}
|
||||
RefPtr<DMABufSurface> GetSurface() { return mSurface; }
|
||||
|
||||
// RenderTextureHostSWGL
|
||||
gfx::SurfaceFormat GetFormat() const override;
|
||||
|
||||
@@ -40,6 +40,7 @@ class RenderMacIOSurfaceTextureHost;
|
||||
class RenderBufferTextureHost;
|
||||
class RenderTextureHostSWGL;
|
||||
class RenderTextureHostWrapper;
|
||||
class RenderDMABUFTextureHost;
|
||||
|
||||
void ActivateBindAndTexParameteri(gl::GLContext* aGL, GLenum aActiveTexture,
|
||||
GLenum aBindTarget, GLuint aBindTexture);
|
||||
@@ -144,6 +145,10 @@ class RenderTextureHost {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual RenderDMABUFTextureHost* AsRenderDMABUFTextureHost() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual void Destroy();
|
||||
|
||||
virtual void SetIsSoftwareDecodedVideo() {
|
||||
|
||||
@@ -127,6 +127,13 @@ RenderTextureHostSWGL* RenderTextureHostWrapper::AsRenderTextureHostSWGL() {
|
||||
return mTextureHost->AsRenderTextureHostSWGL();
|
||||
}
|
||||
|
||||
RenderDMABUFTextureHost* RenderTextureHostWrapper::AsRenderDMABUFTextureHost() {
|
||||
if (!mTextureHost) {
|
||||
return nullptr;
|
||||
}
|
||||
return mTextureHost->AsRenderDMABUFTextureHost();
|
||||
}
|
||||
|
||||
RenderAndroidHardwareBufferTextureHost*
|
||||
RenderTextureHostWrapper::AsRenderAndroidHardwareBufferTextureHost() {
|
||||
if (!mTextureHost) {
|
||||
|
||||
@@ -47,6 +47,7 @@ class RenderTextureHostWrapper final : public RenderTextureHostSWGL {
|
||||
RenderAndroidSurfaceTextureHost* AsRenderAndroidSurfaceTextureHost() override;
|
||||
RenderEGLImageTextureHost* AsRenderEGLImageTextureHost() override;
|
||||
RenderTextureHostSWGL* AsRenderTextureHostSWGL() override;
|
||||
RenderDMABUFTextureHost* AsRenderDMABUFTextureHost() override;
|
||||
void SetIsSoftwareDecodedVideo() override;
|
||||
bool IsSoftwareDecodedVideo() override;
|
||||
RefPtr<RenderTextureHostUsageInfo> GetOrMergeUsageInfo(
|
||||
|
||||
Reference in New Issue
Block a user