mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-09 04:25:38 +00:00
Bug 1372060 - Relax assertions when missing SurfaceTexture in compositor r=jgilbert
MozReview-Commit-ID: heJALqGBLV
This commit is contained in:
parent
ec31e574ed
commit
6b5af17980
@ -58,8 +58,6 @@ CreateTextureHostOGL(const SurfaceDescriptor& aDesc,
|
||||
const SurfaceTextureDescriptor& desc = aDesc.get_SurfaceTextureDescriptor();
|
||||
java::GeckoSurfaceTexture::LocalRef surfaceTexture = java::GeckoSurfaceTexture::Lookup(desc.handle());
|
||||
|
||||
MOZ_RELEASE_ASSERT(surfaceTexture);
|
||||
|
||||
result = new SurfaceTextureHost(aFlags,
|
||||
surfaceTexture,
|
||||
desc.size(),
|
||||
@ -419,6 +417,10 @@ SurfaceTextureHost::SurfaceTextureHost(TextureFlags aFlags,
|
||||
, mSize(aSize)
|
||||
, mContinuousUpdate(aContinuousUpdate)
|
||||
{
|
||||
if (!mSurfTex) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Continuous update makes no sense with single buffer mode
|
||||
MOZ_ASSERT(!mSurfTex->IsSingleBuffer() || !mContinuousUpdate);
|
||||
|
||||
@ -441,7 +443,7 @@ SurfaceTextureHost::PrepareTextureSource(CompositableTextureSourceRef& aTexture)
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mContinuousUpdate) {
|
||||
if (!mContinuousUpdate && mSurfTex) {
|
||||
// UpdateTexImage() advances the internal buffer queue, so we only want to call this
|
||||
// once per transactionwhen we are not in continuous mode (as we are here). Otherwise,
|
||||
// the SurfaceTexture content will be de-synced from the rest of the page in subsequent
|
||||
@ -459,7 +461,10 @@ SurfaceTextureHost::gl() const
|
||||
bool
|
||||
SurfaceTextureHost::Lock()
|
||||
{
|
||||
MOZ_ASSERT(mSurfTex);
|
||||
if (!mSurfTex) {
|
||||
return false;
|
||||
}
|
||||
|
||||
GLContext* gl = this->gl();
|
||||
if (!gl || !gl->MakeCurrent()) {
|
||||
return false;
|
||||
@ -503,7 +508,7 @@ SurfaceTextureHost::SetTextureSourceProvider(TextureSourceProvider* aProvider)
|
||||
void
|
||||
SurfaceTextureHost::NotifyNotUsed()
|
||||
{
|
||||
if (mSurfTex->IsSingleBuffer()) {
|
||||
if (mSurfTex && mSurfTex->IsSingleBuffer()) {
|
||||
mSurfTex->ReleaseTexImage();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user