Russian Qt Forum

Qt => OpenGL => Тема начата: Sahsa от Май 05, 2016, 07:41



Название: glReadPixels
Отправлено: 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?
Всем Спасибо)


Название: Re: glReadPixels
Отправлено: Igors от Май 05, 2016, 09:18
glReadPixels( 0, 0, m_iWidth, m_iHeight, GL_LUMINANCE, GL_UNSIGNED_BYTE, buffer );
Здесь (https://www.khronos.org/opengles/sdk/docs/man/xhtml/glReadPixels.xml) я не вижу что GL_LUMINANCE допустимое значение для glReadPixels. В чем можно убедиться вызвав glError

Думается Вы напрасно полагаете что GL_LUMINANCE значит "однобайтовый буфер", он все равно RGB(A)


Название: Re: glReadPixels
Отправлено: Sahsa от Май 05, 2016, 20:29
Спасибо)