Какой метод поворачивает экран в Xserver

Я хотел бы знать код функции/исходный_файл, который поворачивает экран на 90/180/270 градусов с помощью инструмента xrandr?

xrandr -o левый xrandr -o правый xrandr -o инвертированный xrandr -o обычный

Какая функция вызывает поворот экрана в Xserver с помощью вышеуказанных команд?

С уважением, Левон


person deimus    schedule 15.10.2010    source источник


Ответы (3)


Есть два разных расширения X, которые управляют внутренним поворотом окон. Самым простым является RANDR, и его исходный код находится в каталоге randr верхнего уровня исходного кода X-сервера.

Расширение MODES, которое обеспечивает поддержку многоголовых устройств и предоставляет выходы и CRTC, которые вы видите в списке результатов вызова xrandr, является вторым расширением, которое работает с вращающимися окнами. MODES можно найти в подкаталоге hw/xfree86/modes исходного кода X-сервера.

Если X-драйвер использует RANDR напрямую, он должен предоставлять ряд функций, позволяющих RANDR вращать и отображать окна. Если вы используете MODES, то он устанавливает себя как слой между RANDR и вашим драйвером, и вы должны предоставить MODES более ограниченный набор функций, и он выполняет большую часть работы.

Тем не менее, мне еще предстоит заставить MODES поворачивать окно в драйвере X, который я пишу, вероятно, потому, что и RANDR, и MODES практически не документированы, и далеко не ясно, каковы их модели обработки изображений.

person swestrup    schedule 24.06.2011

Одна из функций в /usr/include/X11/extensions/Xrandr.h — вероятно, XRRSetScreenConfig — использует расширение RANDR, чтобы попросить сервер настроить кучу вещей, включая вращение. Это то, что будет использовать инструмент командной строки xrandr.

Если вы спрашиваете, что на самом деле работает, это более сложный вопрос — X-сервер, если он поддерживает расширение RANDR, может использовать общий код, хотя, скорее всего, он использует очень специфичный для чипсета код для выполнения фактической работы. при рендеринге кадра...

person eichin    schedule 08.01.2011

Вы должны проверить

xrandr --output --rotate left

если это не работает, возможно, ваш драйвер X не поддерживает вращение или он отключен. Пытаться

Option         "RandRRotation" "True"

в разделе Экран файл /etc/X11/xorg.conf

person maxrodrigo    schedule 17.02.2011