Я использую эту функцию, чтобы получить мою текстуру с видеокарты,
но по некоторым причинам он ничего не возвращает на некоторых картах, если miplevel> 0
Вот код, который я использую для получения изображения:
glGetTexImage(GL_TEXTURE_2D, miplevel, GL_RGB, GL_UNSIGNED_BYTE, data);
вот код, который я использую, чтобы проверить, какой метод использовать для mipmapping:
ext = (char*)glGetString(GL_EXTENSIONS);
if(strstr(ext, "SGIS_generate_mipmap") == NULL){
// use gluBuild2DMipmaps()
}else{
// use GL_GENERATE_MIPMAP
}
Пока все работает правильно, поэтому говорится, что GL_GENERATE_MIPMAP поддерживается для этих карт ATI ниже.
Вот проверенные карты:
- ATI Radeon 9550 / X1050 Series
- ATI Mobility Radeon HD 3470
- ATI Radeon X700
- ATI Radeon HD 4870
- ATI Radeon HD 3450
В данный момент я беру miplevel 0 и генерирую mipmap по собственному коду. Есть ли лучшее решение для этого?
Также glGetError () возвращает 0 для всех карт, поэтому ошибки не возникает. это просто не работает. возможно проблема с драйвером?
Я все еще ищу лучшее решение, чем сам изменяю его размер на процессоре ...