3.5.3. Flowchart Operasi Go
Operasi Go merupakan salah satu fungsi bantuan helper function dari kelas TumozD3D yang membantu proses inisialisasi pada operasi Init. Operasi
ini berfungsi untuk memulai jalannya proses API Direct3D berdasarkan pilihan setting device, format dan sebagainya dari combo box pada operasi Init.
Proses awal dari operasi ini dimulai dari membuat obyek Direct3D9 D3D dan jika berhasil maka dilanjutkan ke proses perulangan untuk memeriksa
pilihan setting device user yang sesuai dengan combo box untuk disimpan datanya. Setelah itu dilanjutkan proses pembuatan struktur present parameter
berdasarkan data yang di simpan sebelumnya beserta pengaturan stencil buffer dan tampilan windows apakah akan memakai layar penuh fullscreen atau tidak.
Pada tahapan ini proses dilanjutkan dengan pembuatan obyek Direct3DDevice9 D3DDevice berdasarkan parameter dari data pilihan device
yang di simpan dan data present parameter yang telah di buat. Apabila tampilan windows yang diinginkan lebih dari satu dan tampilannya tidak memakai layar
penuh fullscreen maka perlu dibuatkan swapchain tambahan yang berfungsi untuk menampilkan beberapa jendela tampilan secara simultan.
Tahapan akhir dari operasi ini adalah memeriksa apakah obyek D3DDevice pointer device telah berhasil di buat dan tidak mengalami error. Jika
berhasil maka akan menampilkan hasil pada file log bahwa device telah siap di gunakan dan memanggil fungsi LogDeviceCaps untuk informasi tambahan. Jika
semuanya telah selesai maka data-data status sistem akan di simpan ke variabel global dan kemudian dilanjutkan lagi ke operasi OneTimeInit. Untuk lebih
jelasnya flowchart dari operasi tersebut dapat dilihat pada gambar 3.31.
STIKOM SURABAYA
Mulai
Cek pointer D3D ada?
Release dan set NULL
Ya
Buat Direct3D9
Buat D3D gagal? Tidak
True
i = 0 False
i Jumlah combo device
Cek Apakah Combo Sesuai dgn adapter?
Ya
Simpan nilai combo dan break
Ya Tidak
Set Present Parameter
Tampil log error: Direct3DCreate9
i++ Apakah jenis Stencil
buffer dipilih?
m_bStencil = true Ya
m_bStencil = false Tidak
Tampilan fullscreen?
Atur windows utama D3D beserta ukuran
Back Buffer dan hilangkan cursor
Ya Set windows index 0 ke
windows utama D3D beserta ukuran Back buffer
sesuai dengan windows default
Tidak
Buat Device Direct3D
Cek jumlah windows 0 tidak
fullscreen?
Buat SwapChain tambahan
Ya
Release pointer enumerasi dan
set NULL Tidak
Cek Device Direct3D gagal?
Tampil log error:
IDirect3D::Creat eDevice
Ya Tampil log
inisialisasi siap dan
online
Tidak Buat
LogDeviceCaps
Return TUMOZ_CREATEDEVI
CE Set variabel
global bahwa device sudah
berjalan Return
OneTimeInit;
Selesai
Gambar 3.31. Flowchart Operasi Go
STIKOM SURABAYA
3.5.4. Flowchart Operasi OneTimeInit