Отвечу в меру своего понимания о выводе графики на экран.
В основе работы с графикой лежит работа с растром (матрицей) на низком уровне. Векторная графика реализуется на программном уровне, выше растрового, в виде библиотек. Та же OpenVG, допустим, которая реализует векторную графику в виде инструкций на OpenGL.
В ДОС'е в текстовом режиме (80х25, 80х43) всё выводилось растровыми шрифтами, которые покрывали диапазон 256 знаков таблицы
ASCII.
KOI8-R содержит знаки псевдографики среди прочих. Этой псевдографикой пользовались для рисования таблиц, оформления окон и прочих вещей типа эффекта "тени" от окна.
Каждый знак - это битовый набор пикселей: горит - не горит. В ДОС'е шрифты были, помню, фиксированных размеров 8x8, 8x16 и загружались в память при загрузке ОС.
Как выводить знак на экран: накладывать маску AND в определённой позиции знака.
Как что-либо выводить на экран: работать через прерывания в ДОС'е или с помощью драйверов видео. Поскольку ОС и драйвера (на сей день), как правило, пишутся на Сях, то API также сишный.
Update
Шрифты в современных ОС часто выводятся при помощи библиотек растеризаторов шрифтов наподобие
FreeType. Они по заданному шрифту и тексту выводят маску текста в буфер. А этот буфер уже программно накладывают на фон/текстуру.