Есть ли альтернатива XLib для glXSwapBuffers ()? - PullRequest
0 голосов
/ 04 августа 2020

Я хочу, чтобы мое приложение мгновенно отображало все данные на дисплее. В windows есть функция SwapBuffers() для таких вещей, когда вы можете делать все рисунки во втором виртуальном окне, а затем менять это виртуальное окно на существующее. OpenGL предоставляет функцию glXSwapBuffers(), которая делает примерно то же самое. Однако я не хочу его использовать. Поэтому я cur ios, как можно реализовать эту функциональность в чистом XLib

Ответы [ 2 ]

2 голосов
/ 04 августа 2020

В X11 есть ресурсы Pixmap, которые рассматриваются как Drawable (например, Window).

Затем вы можете нарисовать Pixmap, используя столько шагов, сколько необходимо, и, наконец, используйте XCopyArea(), чтобы отправить получившийся чертеж в Window.

Обратите внимание, что Pixmap стоит на стороне сервера, как Window, поэтому последняя операция копирования выполняется локально для сервера.

0 голосов
/ 05 августа 2020

Существует X Double Buffer Extension: https://www.x.org/releases/X11R7.6/doc/libXext/dbelib.html

Double Buffer Extension (DBE) предоставляет стандартный способ использования двойной буферизации в рамках X Window System.

Протокол: https://www.x.org/releases/X11R7.7/doc/xextproto/dbe.html

Никогда не видел, чтобы это использовалось на практике. Дай мне знать, если у тебя получится.

...