Usando um Bitmap armazenado em cache para melhorar o desempenho

Os objetos Image e Bitmap armazenam imagens em um formato independente do dispositivo. Um objeto CachedBitmap armazena uma imagem no formato do dispositivo de exibição atual. Renderizar uma imagem armazenada em um objeto CachedBitmap é rápido porque nenhum tempo de processamento é gasto convertendo a imagem no formato exigido pelo dispositivo de exibição.

O exemplo a seguir cria um objeto Bitmap e um objeto CachedBitmap do arquivo Texture.jpg. O Bitmap e o CachedBitmap são desenhados 30.000 vezes cada um. Se você executar o código, verá que as imagens CachedBitmap são desenhadas substancialmente mais rapidamente do que as imagens de Bitmap .

Bitmap        bitmap(L"Texture.jpg");
UINT          width = bitmap.GetWidth();
UINT          height = bitmap.GetHeight();
CachedBitmap  cBitmap(&bitmap, &graphics);
int           j, k;
for(j = 0; j < 300; j += 10)
   for(k = 0; k < 1000; ++k)
     graphics.DrawImage(&bitmap, j, j / 2, width, height);
for(j = 0; j < 300; j += 10)
   for(k = 0; k < 1000; ++k)
      graphics.DrawCachedBitmap(&cBitmap, j, 150 + j / 2 );

Observação

Um objeto CachedBitmap corresponde ao formato do dispositivo de exibição no momento em que o objeto CachedBitmap foi construído. Se o usuário do programa alterar as configurações de exibição, seu código deverá construir um novo objeto CachedBitmap . O método DrawImage falhará se você passar um objeto CachedBitmap que foi criado antes de uma alteração no formato de exibição.