Загружаю текстуры по образу и подобию примера из Rad Studio
void GLdraw::SetupTextures()
{
texbmp = new Graphics::TBitmap;
try
{
texbmp->LoadFromResourceName((int)HInstance, "grid256");
}
catch(EResNotFound *Error)
{
ShowMessage(Error->Message +
".\nThe resource file was not found or its "
"name is incorrect.");
}
catch(...)
{
ShowMessage("The picture cannot be displayed...");
}
GLubyte bits[256][256][4];
for(int i = 0; i
{
for(int j = 0; j
{
bits[i][j][0]= (GLbyte)GetRValue(texbmp->Canvas->Pixels[i][j]);
bits[i][j][1]= (GLbyte)GetGValue(texbmp->Canvas->Pixels[i][j]);
bits[i][j][2]= (GLbyte)GetBValue(texbmp->Canvas->Pixels[i][j]);
bits[i][j][3]= (GLbyte)255;
}
}
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
glGenTextures(1, &texture1);
glBindTexture(GL_TEXTURE_2D, texture1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, bits);
glEnable(GL_TEXTURE_2D);
}
Все работает, пока размер текстуры не превышает 256х256. Как только пытаюсь загрузить больше, например 512х512, программа вылетает с сообщением о переполнении стека на создании массива
GLubyte bits[512][512][4];
У билдера какие-то ограничения на размер массивов или что?