OpenGLでいくつかの三角形を描こうとしています。これは私が試した最初の方法であり、これは機能します。
...
StaticVertexData vertices[6] = {
{{ 255, 0, 0, 255}, { -0.90, -0.90, 0.0f}},
{{ 0, 255, 0, 255}, { 0.85, -0.90, 0.0f}},
{{ 0, 0, 255, 255}, { -0.90, 0.85, 0.0f}}
}
...
glGenBuffers(numBuffers, buffers);
glBindBuffer(GL_ARRAY_BUFFER, buffers[ArrayBuffer]);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices),
&vertices[0], GL_DYNAMIC_DRAW);
...
これはうまく機能し、画面に三角形が 1 つ表示されます。
ただし、malloc で頂点配列をヒープに割り当てると、ウィンドウが空白になります。
...
StaticVertexData* vertices = (StaticVertexData*) malloc(verticesCount*sizeof(StaticVertexData));
vertices = (StaticVertexData[6]) {
{{ 255, 0, 0, 255}, { -0.90, -0.90, 0.0f}},
{{ 0, 255, 0, 255}, { 0.85, -0.90, 0.0f}},
{{ 0, 0, 255, 255}, { -0.90, 0.85, 0.0f}}
};
...
// same as in the previous example
どうしてこれなの?ヒープから GPU にデータを送信することは不可能ですか? 最初にスタックに割り当てる必要がありますか?