Название: Отрисовка содержимого буфера OGL Отправлено: cipher от Май 21, 2007, 18:44 Вот здесь проблему вывода GDI+OpenGL в один QGLWidget решили
http://prog.org.ru/forum/htopic_3682_%CF%D4%D2%C9%D3%CF%D7%CB%C1+opengl.html только у меня не получается при вызове вот таком Код:
Выводится просто чёрный экран. Может авторы предыдущей темы пояснят немного где грабли. добавлено спустя 1 час 45 минут: Малость переформулирую вопрос, вот такой вот код не обновляет картинку постоянно. Неужели нельзу как-то обойтись без QTimer? Как обычно, обновляют сцены в OGL+QT? В WinAPI там цикл устраивался while(true), а здесь как зациклить обновление картинки? Код:
Название: Отрисовка содержимого буфера OGL Отправлено: J. Bond от Май 22, 2007, 10:04 а зачем вообще использовать painter в примере выше?
и попробуй все запихнуть в PaintGL() а не в paintEvent(); а про обновление int main() { while (true) { paintGL(); } } ну и в ней все что нужно. Название: Отрисовка содержимого буфера OGL Отправлено: cipher от Май 22, 2007, 14:21 Мне ведь надо GDI и OGL одновременно рисовать в одном окне один поверх другого. Счас вроде получается - сделал QTimer на него повесил вот так вот
Код:
Но отрисовка происходит слишком медленно. Вся сцена рисуется в paintGL. Как ускорить вывод сцены? Название: Отрисовка содержимого буфера OGL Отправлено: J. Bond от Май 22, 2007, 15:23 А какой период перерисовки?
Ускорение== как можно меньше QPainter Вообще с OpenGL тяжело выводить только текст -> все рисуем на OpenGL Паинтером рисуем на пиксмапе которую потом рендерим на опенгл. Название: Отрисовка содержимого буфера OGL Отправлено: cipher от Май 22, 2007, 15:51 Вот период перерисовки как ты видишь опущен, в доках троля я не нашёл через какое время будет дёргаться функция если не указан промежуток у метода start().
А потом то что нарисовали в QPainter блендим с кадром из OGL? Как-то мудрено получается Бог с ним пока с qpainter, мне надо пока просто ускорить вывод результата работы OGL. Можно как-то подтолкнуть процесс именно с точки зрения QT? Название: Отрисовка содержимого буфера OGL Отправлено: J. Bond от Май 22, 2007, 16:46 насчет таймера - timer->start(интервал в миллисекундах)
при твоем варианте интервал равен нулю. Ускорить можно только увеличив интервал. Ну и соответственно использовать VertexBuffers для ускорения. с блендингом получается мудрено, но гораздо быстрее. |