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

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

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: OpenGL  (Прочитано 18154 раз)
¤Se®ega¤
Гость
« Ответ #15 : Апрель 15, 2009, 14:30 »

Мне необходимо передать из одного приложения в другое именно Картинку.Для получения этой картинки целесообразно использовать QGLWidget.
Прошу прощенье за запутывание касательно отображение на втором приложении в QGLWidget.
Записан
spirit
Гость
« Ответ #16 : Апрель 15, 2009, 14:32 »

ясно. ну значит, как и говорил, сделай скриншот QGLWidget, где рендерится картинка ну и дальше по пунктам как я описывал.
разве, что отображать, если хочешь, можно не в QLabel, а в QGLWidget, хотя в последнем случае не вижу никакого выиграша. Улыбающийся
Записан
¤Se®ega¤
Гость
« Ответ #17 : Апрель 15, 2009, 14:43 »

еще мне бы желательно, чтобы все это происходило как можно быстрее. и еще несколько вопросов:
1) когда я буду делать pixmap.save(&buffer, "PNG"); получается что я сделаю скрин с моего QGLWidget окна(в котором будет вращаться фигурка), затем передам его в буфер, и буфер сохраню в pixmap в формате png?
2)передавать буду через сокет,как мне именно передать pixmap?
Если не влом Улыбающийся хотелось бы разжованное все ) Итак конечно СПАСИБО ОГРОИНОЕ.НО если еще и это разжевать буду крайне признателен )))
Записан
spirit
Гость
« Ответ #18 : Апрель 15, 2009, 14:47 »

еще мне бы желательно, чтобы все это происходило как можно быстрее. и еще несколько вопросов:
1) когда я буду делать pixmap.save(&buffer, "PNG"); получается что я сделаю скрин с моего QGLWidget окна(в котором будет вращаться фигурка), затем передам его в буфер, и буфер сохраню в pixmap в формате png?
да
2)передавать буду через сокет,как мне именно передать pixmap?
Если не влом Улыбающийся хотелось бы разжованное все ) Итак конечно СПАСИБО ОГРОИНОЕ.НО если еще и это разжевать буду крайне признателен )))
писать в сокент нужно через QIODevice::write, т.е.
Код
C++ (Qt)
...
m_socket->write(imageToByteArray());
...
 
Записан
¤Se®ega¤
Гость
« Ответ #19 : Апрель 15, 2009, 14:52 »

ОГРОМНОЕ СПАСИБИЩЕ.Сегодня буду пробовать.
Записан
¤Se®ega¤
Гость
« Ответ #20 : Апрель 15, 2009, 15:17 »

А можно генерить те же самые картинки, но не на окне, с которого берем скрин, а в памяти?
Записан
spirit
Гость
« Ответ #21 : Апрель 15, 2009, 17:53 »

А можно генерить те же самые картинки, но не на окне, с которого берем скрин, а в памяти?
можно.
вот таким обрзом
Код
C++ (Qt)
...
QPixmap pixmap(100, 100);
QPainter painter(&pixmap);
painter.drawRect(10, 10, 90, 90);
...
 
Записан
¤Se®ega¤
Гость
« Ответ #22 : Апрель 15, 2009, 17:57 »

Ну получается что там будет всегда одна и таже картинка.нет?
Записан
¤Se®ega¤
Гость
« Ответ #23 : Апрель 15, 2009, 17:59 »

И намного ли быстрее будет генерация в памяти чем, предыдущий метод?
Записан
spirit
Гость
« Ответ #24 : Апрель 15, 2009, 18:01 »

я просто пример ривел. картинку ты можешь пересоздавать, не проблема.

на много-ли быстрее? если ты строишь 3D объекты, то быстрее конечно через OpenGL,
а если простенькие картинки, то можно и этим методом воспользоваться.
Записан
¤Se®ega¤
Гость
« Ответ #25 : Апрель 15, 2009, 18:34 »

можно еще вопрос касательно восстановления изображения.что должно быть в функции getScreenShot()?
и правильно ли я посылаю данные?
 void MyServer::sendToClient(QTcpSocket* pSocket, const QString& str)
{
QByteArray arrBlock;
QDataStream out(&arrBlock, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_4);
arrBlock = imageToByteArray();
out<<quint16(arrBlock.size() - sizeof(quint16));
pSocket->write(arrBlock);
}
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #26 : Апрель 15, 2009, 18:52 »

мня интересует не средства для передачи. меня больше интересует ЧТО передать.
Поподробнее:
одник класс генерит изображение
второй класс это изображение принимает и иотображает посредством Opengl.

Я что-то не понял, если изображение уже есть, то почему бы его сразу не передать третьим сторонам? Изображение у тебя - это какая сущность? QImage? Массив байт?
Записан
¤Se®ega¤
Гость
« Ответ #27 : Апрель 15, 2009, 18:55 »

QGLWidget
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #28 : Апрель 15, 2009, 19:53 »

QGLWidget

QGLWidget это OpenGL контекст, в который ты что-то рисуешь. Как ты рисуешь картинку? Через текстуры или по-другому?
Записан
¤Se®ega¤
Гость
« Ответ #29 : Апрель 15, 2009, 20:02 »

Через  метод PaintGl графичискими примитивами
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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