Наследую от QGLWidget и выкидываю на экран картинку:
void TGLWidget::initializeGL()
{
m_Image.load( "image.bmp" );
int *bits = (int*)m_Image.bits();
for ( int i = 0; i < m_Image.width(); i++ )
for ( int j = 0; j < m_Image.height(); j++ )
{
int r, g, b, color;
color = bits[ i * m_Image.width() + j ];
r = ( color & 0x00ff0000 ) >> 16;
g = ( color & 0x0000ff00 );
b = ( color & 0x000000ff ) << 16;
bits[ i * m_Image.width() + j ] = r | g | b;
}
glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
}
void TGLWidget::paintGL()
{
glDrawPixels( m_Image.width(), m_Image.height(), GL_RGBA, GL_UNSIGNED_BYTE, m_Image.bits() );
}
void TGLWidget::resizeGL( int width, int height )
{
if( height == 0 )
height = 1;
glViewport( 0, 0, width, height );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
}
а вот как работать с форматом QImage::Format_Indexed8? в книгах по OpenGL такие изображения не рассматриваются