Я сделал эту маленькую игру, используя SDL + OpenGL. Игра отлично работает на моем ПК, но на компьютере друга он просто получает белые коробки и пустой экран.
Я подумал, что это может быть проблемой из-за того, что мои текстуры не имеют степени 2 в измерениях. Я не могу изменить размеры текстуры, поэтому после некоторого поиска я обнаружил, что использование GL_ARB_texture_non_power_of_two каким-то образом вызовет (?) Текстуры npot. Но, к моему удивлению, на моем компьютере появляются белые коробки и прочее, и они даже не исчезают у моих друзей. Я не могу понять, в чем проблема. Любая помощь будет принята с благодарностью.
Код:
numColors = images[i]->format->BytesPerPixel;
if ( numColors == 4 )
{
if (images[i]->format->Rmask == 0x000000FF)
textureFormat = GL_RGBA;
else
textureFormat = GL_BGRA;
}
else if ( numColors == 3 )
{
if (images[i]->format->Rmask == 0x000000FF)
textureFormat = GL_RGBA;
else
textureFormat = GL_BGRA;
}
glPixelStorei(GL_UNPACK_ALIGNMENT,4);
glGenTextures( 1, &textures[i] );
glBindTexture( GL_ARB_texture_non_power_of_two, textures[i] );
glTexParameteri(GL_ARB_texture_non_power_of_two,GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_ARB_texture_non_power_of_two,GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_ARB_texture_non_power_of_two, 0, numColors, images[i]->w, images[i]->h, 0, textureFormat, GL_UNSIGNED_BYTE, images[i]->pixels);