3.5.8. Flowchart Operasi AddSkin
Operasi AddSkin merupakan salah satu operasi terpenting pada kelas TumozD3DSkinManager yang juga merupakan operasi turunan dari interface
TumozSkinManager. Tugas dari operasi ini adalah untuk membuat obyek skin baru berdasarkan material yang diberikan pada parameter dari fungsi tersebut.
Sedangkan untuk tekturnya akan dikosongkan terlebih dahulu. Operasi ini diawali dengan mengalokasikan slot memory pada pointer
obyek skin untuk menyimpan obyek skin yang baru. Untuk efisiensi slot memory yang disediakan berjumlah 50 buah dan apabila slot tersebut penuh maka slot
tersebut akan di tambah 50 buah lagi. Proses berikutnya dilanjutkan dengan pembuatan material berdasarkan
parameter fungsi. Kemudian material tersebut di periksa apakah sama dengan material yang sudah ada menggunakan fungsi MaterialEqual. Apabila sudah ada
maka idnya disimpan ke dalam obyek skin dan jika tidak maka akan dialokasikan ke pointer material baru lalu idnya di simpan ke dalam obyek skin.
Tahapan selanjutnya dari operasi ini adalah pengaturan nilai alpha dari skin menjadi false. Tekstur pada operasi ini dikosongkan terlebih dahulu dengan
cara mengatur masing-masing id dari tekstur pada skin dengan nilai MAX_ID. Lalu dilanjutkan dengan menyimpan id skin dan menambah jumlah obyek skin
yang telah di buat. Proses terakhir dari operasi ini adalah mengembalikan nilai balik
TUMOZ_OK sebagai tanda bahwa proses operasi telah berjalan dengan lancar tanpa adanya error. Untuk lebih jelasnya flowchart dari operasi ini dapat dilihat
pada gambar 3.36.
STIKOM SURABAYA
Mulai
Jumlah Skin mod 50
== 0? Alokasikan 50
slot memory Skin baru ke
pointer Skin global
Ya
Cek apakah nilai
pointer Skin global tidak
valid? Return
TUMOZ_OUTOFME MORY
Ya
Selesai Buat Material
berdasarkan nilai dari
parameter Tidak
Tidak nMat=0
nMatJumlah Material?
Cek material baru
dng yg sudah ada pd indeks [nMat]
menggunakan Material
Equal Ya
bMat = true; Break;
Ya nMat++
Tidak
bMat == true?
Tidak
Ubah ID Material Skin
baru dengan nMat
Ya Ubah ID Skin
baru dengan jumlah Material
Tidak Jumlah
Material mod 50 == 0?
Alokasikan 50 slot memory Material
baru ke pointer Material global
Ya
Cek apakah nilai
pointer Material global tidak
valid? Ya
Copy Material baru ke dalam pointer
material global indeks terakhir
Tidak Increment
jumlah Material yang ada
Set penggunaan nilai alpha pada
Skin baru menjadi false
Int i = 0
i 8?
Set ID Texture pada indeks [i]
Skin baru menjadi
MAX_ID Ya
i++ Set nilai
reference parameter ID
Skin ke jumlah Skin
Tidak
Increment jumlah Skin
yang ada
Return TUMOZ_OK
Buat variabel UINT nMat dan
bool bMat=false
Tidak
Gambar 3.36. Flowchart Operasi AddSkin
STIKOM SURABAYA
3.5.9. Flowchart Operasi AddTexture