Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> масштабирование изображения OpenGL, масштабирование изображения OpenGL 
:(
    Опции темы
hawk3500
Дата 14.4.2013, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 6.2.2009

Репутация: нет
Всего: 2



Доброго времени суток.
Программирую на Qt и столкнулся с тем что встроенные в Qt методы изменения размера изображения очень медленные.
Переписал код под OpenGL но как изменить размер изображения не знаю...
Подскажите кто знает.
Код

#include "paint_gl.h"

Paint_GL::Paint_GL(QWidget *parent)
    : QGLWidget(parent)
{
     wid=500; hid=500; // начальный размер окна
     resize(wid,hid);
     IMG = new QImage("C:\\002.jpg");
     Time= new QTimer(this);
     bool K=  connect(Time,SIGNAL(timeout(void)),this,SLOT(TimeOut_l(void)));
     Time->start(150);
}

Paint_GL::~Paint_GL()
{

}
void Paint_GL::resizeEvent(QResizeEvent* EVA)
{
    QSize NewSize=EVA->size();
    wid=NewSize.width();
    hid=NewSize.height();
    glViewport (0, 0, wid, hid);
    return QGLWidget::resizeEvent(EVA);
}

void Paint_GL::TimeOut_l(void)
{
    update();
}

void Paint_GL::paintGL()
{
    Zeta=QGLWidget::convertToGLFormat(*IMG);
    glDrawPixels(IMG->width(),IMG->height(),GL_RGBA,GL_UNSIGNED_BYTE,Zeta.bits());
}


--------------------
воин dzen'a
PM MAIL   Вверх
gldevAleksey
Дата 15.4.2013, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.4.2013

Репутация: нет
Всего: нет



//--------------------------------------------------------------------

Код

struct RGBA
{
 unsigned char  r,g,b,a;
};



//--------------------------------------------------------------------


RGBA *rbitmap =new RGBA[64*64];

//--------------------------------------------------------------------



glRasterPos2i(100, 100);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glPixelZoom(100/ (double) 64, 100 / (double) 64);// вот эта функция и масштабирует битовый образ.
glDrawPixels(64,64,GL_RGBA,GL_UNSIGNED_BYTE,rbitmap);


//--------------------------------------------------------------------



Да, кстати, если интересует то glDrawPixels(64,64,GL_RGBA,GL_UNSIGNED_BYTE,rbitmap); не самый быстрый вывод 
битовых образов в библиотеке OpenGL.

 

PM MAIL ICQ   Вверх
Jeka178RUS
Дата 18.4.2013, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



Масштабирование нужно только для просмотра или для последующего использования?

Если только для вывода тогда хватит использования видовой матрицы

Это сообщение отредактировал(а) Jeka178RUS - 18.4.2013, 11:46
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0397 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.