Maison > Article > développement back-end > Pourquoi ne puis-je pas afficher un triangle à l'aide de go-gl/glfw et github.com/banthar/gl malgré une configuration réussie de la fenêtre et de l'arrière-plan ?
Question :
Utilisation du package Go github.com/banthar/gl , le code du didacticiel de http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/ crée avec succès une fenêtre et définit la couleur d'arrière-plan, mais ne parvient pas à afficher un triangle. Le code C équivalent affiche le triangle. Pourquoi ?
Réponse :
Les erreurs peuvent être attribuées à des arguments incorrects transmis à la fonction AttribPointer. Les ajustements suivants ont été identifiés pour résoudre le problème :
Code Go corrigé :
package main import ( "github.com/banthar/gl" "github.com/go-gl/glfw/v3.2/glfw" "log" ) func main() { // ... ( GLFW window setup, GL initialization code) ... // Create vertex buffer gVertexBufferData := []float32{-1.0, -1.0, 0.0, 1.0, -1.0, 0.0, 0.0, 1.0, 0.0} vertexBuffer := gl.GenBuffer() vertexBuffer.Bind(gl.ARRAY_BUFFER) gl.BufferData(gl.ARRAY_BUFFER, len(gVertexBufferData)*4, gVertexBufferData, gl.STATIC_DRAW) for { // ... (Clear screen, enable/disable vertex attrib, draw triangle) ... vertexAttrib.AttribPointer( 3, // Size gl.FLOAT, // Type false, // Normalized? 0, // Stride nil) // Array buffer offset // ... (Continue drawing loop) ... } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!