配列の(配列の)動的配列を作成しようとしています。しかし何らかの理由でデータが破損する。私はOpenGLアプリケーションでテクスチャを生成するためにデータを使用しています。(配列の)配列の動的配列を作成するにはどうすればよいですか?
次のコードは正常に動作します:
unsigned char imageData[64][64][3];
for (int i = 0; i < 64; i++)
{
for (int j = 0; j < 64; j++)
{
unsigned char r = 0, g = 0, b = 0;
if (i < 32)
{
if (j < 32)
r = 255;
else
b = 255;
}
else
{
if (j < 32)
g = 255;
}
imageData[i][j][0] = r;
imageData[i][j][1] = g;
imageData[i][j][2] = b;
}
std::cout << std::endl;
}
glTexImage2D(target, 0, GL_RGB, 64, 64, 0, GL_RGB, GL_UNSIGNED_BYTE, imageData);
問題は、私は(だけでなく、64 * 64)任意のサイズのテクスチャを作成できるようにしたいです。だから私は、このしようとしている:
unsigned char*** imageData = new unsigned char**[64]();
for (int i = 0; i < 64; i++)
{
imageData[i] = new unsigned char*[64]();
for (int j = 0; j < 64; j++)
{
imageData[i][j] = new unsigned char[3]();
unsigned char r = 0, g = 0, b = 0;
if (i < 32)
{
if (j < 32)
r = 255;
else
b = 255;
}
else
{
if (j < 32)
g = 255;
}
imageData[i][j][0] = r;
imageData[i][j][1] = g;
imageData[i][j][2] = b;
}
std::cout << std::endl;
}
glTexImage2D(target, 0, GL_RGB, 64, 64, 0, GL_RGB, GL_UNSIGNED_BYTE, imageData);
をしかし、それは動作しない、画像がすべてのように、私は私が間違って(配列の)配列の配列を作成してい仮定めちゃくちゃますか?私は間違って何をしていますか?
また、私はベクトルを代わりに使用する必要があります。しかし、どのようにベクトルデータのベクトルのベクトルを(void *)にキャストできますか?
あなたは何を意味するのですか?何が正確に起こるか? – PYA
unsigned char * imageData = new unsigned char [width * height * 3]; – nullqube
@pyjg:私の編集を参照してください。色が期待通りに表示されません。それをよりよく表現する方法がわからない、スクリーンショットをアップロードできますか? – gromit190