Рендеринг увеличенного рабочего стола программно

Фон

Я разрабатываю приложение для настольных компьютеров, которое нуждается в программном увеличении текущего рабочего стола. Он должен отображать только увеличенную площадь.

Используемый язык — C ++, и в настоящее время я использую Ubuntu, но в будущем он будет работать для других платформ.

Текущий подход

Для текущего подхода используется окно рендеринга (RW). Для каждой итерации рендеринга она сначала минимизируется, и изображение рабочего стола получается (скриншот) с помощью XGetImage (X11):

XImage *image = XGetImage(xDisplay, RootWindow(xDisplay, DefaultScreen(xDisplay)), 0, 0, screenWidth, screenHeight, AllPlanes, ZPixmap);

Затем изображение обрабатывается для обеспечения области масштабирования, а RW максимизируется и визуализируется.

Этот подход, даже без обработки масштабирования, занимает много времени из-за процессов минимизации и максимизации и не позволяет выполнять в реальном времени.

Вопрос

Как можно отобразить увеличенную версию текущего рабочего стола в реальном времени?

Библиотеки масштабирования могут быть предложены, но они должны быть эффективными, то есть не должны занимать много времени при обработке и обеспечивать полное управление областью масштабирования с помощью кода, то есть НЕ Требуется мышь / клавиатура.

Особые заметки

Поскольку основное внимание в этом приложении уделяется совместимости с Linux, ответы на вопросы о Windows будут оценены (например, инструкции по Magnification-API), но не будут приняты как правильный ответ.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]