Warum bleibt mein Go OpenGL-Dreieck unsichtbar?

Patricia Arquette
Freigeben: 2024-10-26 05:55:30
Original
378 Leute haben es durchsucht

 Why Does My Go OpenGL Triangle Remain Invisible?

OpenGL-Vertexpuffer zeigt Dreieck in Go nicht an

In einem Versuch, ein Tutorial zum Erstellen eines einfachen Dreiecks mit OpenGL in Go zu reproduzieren, Eine Person hatte Schwierigkeiten, den Scheitelpunktpuffer dazu zu bringen, die Form anzuzeigen. Während sich das Fenster öffnete und der Hintergrund blau wurde, blieb das Dreieck unsichtbar.

Das bereitgestellte Code-Snippet beinhaltet das Erstellen eines Scheitelpunktpuffers und das anschließende Zeichnen des Dreiecks mit glDrawArrays. In der C-Version des Codes, die funktioniert, benötigt die AttribPointer-Funktion jedoch einen Parameter (void*)0, um den Array-Puffer-Offset anzugeben, während in der Go-Version das bereitgestellte Offset-Argument die Anwendung zum Absturz bringt und nil nicht funktioniert. Scheint auch nicht zu funktionieren.

Die aktualisierte Lösung umfasste die Verwendung des Arbeitszweigs von Banthar-Bindungen und die Änderung der Aufrufe von AttribPointer und BufferData wie folgt:

<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>
Nach dem Login kopieren

Durch Übergabe der Größe in Bytes an BufferData und Setzen des Array-Puffer-Offsets auf Null in AttribPointer wurde das Problem behoben und das Dreieck wurde erfolgreich angezeigt.

Das obige ist der detaillierte Inhalt vonWarum bleibt mein Go OpenGL-Dreieck unsichtbar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!