Ejemplo n.º 1
0
bool ImageAttachment::DoPrepareResources( BufferIndex updateBufferIndex, ResourceManager& resourceManager )
{
  DALI_LOG_TRACE_METHOD_FMT(gImageAttachmentLogFilter, "this:%p", this);
  bool ready = false;

  if( 0 != mTextureId )
  {
    // The metadata is used by IsFullyOpaque(), below.
    mBitmapMetadata = resourceManager.GetBitmapMetadata( mTextureId );

    CompleteStatusManager& completeStatusManager = mSceneController->GetCompleteStatusManager();
    CompleteStatusManager::CompleteState status = completeStatusManager.GetStatus( mTextureId );

    switch( status )
    {
      case CompleteStatusManager::NOT_READY:
      {
        ready = false;

        if( mBitmapMetadata.GetIsFramebuffer() )
        {
          ready = true;
        }
        mFinishedResourceAcquisition = false;
        FollowTracker( mTextureId );
      }
      break;

      case CompleteStatusManager::COMPLETE:
      {
        ready = true;
        mFinishedResourceAcquisition = true;
      }
      break;

      case CompleteStatusManager::NEVER:
      {
        ready = false;
        mFinishedResourceAcquisition = true;
      }
      break;
    }
  }
  else
  {
    // Loading is essentially finished if we don't have a resource ID
    mFinishedResourceAcquisition = true;
  }

  ATTACHMENT_LOG_FMT(Debug::General, " ObjName:%s finished:%s ready:%s \n",
                     DALI_LOG_GET_OBJECT_C_STR(mParent),
                     mFinishedResourceAcquisition?"T":"F", ready?"T":"F");

  return ready;
}