Графика на чистом c++?

360
10 июня 2017, 15:56

Когда пишется ОС припиливают API. С помощью Win32 API можно создавать оконные приложения. Но ведь когда у них не было никакого API они могли что-то нарисовать на экране, а затем собрать в кучу и делать оконные приложения. Как собственно средством только ЯП сделать окно, например или что-то нарисовать? Как это делали создатели ОС?

Answer 1

Можно рисовать на фреймбуфере(fbdev) или напрямую в видеокарту (dri).

Очень длинная статья по теме: http://betteros.org/tut/graphics1.php

В современных компютерах можно написать графику шейдерами и выводить на тот же фреймбуфер.

В противовес АПИ и фреймворкам, такой вывод популярен на встраиваемых системах и тонких клиентах.

Рекомендую посмотреть на Yocto. Там собирается очень минимальный Линукс и есть шаблоны для сборки разных библиотек для работы на низком уровне.

Answer 2

средством только ЯП не получится. еще понадобится окружение, в котором ЯП будет работать. ОС по сути и есть это окружение. Без ОС - как минимум вам нужен будет загрузчик, который включит устройства ввода-вывода (клавиатура, мышь, видеокарта и дисплей), и устройство, с которого загрузиться ваша программа — (дисковод, жесткий диск, CD-ROM, флэшка или сетевуха), найдет вашу программу на одном из устройств и передаст её управление. После чего вы сможете рисовать, т.к. загрузчик, образно говоря, передаст вам вместе с управлением драйвер видеокарты в качестве модуля для вашей программы. Можете поставить себе виртуальную машину и поэкспериментировать с этим

READ ALSO
Ввод массива используя функции

Ввод массива используя функции

День добрыйИмеются функции

271
Регулярные выражения в Qt5

Регулярные выражения в Qt5

Помогите пожалуйста записать регулярное выражение, которое «извлекает» из строки следующее выражение: «photoЦИФРЫ_ЦИФРЫ»Необходимо получить...

238
Вопросы по ссылкам в C++

Вопросы по ссылкам в C++

1То что ссылку нельзя инициализировать значением вместо другой переменной это понятно и логично, но как получается что если указать ссылку...

284