Russian Qt Forum
Ноябрь 22, 2024, 18:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: glReadPixels  (Прочитано 3792 раз)
Sahsa
Гость
« : Май 05, 2016, 07:41 »

Всем Доброе время суток)
Столкнулся с такой проблемой. Если сохранять в буфер и выводить из буфера изображения в формате GL_RGB, то все работает, а когда GL_LUMINANCE, то нет.
Рабочий код:
buffer = new unsigned char[m_iHeight * m_iWidth * 3]
glPixelStorei( GL_PACK_ALIGNMENT, 1 );
glReadPixels( 0, 0, m_iWidth, m_iHeight, GL_RGB, GL_UNSIGNED_BYTE, buffer );
--//--
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glDrawPixels(m_iWidth, m_iHeight, GL_RGB, GL_UNSIGNED_BYTE, buffer);

Не рабочий код:
buffer = new unsigned char[m_iHeight * m_iWidth]
glPixelStorei( GL_PACK_ALIGNMENT, 1 );
glReadPixels( 0, 0, m_iWidth, m_iHeight, GL_LUMINANCE, GL_UNSIGNED_BYTE, buffer );
--//--
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glDrawPixels(m_iWidth, m_iHeight, GL_LUMINANCE, GL_UNSIGNED_BYTE, buffer);

Но если самому заполнять массив, то glDrawPixels отрабатывает. То как правильно сохранить в формате GL_LUMINANCE?
Всем Спасибо)
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Май 05, 2016, 09:18 »

glReadPixels( 0, 0, m_iWidth, m_iHeight, GL_LUMINANCE, GL_UNSIGNED_BYTE, buffer );
Здесь я не вижу что GL_LUMINANCE допустимое значение для glReadPixels. В чем можно убедиться вызвав glError

Думается Вы напрасно полагаете что GL_LUMINANCE значит "однобайтовый буфер", он все равно RGB(A)
Записан
Sahsa
Гость
« Ответ #2 : Май 05, 2016, 20:29 »

Спасибо)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.08 секунд. Запросов: 22.