Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1

Чем заменить псевдографику?

01.10.2016, 17:33. Показов 1032. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Есть написанный мной драйвер от мыши под Линукс, который передает координаты в userspace со скоростью 10nsec ( согласно LDD3 ). И есть код userspace, в котором курсор вырисовывается в псевдографике, что очень медленно, курсор "тормозит", т.е не успевает соответствовать координатам.

Чем заменить псевдографику так, чтобы курсор изображался в реальном времени? Подскажите, где и в какой области искать решение вопроса.

Буду рад вашей помощи.

Добавлено через 23 часа 20 минут
Пока нашел вот это:

C
1
#define cursor_moveyx(y,x) printf("\033[%d;%dH",y,x)
но курсор не успевает за драйвером мыши по любому, движется рывками. Надо что-то принципиально иное...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.10.2016, 17:33
Ответы с готовыми решениями:

Чем заменить pthread.h в windows?
Здравствуйте! Продолжаю переделывать свой проект. Теперь возник вопрос чем заменить pthread.h из библиотек Linux'a в Windows? Может...

сма DAEWOO DWD M1029A чем заменить транс, трансформатор в обрыве, чем заменить
день добрый. модуль PN:361430A950 первичная транса в обрыве . может кто подскажет параметры , или советом о замене . есть лыжевский на...

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

14
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
01.10.2016, 19:30
Может ioctl терминалов посмотреть - вдруг что-то там будет?
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
01.10.2016, 20:11  [ТС]
В смысле библиотеки curses и ncurses ? Или где именно?
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
02.10.2016, 06:03
Что-то вроде этого поискать http://man7.org/linux/man-page... ctl.4.html

curses, ncurses и libslang - обёртки над прямым доступом к консоли. К тому же они сами используют методы вроде printf("ESC-последовательность").

Можно ещё попробовать "прямую" запись ESC-последовательности через write(). Может проблема как раз в буферизации printf/fprintf - х.з.
1
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
02.10.2016, 15:57
Цитата Сообщение от max_sk Посмотреть сообщение
передает координаты в userspace со скоростью 10nsec
Цитата Сообщение от max_sk Посмотреть сообщение
но курсор не успевает за драйвером мыши по любому
Какой смысл выводить курсор мыши в миллион раз чаще обновления экрана (~1/100c) ?
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
02.10.2016, 20:24  [ТС]
gng, да фиг его знает... Если я правильно понял LDD3, то данные приходят со скоростью 10nsec...

drfaust, спасибо за совет. Завтра посижу над этим...
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
02.10.2016, 20:43
Цитата Сообщение от max_sk Посмотреть сообщение
данные приходят со скоростью 10nsec...
Это не значит, что так же часто курсор надо выводить на экран.
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
02.10.2016, 21:04  [ТС]
gng, логично... А если пока я выводил, мышь сместилась на несколько позиций, то получается рывок на экране?
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
02.10.2016, 21:40
Цитата Сообщение от max_sk Посмотреть сообщение
то получается рывок на экране?
Может быть всё что угодно, зависит от того, как написан драйвер виртуального терминала .
1
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
02.10.2016, 21:49
Даже в графике в X-ах и в винде при быстром движении мышью видны разрывы.

К тому же при быстром выводе на экран, что в графике, что в тексте картинка начинает крайне неприятно мерцать - это уже косяк аппаратуры. Под DOSом можно синхронизироваться по строкам и кадрам, но потеряем скорость отображения - в многозадачных OS это не реально
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
03.10.2016, 12:05  [ТС]
drfaust, на моем уровне задача проще - хочу чтоб курсор визуально реагировал на мышь и вовремя.

После установки библиотеки ncurses, заработало как надо. Но, конечно, по-хорошему надо знать как тоже самое сделать с обычным printf и ESC-последовательностями. Чтобы проект работал не только на моем ноуте...
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
03.10.2016, 14:42
ESC-последовательности свои для каждого типа терминалов (БД termcap для этого и придумана) *curses и slang как раз и пытаются скрыть эти тонкости и сложности.
Конечно есть много общего, но необязательно что проект заработает на другом линухе, а не будет сыпать в консоль необработанные ESC.
1
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
03.10.2016, 15:04
Цитата Сообщение от max_sk Посмотреть сообщение
ем заменить псевдографику так, чтобы курсор изображался в реальном времени? Подскажите, где и в какой области искать решение вопроса.
Вообще железо давно поддерживает аппаратную отрисовку курсора мыши. В соответствующие регистры карты загружается две маски изображения и координаты хотспота. Какие именно регистры зависит от карты. Но начиная с VGA вроде бы были стандартизированны и вроде бы как через какое то из прерываний BIOS эта функция тоже должна быть доступна.
1
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
03.10.2016, 16:11
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
В соответствующие регистры карты загружается две маски изображения и координаты хотспота. Какие именно регистры зависит от карты. Но начиная с VGA вроде бы были стандартизированны и вроде бы как через какое то из прерываний BIOS эта функция тоже должна быть доступна.
Ну-ну. И как это сделать в линухе, например прога должна работать и в xterm и в чистой консоли?
Под DOS - раз плюнуть, но код будет привязан к конкретному железу.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
03.10.2016, 16:30
Цитата Сообщение от drfaust Посмотреть сообщение
Ну-ну. И как это сделать в линухе, например прога должна работать и в xterm и в чистой консоли?
Под DOS - раз плюнуть, но код будет привязан к конкретному железу.
А для того чтобы отвязать существуют драйвера. Соответственно нужно капать спецификацию видеодрайвера.

Добавлено через 3 минуты
Цитата Сообщение от drfaust Посмотреть сообщение
И как это сделать в линухе, например прога должна работать и в xterm и в чистой консоли?
Для аппаратной отрисовки курсора это не важно Курсор фактически является оверлеем который отрисовывается поверх содержимого видеопамяти.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.10.2016, 16:30
Помогаю со студенческими работами здесь

Чем можно заменить заменить toggle() ?
Добрый день, у меня такой вопрос. Чем можно заменить toggle(function(), function()); В ранних версиях toggle можно было использовать как...

Вывод структуры через псевдографику
Можно ли через объект cout задавать количество выводимых символов(не чисел после запятой). Если сравнивать с функцией printf, то там это...

Весь русский текст превратился в псевдографику
Здравствуйте! У меня сама страничка на HtML и в ней небольшая вставка на РНР.... Так вот после того, как я вставил РНР весь русский...

Вывести в консоль и псевдографику и русский текст вместе
подскажите пожалуйста как в консоль вывести и псевдографику и русский текст вместе???

Чем заменить?
Чем заменить кондеры 100n в программатор на FT232RL? Ибо в трёх нигазах таких кондеров нет в любом смд корпусе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru