Пример #1
0
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);
}
Пример #2
0
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();
  }
}
Пример #4
0
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();
}