Я использую эту функцию, чтобы получить текстуру с видеокарты, но по какой-то причине она ничего не возвращает на некоторых картах, если 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
- Мобильная видеокарта ATI Radeon HD 3470
- АТИ Радеон Х700
- АТИ Радеон HD 4870
- АТИ Радеон HD 3450
На данный момент я беру мип-уровень 0 и генерирую мип-карту собственным кодом. Есть ли лучшее решение для этого?
Также glGetError() возвращает 0 для всех карточек, поэтому ошибки не возникает. это просто не работает. наверное проблема с драйвером?
Я все еще ищу лучшее решение, чем изменять его размер самостоятельно на процессоре ...