Flowchart Operasi AddSkin Flowchart Diagram

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