В чем главное различие между Windows API, DirectX и OpenGL?
Вопрос должен звучать как:
"В чем главное различие между GDI/GDI+, DirectX и OpenGL?"
Windows API - это не только GDI и GDI+, но еще и GUI, файловая система сеть, короче, полноценное низкоуровневое (для XXI века) API ОСи, на котором так или иначе написаны все программы. И вроде это и из названия понятно, не?
GDI/GDI+ изначально предназначены не для игр, а для отрисовки GUI, который в те старо-добрые времена не ассоциировался с такой кучей свистелок и перделок, как сейчас. Потому он и не заточен под сложную графику, и навороты GDI+ это потолок возможностей графики для GUI. у DirectX так же? Но почему она тогда не является кроссплатформенной?
Ну, хотя бы потому, что скомпилирован в формат dll, который на линуксе, маке, андроиде, айосе - не пойдет. На андроиде еще и архитектуру надо другую. А исходников нет - проприетарный - поэтому не пересобрать.
Дизассемблирование - это незаконно + сложно и тяжело технически, со мной бы такая работа в 6-7-8-значную сумму вылилась (в рублях), и времени заняло месяцы... ))) На эти деньги можно было бы игровой движок какой-никакой сделать, или еще что-нибудь приличное, и продавать его, вместо того, чтобы портировать DirectX "чтобы было".
DirectX - проприетарное решение от микрософта, работающее только на windows. Кроме графики также обеспечивает работу с сетью, устройствами ввода (в том числе и с обратной связью) и звуком.
OpenGL - кроссплатформенное решение, работает только с графикой.
WinAPI (GDI) - решение для написания прикладного ПО, не предназначено для работы с серьезной графикой и явного использования ускорителя.