Идея аппаратного ускорения на самом деле завоевала популярность только во времена Windows. Поэтому большинство видеокарт работали в режимах, которые представляли собой просто большие массивы памяти, сопоставленные с определенными диапазонами адресов. Таким образом, вы будете вставлять цифры в определенные места, и это приведет к соответствующим изменениям пикселей.
Операция в стиле
A setPixel
часто должна считывать информацию с графической карты, чтобы маскировать информацию, чтобы убедиться, что она разрушает только один пиксель. Это было намного быстрее, чтобы заполнить диапазоны смежных пикселей вместе, чтобы избежать цикла чтения / маски / записи. Печально известный «режим 13h» на VGA-картах был особенно удобен, потому что каждый байт соответствовал независимому 256-цветному пикселю:
http://en.wikipedia.org/wiki/Mode_13h
Было несколько разных библиотек, в основном проприетарных, в которых реализованы быстрые алгоритмы рисования линий или кругов, которые будут работать в разных графических режимах. Например, были GX Graphics от Genus Microprogramming и Fastgraph Теда Грубера (который, очевидно, все еще существует сегодня). По сегодняшним меркам это не было чем-то необычным, но, безусловно, с точки зрения производительности оно не могло сравниться с графическим интерфейсом Borland .
Эти библиотеки продавались за сотни долларов в журналах по программированию того времени. Идеи той эпохи, как правило, были гораздо более скрытными, чем хотелось бы новому поколению программистов ... это означает, что даже если вы купили одну из этих библиотек, вы, вероятно, не получили исходный код, если не заплатили еще больше. И, конечно же, игровые компании не хотели, чтобы конкуренты знали, что они использовали или сколько они разработали собственными силами.
Поздно в дни DOS появление библиотек ModeX ознаменовало некоторые новые недокументированные режимы видео и интересные трюки (например, «скомпилированные растровые изображения»). Они часто были с открытым исходным кодом и распространялись через Интернет людьми на демосцене:
http://www.ascotti.org/programming/modex.htm