Maison  >  Article  >  développement back-end  >  Pourquoi mon triangle Go OpenGL reste-t-il invisible ?

Pourquoi mon triangle Go OpenGL reste-t-il invisible ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 05:55:30381parcourir

 Why Does My Go OpenGL Triangle Remain Invisible?

OpenGL Vertex Buffer ne parvient pas à afficher le triangle dans Go

Dans le but de reproduire un didacticiel sur la création d'un triangle simple à l'aide d'OpenGL dans Go, un individu a rencontré des difficultés pour que le tampon de sommets affiche la forme. Pendant que la fenêtre s'ouvrait et que l'arrière-plan devenait bleu, le triangle restait invisible.

L'extrait de code fourni implique la création d'un tampon de sommets, puis le dessin du triangle à l'aide de glDrawArrays. Cependant, dans la version C du code qui fonctionne, la fonction AttribPointer prend un paramètre (void*)0 pour spécifier le décalage du tampon du tableau, tandis que dans la version Go, l'argument de décalage fourni fait planter l'application, et nil ne le fait pas. Cela ne semble pas fonctionner non plus.

La solution mise à jour impliquait l'utilisation de la branche de travail des liaisons banthar et la modification des appels à AttribPointer et BufferData comme suit :

<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>

En passant la taille en octets à BufferData et en définissant le décalage du tampon du tableau sur zéro dans AttribPointer, le problème a été résolu et le triangle a été affiché avec succès.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn