3.5.13. Flowchart Operasi EndRendering
Operasi EndRendering
merupakan pasangan
dari operasi
BeginRendering pada kelas TumozD3D yang bertugas untuk mengakhiri proses rendering dan menampilkan scene ke front buffer.
Prosesnya sangat sederhana dimulai dari mengirim semua data buffer verteks untuk ditampilkan menggunakan fungsi ForcedFlushAll dari obyek
pointer TumozVertexCacheManager. Lalu proses rendering diakhiri dengan memanggil fungsi device yaitu EndScene.
Dan terakhir hasil rendering ditampilkan ke layar front buffer menggunakan fungsi Present baik dari device untuk jendela tampilan tunggal
atau dari obyek swapchain untuk jendela tampilan yang aktif dari beberapa windows. Detil dari proses flowchart operasi ini digambarkan pada gambar 3.42.
Mulai
Cek pemanggilan
ForcedFlushAll pointer Vertex
manager global gagal?
error: ForceFlush
All gagal Ya
Panggil EndScene dari pointer D3D
Device Tidak
Cek attrib windowed
dari D3D Present parameter true
Jml windows 0?
Cek pemanggilan
Present dari pointer SwapChain
global pada indeks windows aktif
gagal? Ya
error: Present gagal
Ya Cek
pemanggilan Present dari
pointer D3D Device global
gagal? Tidak
Ya
Set status Scene sedang berjalan menjadi false
pada variabel global Tidak
Selesai Tidak
Gambar 3.42. Flowchart Operasi EndRendering
STIKOM SURABAYA
3.5.14. Flowchart Operasi UseShaders
Tugas dari operasi ini adalah untuk menghidupkan atau mematikan fitur shader pada device saat proses rendering. Operasi ini adalah operasi dari kelas
TumozD3D yang
juga merupakan
operasi turunan
dari kelas
TumozRenderDevice. Prosesnya dimulai dengan mengosongkan semua isi verteks buffer dan
memvalidasi ulang status kondisi dari obyek TumozVertexCacheManager menggunakan fungsi ForcedFlushAll dan InvalidateStates. Dan apabila fitur
shader dimatikan maka semua pengaturan shader di set ke NULL atau sebaliknya jika fitur shader dihidupkan maka pengaturan FVF akan di set ke 0. Detil dari
proses flowchart operasi ini digambarkan pada gambar 3.43.
Mulai
Cek status dr variabel global
apakah Shader tidak dapat
digunakan?
Selesai Ya
Cek status variabel global
apakah Shader dapat digunakan
sama dengan parameter?
Tidak
Ya Panggil ForcedFlushAll
dari pointer Vertex Manager
Tidak
Panggil InvalidateStates dari
pointer Vertex Manager Set variabel global status
penggunaan Shader berdasarkan variabel
Cek apakah variabel global
status penggunaan shader adalah
false?
Panggil SetVertexShader dari
pointer D3D Device dg parameter NULL
Ya
Panggil SetPixelShader dari pointer D3D Device
dg parameter NULL Panggil
SetVertexDeclaration dari pointer D3D Device dg
parameter NULL Panggil SetFVF dari
pointer D3D Device dg parameter 0
Tidak
Gambar 3.43. Flowchart Operasi UseShaders
STIKOM SURABAYA
3.5.15. Flowchart Operasi DrawText