|
Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Двойная буферизация в X Window |
|
Двойная буферизация в X Window
|
Новый участник Сообщения: 15 |
Проблема такая:
Нужно в памяти нарисовать кадр изображения (кадр большой, размером с экран), а потом быстро вывести его на экран. Вывод функциями X Window (никаких GTK, QT). Как это лучше сделать? Можно ли в X Window реализовать несколько страниц в видеопамяти, чтобы быстро переключаться между ними? Пока использую XPutImage (XShmPutImage), но XImage не является drawable и это очень неудобно. |
|
Отправлено: 15:29, 15-05-2005 |
info man howto Сообщения: 6958
|
Профиль | Сайт | Отправить PM | Цитировать 1 Напрямую к видеопамяти обратиться через X сервер нельзя: так-как X-клиенты работают с X-сервером по сетевому протоколу, то никакого прямого размещения изображение с видеопамяти со стороны X клиента быть не может.
2 Если только создавать файл картинки на каком-нибудь RAM диске, и "выплевывать" его на экран |
------- Отправлено: 16:26, 15-05-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать А если клиент и сервер - это один компьютер? Ведь для этого придуманы shared memory segments..
|
Отправлено: 20:13, 15-05-2005 | #3 |
info man howto Сообщения: 6958
|
Профиль | Сайт | Отправить PM | Цитировать penykovОни всё равно работают по сетевому протоколу. А передача через общее поле памяти не используется в этих программах.
Да что я Вам рассказываю - посмотрите исходники X сервера и проверьте - может что-то полезное для себя найдёте ![]() |
------- Отправлено: 08:04, 16-05-2005 | #4 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Хорошо, возвращаясь к другой части вопроса: как в памяти хранить кадр изображения и рисовать туда? XImage не является drawable; пиксельная карта на весь экран мне кажется неправильным решением.
|
|
Отправлено: 23:12, 17-05-2005 | #5 |
info man howto Сообщения: 6958
|
Профиль | Сайт | Отправить PM | Цитировать Варианты
1 Рисовать в цикле (стандартная перерисовка) и только то, что меняется со временем. И хранить соответственно только изменения. 2 Хранить рисунок в каком-то формате (преобразовав его в заданный вид) и при необходимости из этого формата считывать и выдавать заново. |
------- Отправлено: 07:54, 18-05-2005 | #6 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Напрямую к видеопамяти можно обратиться через расширение DGA, когда сервер и клиент работают на одном компьютере.
Двойную бефиразцию можно сделать через расширение VidMode, если сделать размер виртуального экрана в несколько раз больше видимой области. |
Отправлено: 23:10, 28-05-2005 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - буферизация печати | 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 |
|