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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: индексированное изображение и OpenGL  (Прочитано 2350 раз)
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 такие изображения не рассматриваются Злой
« Последнее редактирование: Май 02, 2010, 17:05 от ilyagoo » Записан
ilyagoo
Гость
« Ответ #1 : Май 03, 2010, 13:12 »

ага, нашел. QGLColorMap.setEntry().
вот только теперь загружается процессор((
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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