diff options
author | wolfbeast <mcwerewolf@gmail.com> | 2018-06-07 06:21:57 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-06-07 06:21:57 +0200 |
commit | bd0e550e63c646dc5c515caf52aedad8bc29f9bd (patch) | |
tree | 2a5131e409e23f73ef5a8f79fd3d53484c3f7a7f /gfx/layers/composite | |
parent | e810c8a5c0b116d7214c786186f0478a7f70ff64 (diff) | |
download | UXP-bd0e550e63c646dc5c515caf52aedad8bc29f9bd.tar UXP-bd0e550e63c646dc5c515caf52aedad8bc29f9bd.tar.gz UXP-bd0e550e63c646dc5c515caf52aedad8bc29f9bd.tar.lz UXP-bd0e550e63c646dc5c515caf52aedad8bc29f9bd.tar.xz UXP-bd0e550e63c646dc5c515caf52aedad8bc29f9bd.zip |
Account for offsets when creating buffers for image textures.
Diffstat (limited to 'gfx/layers/composite')
-rw-r--r-- | gfx/layers/composite/TextureHost.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gfx/layers/composite/TextureHost.cpp b/gfx/layers/composite/TextureHost.cpp index c93037384..e4a2ffd86 100644 --- a/gfx/layers/composite/TextureHost.cpp +++ b/gfx/layers/composite/TextureHost.cpp @@ -259,7 +259,9 @@ CreateBackendIndependentTextureHost(const SurfaceDescriptor& aDesc, case BufferDescriptor::TYCbCrDescriptor: { const YCbCrDescriptor& ycbcr = desc.get_YCbCrDescriptor(); reqSize = - ImageDataSerializer::ComputeYCbCrBufferSize(ycbcr.ySize(), ycbcr.cbCrSize()); + ImageDataSerializer::ComputeYCbCrBufferSize(ycbcr.ySize(), ycbcr.cbCrSize(), + ycbcr.yOffset(), ycbcr.cbOffset(), + ycbcr.crOffset()); break; } case BufferDescriptor::TRGBDescriptor: { @@ -272,7 +274,7 @@ CreateBackendIndependentTextureHost(const SurfaceDescriptor& aDesc, MOZ_CRASH("GFX: Bad descriptor"); } - if (bufSize < reqSize) { + if (reqSize == 0 || bufSize < reqSize) { NS_ERROR("A client process gave a shmem too small to fit for its descriptor!"); return nullptr; } |