LINUX.ORG.RU

Покадровое рисование кадров на xlib


0

1

Пацаны, решил поинтересоваться, может, кто в теме. Решил написать для своей целей культурную программу. Кароч, проблема такая. Рисую на xlib изображение, стираю, потом рисую заново. Вначале было ничего. А тут моргать начало, когда уже элементов много. Никто не может подсказать, как сначала полностью нарисовать новый кадр, а потом им сразу заменить старый. Шоб не моргало. Просто когда маргает программа некультурно выглядит и беспонтово. Стираю с помощью XFlush, потом рисую.

Можно узнать цели данного мероприятия? Как бы иксы есть, но на них никто практически не пишет.

Fischer
()

двойная буфферизация? а вообще с такими вопросами лучше подыскать какое-нибудь API повысокоуровневее, Cairo?

anonymous
()

Во-первых, расскажи, для чего тебе это нужно? Есть несколько вариантов для xlib:

1. Рисуешь кадр в Pixmap, а потом этот пискмап отображаешь в твоем окне. Следующий кадр опять в Pixmap и т. д. Двойная буферизация такая. Если ты делаешь это все локально, то можно процесс передачи кадра на сервер ускорить, так как имеется механизм SHM. Для этого ты сначала программно должен проверить наличие расширения MIT-SHM. Если оно есть, то можно использовать варианты функций с Shm. Если расширения нет (это если сервер такой непонятный совсем или просто удаленный), то fallback на обычные функции.

2. Если ты видео какое-то отображаешь, то можно использовать расширение Xv.

Zubok ★★★★★
()
Ответ на: комментарий от enep

Никто тут не спрашивает помогать в выборе тулкита. Что за привычка во всё влезть и поправить, причесать под своё представление?

Можно узнать цели данного мероприятия?

Что за жажда всё контролировать?

kiverattes ★☆
()
Ответ на: комментарий от kiverattes

Что за жажда всё контролировать?

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

baverman ★★★
()
Ответ на: комментарий от Zubok

> DBE уже объявлено как deprecated, кстати

кем и когда? в доках к libXext об этом никакого упоминания. может, вы с dga попутали?

ananas ★★★★★
()
Ответ на: комментарий от anon_666

Благодарю, пацаны! Моргать перестало. И ещо чисто интересуюсь, а как с OpenGL быстрее. Оно же трехмерное. (Если это не так, то тема закрыта)

А если кто интересовался моими целями, то. Программа моя будет позволять запускать другие программы с культурными ограничениями, если что. Она не всем подойдьот.

schoucher
() автор топика
Ответ на: комментарий от ananas

кем и когда? в доках к libXext об этом никакого упоминания. может, вы с dga попутали?

О DGA явно написано, а вот про DBE я не могу вспомнить, где я об этом читал. Совсем недавно в рассылке xcb тоже кто-то об этом упомянул. Но пока что DBE в сервере. Теперь я даже не знаю, какие планы. Явного заявления уже не могу найти.

Zubok ★★★★★
()
Ответ на: комментарий от ananas

И еще вот сообщение 2006 года в рассылке XCB. Странно, но официальных заявлений по этому поводу что-то не вижу. Может, разработчики XCB что-то где-то не так поняли? У них вообще для DBE нет спеков в XML.

Zubok ★★★★★
()
Ответ на: комментарий от schoucher

>И ещо чисто интересуюсь, а как с OpenGL быстрее. Оно же трехмерное.

Можно и двумерно рисовать.

Yareg ★★★
()
Ответ на: комментарий от Zubok

не исключено, что подобные дискуссии были, когда хоронили xfree86 и пытались иксы модульными и на рельсах autoconf сделать. а разработчики xcb одно из предложений приняли как свершившийся факт.

но, во всяком случае, dbe сейчас много где используется, и хоронить его, имхо, рановато

ananas ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.