ホームページ >バックエンド開発 >Golang >Go OpenGL Triangle が非表示のままになるのはなぜですか?

Go OpenGL Triangle が非表示のままになるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-26 05:55:30474ブラウズ

 Why Does My Go OpenGL Triangle Remain Invisible?

Go で OpenGL 頂点バッファーが三角形を表示できない

Go で OpenGL を使用して単純な三角形を作成するチュートリアルを複製しようとしました。ある人は、形状を表示するための頂点バッファーを取得する際に困難に遭遇しました。ウィンドウが開き、背景が青色に変わる間、三角形は表示されないままでした。

提供されるコード スニペットには、頂点バッファーの作成と、glDrawArrays を使用した三角形の描画が含まれます。ただし、動作するコードの C バージョンでは、AttribPointer 関数は配列バッファー オフセットを指定するためにパラメーター (void*)0 を受け取りますが、Go バージョンでは、指定されたオフセット引数によってアプリケーションがクラッシュし、nil はクラッシュしません。

更新されたソリューションには、banthar バインディングの作業ブランチを使用し、AttribPointer と BufferData への呼び出しを次のように変更することが含まれていました。

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

バイト単位でサイズを渡すことで、 BufferData を使用し、AttribPointer で配列バッファー オフセットを nil に設定すると、問題は解決され、三角形が正常に表示されました。

以上がGo OpenGL Triangle が非表示のままになるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。