Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Двойная буферизация в X Window

Ответить
Настройки темы
Двойная буферизация в X Window

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Проблема такая:
Нужно в памяти нарисовать кадр изображения (кадр большой, размером с экран), а потом быстро вывести его на экран. Вывод функциями X Window (никаких GTK, QT).
Как это лучше сделать? Можно ли в X Window реализовать несколько страниц в видеопамяти, чтобы быстро переключаться между ними?
Пока использую XPutImage (XShmPutImage), но XImage не является drawable и это очень неудобно.

Отправлено: 15:29, 15-05-2005

 

Аватара для ruslandh

info man howto


Moderator


Сообщения: 6949
Благодарности: 383

Профиль | Сайт | Отправить PM | Цитировать


1 Напрямую к видеопамяти обратиться через X сервер нельзя: так-как X-клиенты работают с X-сервером по сетевому протоколу, то никакого прямого размещения изображение с видеопамяти со стороны X клиента быть не может.
2 Если только создавать файл картинки на каком-нибудь RAM диске, и "выплевывать" его на экран

-------
Поспешай не торопясь


Отправлено: 16:26, 15-05-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


А если клиент и сервер - это один компьютер? Ведь для этого придуманы shared memory segments..

Отправлено: 20:13, 15-05-2005 | #3


Аватара для ruslandh

info man howto


Moderator


Сообщения: 6949
Благодарности: 383

Профиль | Сайт | Отправить PM | Цитировать


penykovОни всё равно работают по сетевому протоколу. А передача через общее поле памяти не используется в этих программах.
Да что я Вам рассказываю - посмотрите исходники X сервера и проверьте - может что-то полезное для себя найдёте

-------
Поспешай не торопясь


Отправлено: 08:04, 16-05-2005 | #4


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Хорошо, возвращаясь к другой части вопроса: как в памяти хранить кадр изображения и рисовать туда? XImage не является drawable; пиксельная карта на весь экран мне кажется неправильным решением.

Отправлено: 23:12, 17-05-2005 | #5


Аватара для ruslandh

info man howto


Moderator


Сообщения: 6949
Благодарности: 383

Профиль | Сайт | Отправить PM | Цитировать


Варианты
1 Рисовать в цикле (стандартная перерисовка) и только то, что меняется со временем. И хранить соответственно только изменения.
2 Хранить рисунок в каком-то формате (преобразовав его в заданный вид) и при необходимости из этого формата считывать и выдавать заново.

-------
Поспешай не торопясь


Отправлено: 07:54, 18-05-2005 | #6


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Напрямую к видеопамяти можно обратиться через расширение DGA, когда сервер и клиент работают на одном компьютере.

Двойную бефиразцию можно сделать через расширение VidMode, если сделать размер виртуального экрана в несколько раз больше видимой области.

Отправлено: 23:10, 28-05-2005 | #7



Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Двойная буферизация в X Window

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - буферизация печати VADJ Microsoft Windows 2000/XP 13 19-12-2011 22:10
DNS/DHCP - [решено] dhcp и компьютеры с желтым телефоном <Dial-In сервер, DHCP, "двойная" выдача IP> WorF Сетевые технологии 9 15-05-2008 13:53
запуск X-Window zloy7 Общий по FreeBSD 20 14-12-2005 17:10
window.open... Vitki Вебмастеру 1 15-12-2002 18:57




 
Переход