順を追って説明します
まず、ヘッダファイルに以下を記述して
vector<CUSTOM_VERTEX> verts; struct CUSTOM_VERTEX { GLfloat tx, ty; GLfloat r, g, b, a; GLfloat nx, ny, nz; GLfloat x, y, z; };
cppファイルには
c++
1 CUSTOM_VERTEX cv = { 2 texs[i].x,texs[i].y, 3 colors[i].r, colors[i].g, colors[i].b, colors[i].a, 4 norms[i].x, norms[i].y, norms[i].z, 5 verts[i].x, verts[i].y, verts[i].z 6 }; 7 verts.push_back(cv); 8 }
といったように cvとゆう名前でstruct CUSTOM_VERTEXに値を入れ、vertsとゆうCUSTOM_VERTEX型の配列に挿入しています
このvertsの使い道は、以下のようになります
C++
1glBindBuffer(GL_ARRAY_BUFFER, buffers[0]); 2glBufferData(GL_ARRAY_BUFFER, verts.size() * sizeof(CUSTOM_VERTEX), &verts[0], GL_DYNAMIC_DRAW);
さて、、ここで使用し終わったバッファを消したのですが(以下コード)
C++
1glDeleteBuffers(1, &buffers[0]);
メモリは解放されておらず、調べてみたら、CUSTOM_VERTEXが大量にプロセスメモリを占領していました。
どういった処理をすれば、メモリを確保できるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。