Я не уверен, что это единственный возможный способ, но я прочитал, что для того, чтобы поместить один пиксель на экран в выбранном вами месте, нужно что-то записать в место, называемое framebuffer. Поэтому мне стало любопытно, можно ли войти в это место и записать в него что-нибудь, чтобы отобразить один пиксель где-нибудь на экране.
linux
console
graphics
framebuffer
Абдул Аль Хазред
источник
источник
Ответы:
да, вне X-сервера, в tty, попробуйте команду:
если цветные пиксели заполняют экран, то ваши настройки в порядке, и вы можете попробовать поиграть с этим небольшим скриптом:
где функция 'pixel' должна быть ответом ... записать пиксель на экран, изменив байтовые значения (синий-зеленый-красный-альфа) по смещению xy устройства / dev / fbX, которое является буфером кадров для видеокарты.
или попробуйте нарисовать один пиксель лайнера (желтый на x: y = 200: 100, если ширина равна 1024):
ОБНОВЛЕНИЕ: этот код работает даже внутри X-сервера, если мы просто настроим X для использования кадрового буфера . указав fb0 внутри /usr/share/X11/xorg.conf.d/99-fbdev.conf
источник
dd
которые по определенным причинам часто называются «Уничтожение диска» ... не подходите к этим командам, если не знаете, что делаете .../dev/fbX
и это/dev/fd
была просто опечатка. И да,dd
это опасно, но это такrm
. Это не значит, что его не следует использовать. Это просто означает, что его следует использовать с осторожностью./dev/fb0
имеет больше смысла! Все знают, чтоrm
означает, ноdd
немного более неясны, все еще думают, что это должно нести предупреждение здоровья.Я только что отправил это сегодня утром, все еще исследуя, почему это работает только на Малиновом Писе. https://www.raspberrypi.org/forums/viewtopic.php?f=72&t=213964&p=1428891#p1428891
Откройте / dev / fb0, отобразите его так, чтобы вы получили указатель, и это намного быстрее. X вообще не использует X, но с радостью проигнорирует X, это просто что-то на экране.
О, из командной строки вы можете написать в / dev / fb0. Но все, что вы пишете со смещением 0, будет в левом верхнем углу, поэтому оно сразу же прокрутится с экрана. Вы можете сделать цикл for в Bash и написать пару тысяч раз. Или используйте / dev / urandom. Уничтожить то, что находится в буфере экрана, особенно когда вы находитесь в X, это не проблема. Как только вы перетаскиваете окно над областью X, вызывает событие expose и перерисовывает его. Вам не нужно убивать власть, чтобы восстановиться.
источник