SetVertexShaderConstantF dan diteruskan lagi dengan memanggil fungsi
SetRenderState dengan argumen dari nilai tersebut. Detil proses flowchart
Operasi dari kelas TumozD3D ini digambarkan pada gambar 3.45.
Mulai
Panggil ForcedFlushAll dari
pointer Vertex Manager global
Hitung nilai warna dari parameter
dengan range 255 Cek variabel
global apakah dapat melakukan
Shader?
Panggil SetVertexShaderConstantF
dari pointer D3D Device untuk mengatur warna default
diffuse pd Shader Ya
Panggil SetRenderState dari pointer D3D Device untuk
Ambient Light dengan warna hasil perhitungan sebagai parameter
Tidak
Selesai
Gambar 3.45. Flowchart Operasi SetAmbientLight
3.5.17. Flowchart Operasi SetWorldTransform
Operasi SetWorldTransform merupakan operasi dari kelas TumozD3D yang mengatur transformasi world yaitu transformasi pada semua obyek dalam
scene yang akan di render sampai ada perubahan berikutnya. Prosesnya sangat sederhana yaitu dengan memanggil fungsi dari obyek
device SetTransform berdasarkan data matriks world yang diberikan oleh parameter. Untuk lebih jelasnya flowchart dari operasi ini dapat dilihat pada
gambar 3.46.
STIKOM SURABAYA
Mulai
Panggil ForcedFlushAll dari
pointer Vertex Manager global
Cek apakah matriks World
dari param kosong?
Buat matriks identitas lalu copy
ke dalam matriks World global
Ya Copy matriks dari
parameter simpan ke dalam matriks
World global Tidak
Panggil CalcWorldViewProjMatrix
Cek variabel global apakah
dapat melakukan Shader?
Panggil SetVertexShaderConstantF
dari pointer D3D Device dan Transpose matriks
WorldViewProj global sbg param
Ya Panggil SetTransform
dari pointer D3D Device dan matriks World global
sebagai param Tidak
Selesai
Gambar 3.46. Flowchart Operasi SetWorldTransform
3.5.18. Flowchart Operasi ActivateVShader
Operasi ini bertugas untuk mengaktifkan obyek verteks shader yang di buat sebelumnya pada obyek device. Operasi ActivateVShader merupakan
bagian dari kelas TumozD3D. Pada dasarnya obyek verteks shader dapat di buat lebih dari satu karena hal ini ditujukan untuk membuat bermacam-macam efek
khusus ketika proses rendering dan operasi ini yang menentukan shader aktif berdasarkan idnya.
Operasi ini dibagi menjadi tiga proses yaitu memanggil fungsi ForcedFlushAll untuk membersihkan buffer verteks, lalu memanggil fungsi
STIKOM SURABAYA
obyek device SetVertexDeclaration untuk menentukan ukuran dan format verteks yang akan diproses oleh shader, dan terakhir memanggil fungsi obyek
device SetVertexShader yaitu untuk mengaktifkan verteks shader berdasarkan obyek verteks shader yang diinginkan. Untuk lebih jelasnya flowchart dari operasi
ini dapat dilihat pada gambar 3.47.
Mulai
Cek variabel global apakah
Shader dapat tidak dapat
digunakan?
Return TUMOZ_NOSHADER
SUPPORT Ya
Selesai Cek
apakah ID Vertex Shader =
jumlah Vertex Shader yang
ada? Tidak
Return TUMOZ_INVALIDID
Ya Panggil
ForcedFlushAll dari pointer Vertex
Manager global Tidak
Cek apakah Vertex ID dari
param valid? Tidak
Cek apakah pemanggilan
SetVertexDeclaration dari pointer D3D
Device gagal? Ya
Return TUMOZ_FAIL Ya
Cek pemanggilan
SetVertexShader dari pointer D3D
Device dgn pointer Vertex Shader indeks
ID dr param gagal?
Tidak
Ya
Set variabel Vertex Shader aktif global == ID
dari param Tidak
Set satus variabel sedang digunakan
global == true
Return TUMOZ_OK
Gambar 3.47. Flowchart Operasi ActivateVShader
STIKOM SURABAYA
3.5.19. Flowchart Operasi Render