void ContentClientRemoteBuffer::EndPaint(nsTArray<ReadbackProcessor::Update>* aReadbackUpdates) { MOZ_ASSERT(!mTextureClientOnWhite || !aReadbackUpdates || aReadbackUpdates->Length() == 0); // XXX: We might still not have a texture client if PaintThebes // decided we didn't need one yet because the region to draw was empty. SetBufferProvider(nullptr); SetBufferProviderOnWhite(nullptr); for (unsigned i = 0; i< mOldTextures.Length(); ++i) { if (mOldTextures[i]->IsLocked()) { mOldTextures[i]->Unlock(); } } mOldTextures.Clear(); if (mTextureClient && mTextureClient->IsLocked()) { if (aReadbackUpdates->Length() > 0) { RefPtr<TextureReadbackSink> readbackSink = new RemoteBufferReadbackProcessor(aReadbackUpdates, mBufferRect, mBufferRotation); mTextureClient->SetReadbackSink(readbackSink); } mTextureClient->Unlock(); mTextureClient->SyncWithObject(mForwarder->GetSyncObject()); } if (mTextureClientOnWhite && mTextureClientOnWhite->IsLocked()) { mTextureClientOnWhite->Unlock(); mTextureClientOnWhite->SyncWithObject(mForwarder->GetSyncObject()); } ContentClientRemote::EndPaint(aReadbackUpdates); }
void ContentClientRemoteBuffer::BeginPaint() { // XXX: So we might not have a TextureClient yet.. because it will // only be created by CreateBuffer.. which will deliver a locked surface!. if (mTextureClient) { SetBufferProvider(mTextureClient); } if (mTextureClientOnWhite) { SetBufferProviderOnWhite(mTextureClientOnWhite); } }
void ContentClientRemoteBuffer::EndPaint() { // XXX: We might still not have a texture client if PaintThebes // decided we didn't need one yet because the region to draw was empty. SetBufferProvider(nullptr); SetBufferProviderOnWhite(nullptr); mOldTextures.Clear(); if (mDeprecatedTextureClient) { mDeprecatedTextureClient->Unlock(); } if (mDeprecatedTextureClientOnWhite) { mDeprecatedTextureClientOnWhite->Unlock(); } }
void ContentClientRemoteBuffer::EndPaint() { // XXX: We might still not have a texture client if PaintThebes // decided we didn't need one yet because the region to draw was empty. SetBufferProvider(nullptr); SetBufferProviderOnWhite(nullptr); for (unsigned i = 0; i< mOldTextures.Length(); ++i) { if (mOldTextures[i]->IsLocked()) { mOldTextures[i]->Unlock(); } } mOldTextures.Clear(); if (mTextureClient && mTextureClient->IsLocked()) { mTextureClient->Unlock(); } if (mTextureClientOnWhite && mTextureClientOnWhite->IsLocked()) { mTextureClientOnWhite->Unlock(); } ContentClientRemote::EndPaint(); }