Flowchart Operasi EndRendering Flowchart Operasi UseShaders

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