Графическое программирование изначально зависит от платформы.Допустим, ради аргумента, было только две операционные системы: linux и windows.Вы можете использовать специфичные для платформы функции на обеих из них, чтобы создавать окна и рисовать что-то.Для вашего приложения быть «независимым от платформы» в этом контексте означало бы определять, на какой ОС вы работаете (скажем, с помощью определения препроцессора во время компиляции), и использовать различные системные вызовы, основанные на этом.Однако, это становится действительно грязным, очень быстрым.
Это становится еще хуже, когда вы говорите о 3D (или 2D с аппаратным ускорением), потому что разные видеокарты снова ведут себя по-разному.Итак, опять же, даже если бы было только две видеокарты (плюс две операционные системы), вы уже находитесь в четырех разных случаях для одной и той же базовой операции, скажем, рисования круга внутри окна.
Вы можете это сделать?
Технически, да.Но графические библиотеки существуют именно потому, что большинство людей этого не хотят.
Что бы я лично порекомендовал, если вы не хотите сильно полагаться на сторонние библиотеки, это использовать OpenGL.Да, это библиотека, но она предустановлена на большинстве систем.
Если вы действительно хотите создать свою собственную независимую от платформы графическую библиотеку, я бы посоветовал сначала освоиться с существующими, просто чтобы почувствоватьза то, что вовлечено в создание чего-то подобного.