Penimbal Vertex OpenGL Gagal Memaparkan Segitiga dalam Go
Dalam percubaan untuk meniru tutorial tentang mencipta segi tiga mudah menggunakan OpenGL dalam Go, seseorang individu menghadapi kesukaran untuk mendapatkan penimbal bucu untuk memaparkan bentuk. Semasa tetingkap dibuka dan latar belakang menjadi biru, segi tiga kekal tidak kelihatan.
Coretan kod yang disediakan melibatkan mencipta penimbal bucu dan kemudian melukis segi tiga menggunakan glDrawArrays. Walau bagaimanapun, dalam versi c kod yang berfungsi, fungsi AttribPointer mengambil parameter (void*)0 untuk menentukan ofset penimbal tatasusunan, manakala dalam versi Go, hujah offset yang disediakan merosakkan aplikasi dan tiada ' t nampaknya berfungsi sama ada.
Penyelesaian yang dikemas kini melibatkan penggunaan cabang kerja pengikatan banthar dan mengubah panggilan ke AttribPointer dan BufferData seperti berikut:
<code class="go">vertexAttrib.AttribPointer( 3, // size gl.FLOAT, //type false, // normalized? 0, // stride nil) // array buffer offset data := []float32{0, 1, 0, -1, -1, 0, 1, -1, 0} [...] gl.BufferData(gl.ARRAY_BUFFER, len(data)*4, data, gl.STATIC_DRAW)</code>
Dengan menghantar saiz dalam bait kepada BufferData dan menetapkan penampan tatasusunan mengimbangi kepada sifar dalam AttribPointer, masalah telah diselesaikan dan segi tiga telah berjaya dipaparkan.
Atas ialah kandungan terperinci Mengapa Segitiga OpenGL Go Saya Kekal Tidak Kelihatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!