Tentang Direct2D
Topik ini memperkenalkan Direct2D, API yang memberi pengembang Win32 kemampuan untuk melakukan tugas penyajian grafis 2-D dengan performa dan kualitas visual yang unggul.
Apa itu Direct2D?
Direct2D adalah API grafis 2-D mode langsung yang dipercepat perangkat keras yang memberikan performa tinggi dan penyajian berkualitas tinggi untuk geometri 2-D, bitmap, dan teks. API Direct2D dirancang untuk beroperasi dengan kode yang ada yang menggunakan GDI, GDI+, atau Direct3D.
Direct2D dirancang terutama untuk digunakan oleh kelas pengembang berikut:
- Pengembang aplikasi asli berskala perusahaan yang besar.
- Pengembang yang membuat toolkit kontrol dan pustaka untuk dikonsumsi oleh pengembang hilir.
- Pengembang yang memerlukan penyajian sisi server dari grafik 2-D.
- Pengembang yang menggunakan grafik Direct3D dan membutuhkan penyajian teks dan 2-D berkinerja tinggi sederhana untuk menu, elemen antarmuka pengguna (UI), dan Tampilan Heads-up (HUD).
Mengapa Direct2D?
Motivasi utama untuk membuat API grafis 2-D baru di Microsoft Windows meliputi yang berikut ini:
- Untuk mengimbangi peningkatan tingkat kekayaan visual yang terbiasa dengan pengguna Windows.
- Untuk memungkinkan pengembang menulis kode penyajian 2-D yang diskalakan langsung dengan perangkat keras pemrosesan grafis PC yang dijalankannya.
- Untuk memungkinkan pengembang menulis kode untuk merender grafik 2-D yang dapat berjalan dalam konteks layanan.
Dalam beberapa tahun terakhir, pengguna akhir telah mulai mengharapkan keakuratan visual yang lebih besar dalam pengalaman digital. Tren ini tercermin dalam elektronik konsumen. Perangkat GPS, perangkat pemutaran media, ponsel, dan kamera digital memberikan pengalaman yang lebih kaya secara konsisten dari tahun ke tahun. Tren ini juga dapat dilihat dalam keragaman konten grafis dalam film, televisi, video game, dan di Web. Untuk mengimbangi perubahan ini, pengembang secara konsisten diminta untuk membawa aplikasi Windows yang ada ke tingkat kekayaan visual berikutnya.
Prosesor grafis di PC Windows modern juga terus berkembang, didorong oleh kemajuan dalam grafik video game dan bagian dari pengalaman Windows seperti Windows Media Center dan Aero. Beberapa aplikasi Windows dapat memanfaatkan GPU modern dengan menggunakan Microsoft Direct3D dan Windows Presentation Foundation (WPF). Sementara Direct3D melayani aplikasi grafis 3-D kelas atas dan WPF memenuhi kebutuhan pengembang .NET, ada celah bagi pengembang yang memiliki basis kode besar yang ada untuk merender kode berdasarkan GDI dan GDI+ atau yang ingin menggabungkan grafik 2-D berkualitas tinggi dalam aplikasi berbasis Direct3D mereka.
Akhirnya, kebutuhan akan API grafis yang dapat digunakan dalam layanan telah menjadi persyaratan yang muncul untuk pengembang yang bekerja dalam skenario pengembangan perusahaan dan Web. API penyajian yang ada berfokus pada penyajian sisi klien dalam satu sesi pengguna. Dengan demikian, mereka dapat jatuh pendek di area ketahanan dan skalabilitas ketika digunakan dalam konteks layanan. API baru diperlukan untuk mengatasi hal ini.
Performa Tinggi dengan Ketersediaan Maksimum
Direct2D adalah pustaka mode pengguna yang dibuat menggunakan API Direct3D 10.1. Ini berarti bahwa aplikasi Direct2D mendapat manfaat dari penyajian yang dipercepat perangkat keras pada GPU mainstream modern. Akselerasi perangkat keras juga dicapai pada perangkat keras Direct3D 9 sebelumnya dengan menggunakan penyajian Direct3D 10-level-9. Kombinasi ini memberikan performa yang sangat baik pada perangkat keras grafis pada PC Windows yang ada.
Catatan
Dimulai dengan Windows 8, Direct2D dibangun menggunakan API Direct3D 11.1.
Diagram berikut menunjukkan arsitektur berlapis Direct2D.
Untuk skenario di mana penggunaan akselerasi perangkat keras tidak layak, Direct2D menyertakan rasterizer perangkat lunak berkinerja tinggi. Saat merender dalam perangkat lunak, aplikasi yang menggunakan Direct2D mengalami performa penyajian yang jauh lebih baik daripada dengan GDI+ dan dengan kualitas visual yang sama. Rasterizer perangkat lunak juga dirancang untuk digunakan dalam konteks layanan.
Konten yang dirender dengan menggunakan Direct2D juga dapat ditampilkan dari jarak jauh dengan menggunakan infrastruktur Protokol Desktop Jarak Jauh (RDP) di sistem operasi Windows 7. Pengembang dapat memilih apakah penyajian ditangani oleh GPU pada komputer tampilan atau dirender secara lokal dan ditransmisikan sebagai bitmap. Pilihan ini dapat dibuat berdasarkan tingkat pengisian yang diperlukan dan kuantitas primitif grafis yang dirender. Ketika komputer tampilan menjalankan sistem operasi yang lebih lama dari Windows 7, penyajian tampilan jarak jauh dilakukan dengan mengirimkan bitmap melalui jaringan.
Dengan menyediakan satu API yang menggabungkan performa Direct3D dan ketersediaan tinggi dengan menyediakan fallback perangkat lunak, desktop jarak jauh, dan penyajian layanan, Direct2D memungkinkan pengembang memiliki satu implementasi untuk penyajian performa tinggi dalam berbagai skenario.
Kualitas Visual
Aplikasi yang menggunakan Direct2D untuk grafik dapat memberikan kualitas visual yang lebih tinggi daripada apa yang dapat dicapai menggunakan GDI. Direct2D menggunakan antialias per primitif untuk memberikan kurva dan garis yang tampak lebih halus dalam konten yang dirender. Ada juga dukungan penuh untuk transparansi dan penpaduan alfa saat merender primitif 2-D. Gambar berikut membandingkan konten alias yang dirender dengan menggunakan GDI (di sebelah kiri) dengan konten antialias yang dirender oleh Direct2D (di sebelah kanan).
Pengembang dapat menentukan rendering alias grafik vektor. Ini digunakan dalam skenario di mana snapping ke batas piksel keras diperlukan, seperti elemen UI seperti penunjuk atau penggaris, jika gaya GDI output harus dicocokkan, atau jika antialias akan dilakukan hilir dalam proses penyajian melalui Multisample Antialiasing atau beberapa mekanisme lainnya.
Interoperabilitas
Mengintegrasikan penyajian berbasis Direct2D dipermudah bagi pengembang melalui interoperabilitas tingkat permukaan dengan GDI dan Direct3D. Aplikasi yang merender konten terutama dengan GDI, GDI+, atau Direct3D, dapat dimulai dengan menggunakan Direct2D untuk merender area spesifik aplikasi mereka, dan seiring waktu pindah ke model tempat penyajian dilakukan terutama melalui Direct2D, menggunakan GDI terutama untuk plug-in atau ekstensibilitas warisan.
Direct2D juga memudahkan penggunaan DirectWrite untuk teks berkualitas tinggi dan fitur pencitraan tingkat lanjut dari Microsoft Windows Imaging Component (WIC).
Untuk informasi selengkapnya tentang interoperabilitas Direct2D, lihat bagian Interoperabilitas SDK Direct2D.
Ringkasan
Microsoft Direct2D memungkinkan pengembang untuk membangun fitur grafis 2-D dalam aplikasi mereka yang memberikan peningkatan kualitas visual atas GDI, dan karakteristik performa yang diskalakan dengan GPU modern. Model interoperabilitas Direct2D memungkinkan pengembang untuk secara selektif memigrasikan sebagian aplikasi mereka sekaligus rendering berbasis GDI, GDI+, atau Direct3D.
Topik terkait