Bagikan melalui


D1120: Upaya Untuk Menggambar Bitmap Tidak Valid

Operasi gagal karena bitmap memiliki opsi D2D1_BITMAP_OPTIONS_CANNOT_DRAW.

 

Kemungkinan Penyebabnya

Pesan ini terjadi ketika aplikasi mencoba menggambar bitmap yang ditandai dengan D2D1_BITMAP_OPTIONS_CANNOT_DRAW. Ini termasuk panggilan langsung ke DrawBitmap, serta gambar primitif menggunakan kuas bitmap.

Kemungkinan Perbaikan

Bendera CANNOT_DRAW digunakan untuk menganotasi sumber daya dengan benar yang hanya dapat digunakan sebagai target, seperti backbuffer rantai pertukaran. Namun, juga diizinkan untuk menghilangkan bendera CANNOT_DRAW untuk beberapa bitmap target jika juga dapat digunakan sebagai sumber. Jika demikian, cukup hilangkan bendera CANNOT_DRAW. Jika bitmap harus diannotasi dengan CANNOT_DRAW karena penggunaan eksklusifnya sebagai target atau untuk memungkinkan penguncian CPU, pertimbangkan untuk menggunakan tekstur penahapan dengan ukuran yang sama dengan sumber yang diinginkan tetapi tanpa penandaan CANNOT_DRAW. Salin ke tekstur penahapan menggunakan ID3D11DeviceContext::CopyResource, dan gunakan tekstur penahapan sebagai sumber untuk operasi menggambar. Penggunaan tekstur penahapan memunculkan implikasi performa; mereka mungkin dapat diterima jika bitmap sumber tidak sering berubah.