У меня проблема с отображением текстур на другом оборудовании. Я использую следующий код:
char *exts = (char *)glGetString(GL_EXTENSIONS);
if(strstr(exts, "SGIS_generate_mipmap") == NULL){
// use gluBuild2DMipmaps()
}else{
// use GL_GENERATE_MIPMAP
}
Но на некоторых картах написано, что GL_GENERATE_MIPMAP поддерживается, когда нет, поэтому карта gfx пытается считывать память с того места, где должен быть mipamp, таким образом, карта отображает другие текстуры на этих уровнях.
Я попробовал glGenerateMipmapEXT (GL_TEXTURE_2D), но он делает все мои текстуры белыми, я включил GL_TEXTURE_2D перед использованием этой функции (как было сказано).
Я мог бы просто использовать gluBuild2DMipmaps () для всех, так как это работает. Но я не хочу, чтобы новые карты загружались в 10 раз медленнее, потому что есть 2 пользователя, у которых действительно старые карты.
Так как правильно выбрать метод mipmap?