Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: ilyagoo от Май 02, 2010, 15:36



Название: индексированное изображение и OpenGL
Отправлено: ilyagoo от Май 02, 2010, 15:36
Наследую от 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 такие изображения не рассматриваются >:(


Название: Re: индексированное изображение и OpenGL
Отправлено: ilyagoo от Май 03, 2010, 13:12
ага, нашел. QGLColorMap.setEntry().
вот только теперь загружается процессор((