Мне интересно узнать о различных уровнях абстракции, доступных для создания графических приложений.
Я вижу много терминов, брошенных вокруг: на самом высоком уровне абстракции я слышу о таких вещах, как С#,.NET, pyglet и pygame. Далее я слышу о DirectX и OpenGL. Затем есть DirectDraw, SDL, Win32 API и другие многоплатформенные библиотеки, такие как WxWidgets.
Как я могу получить хорошее представление о том, где заканчивается один из этих слоев и где начинается следующий? Каков способ "минимально возможного уровня" создания окна в Windows, в C? Как насчет С++? (Образец кода будет божественным.) А как насчет X11? Являются ли версии Windows OpenGL и DirectX, построенные поверх API Win32? Где я могу начать узнавать об этих вещах?
Предлагается другой вопрос о SO, где Программирование Windows. Что относительно Linux? Существует ли такая эквивалентная книга?
Я знаю, что это очень низкоуровневый, и есть много удобных инструментов, но мне хотелось бы хотя бы узнать основы того, что происходит под поверхностью. Столько, сколько я хотел бы начать вышивать окна и векторы сразу с места в карьер, начиная с чего-то вроде pygame, для меня слишком высокий уровень; Мне действительно нужно сделать полную концептуальную схему того, как вы рисуете материал на компьютере.
Я, безусловно, буду признателен за предложения по книгам и ресурсам, но я думаю, что было бы здорово здорово, если бы ответы на этот вопрос заполнились множеством разных способов добраться до "Hello world" с различными подходами к графическому программированию. C? С++? Использование OpenGL? Использование DirectX? В Windows XP? На Ubuntu? Может быть, я прошу слишком много.