Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.02.2015, 22:29
Кандидат Javascript-наук
Отправить личное сообщение для FanAizu Посмотреть профиль Найти все сообщения от FanAizu
 
Регистрация: 08.03.2011
Сообщений: 148

Сохранение символа и его вывод на экран, вся цепочка процесса
Сколько не читаю статьи, никак не могу "въехать", я опишу, как вижу "мир", а вы, пожалуйста, напишите, где неправильно и как правильно. Большое вам спасибо!

Я открываю текстовый редактор, нажимаю клавишу на клавиатуре. Контроллер клавиатуры отправляет процессору код нажатой клавиши. Операционная система
передает этот код в текстовый редактор. Текстовый редактор определяет какая кодировка выбрана в операционной системе. Далее коду нажатой клавиши сопоставляется
значение символа в текущей кодировке операционной системы. Например, код клавиши - 100, в кодировке windows-1251 он соответствует двоичному коду 00010100. Далее
текстовый редактор обращается к операционной системе, чтобы та отобразила этот самый символ с кодом 00010100. Операционная система смотрит какой выбран шрифт,
открывает файл шрифта, внутри же файла шрифта также имеется своя внутренняя кодировка, в которой код символа соотносится с глифом(изображением). Это изображение
и выводится на экран.
Чёрт, ну вот бесит, что нигде не нашел подробное описание того процесса, который я описал, только так как есть на самом деле. Помоги, пожалуйста, дайте ссылку, если
знаете, где прочесть подробно про этот процесс ввода символа, его сохранение с использованием кодировок, а далее вывод на экран с использованием файлов шрифтов, или расскажите
своими словами, если вам не в тяготу. Очень буду благодарен, уже устал, ну фиг где есть нормальная информация...
Ответить с цитированием
  #2 (permalink)  
Старый 21.03.2015, 01:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Нет не так.
Контроллер клавиатуры возвращает не код нажатой клавиши, а код определяющий нажатую клавишу в наборе, так называемый скан-код. Код же символа соответствующий нажатой клавише формируется драйвером устройства.
У файлов шрифтов нет никакой внутренней кодировки, эти файлы описывают представление символа на экране, при этом есть растровые описания и векторные (ttf-шрифт).
Код символа плюс кодовая страница набора (то что определяет язык ввода), это адрес в файле шрифта, по которому и находится матрица описываемая этот символ, то есть задается обычное смещение.
Текстовый редактор ничего не спрашивает у ОС по поводу отображения и вывода символа на экран. Все это производится драйверами, работа которых базируется на получении/перехватах соответствующих прерываний как аппаратных так и программных.
В итоге описание этого символа попадает в графическую карту и рисуется на экране. А текстовый редактор занят глобальными задачами - хранить позицию символа на экране, каким стилем его написать и т.п. Если бы он контролировал весь процесс от нажатия клавиши до отображения на экране, то скорость "печатания" в редакторе была бы один символ в минуту.

Вкратце так, а полностью весь процесс очень сложный.

Последний раз редактировалось laimas, 21.03.2015 в 02:02.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск