Косвенный рендеринг означает, что протокол GLX будет использоваться для передачи команд OpenGL, и X.org сделает реальный рисунок.
Прямой рендеринг означает, что приложение может получить доступ к аппаратным средствам непосредственно без связи с X.org сначала через мезаструктуру.
Прямой рендеринг быстрее, поскольку он не требует изменения контекста в процесс X.org.
Разъяснение: В обоих случаях рендеринг сделан GPU (или технически - может быть сделан GPU). Однако в косвенном рендеринге процесса похож:
В прямом рендеринге
Обратите внимание на то, что, потому что OpenGL был разработан таким способом, который может работать по сети, косвенный рендеринг быстрее, затем был бы наивная реализация архитектуры т.е. позволяет отправлять буч команд сразу. Однако существуют немного служебные с точки зрения процессорного времени, проведенного для протокола обработки и контекстных переключений.
Этот поток при неблокировании ввода-вывода в ударе мог бы помочь.
Это предлагает использовать stty
и dd
.
Или Вы могли использовать bash
read
встроенный с -t 0
опция.
# do your stuff
# discard rest of input before exiting
while read -t 0 notused; do
read input
echo "ignoring $input"
done
Если Вы только хотите сделать это, если пользователь на терминале, попробуйте это:
# if we are at a terminal, discard rest of input before exiting
if test -t 0; then
while read -t 0 notused; do
read input
echo "ignoring $input"
done
fi
Это тот -лайнер, на котором я остановился, похожий на те, что здесь:
while read -t 1 discard; do echo "ignoring input..."; done # Flush input
while read -e -t 1; do : ; done
. Это, казалось, было достаточно для того, в чем я нуждался. – Zoredache 11.02.2011, 09:42