Windows和macOS不用说,GUI已经被打包在系统中,而Linux的界面目前必需使用X-Server,当然这些已经被隐藏在了桌面系统的背后,应用程序开发无需担心。
也就是说,想要学习图形桌面开发,就必须要学习某一特定平台的系统API,这足矣开发出能够正常与用户交互的图形界面。
再来看看游戏等复杂图形软件的开发,这就需要掌握图形学的基础,也就是各种变换,这就涉及线性代数和微分几何,或者分形几何等等,需要更高的数学基础才能进行,当然也可使用现有的引擎来构建这种应用,但想进阶,这些必不可少。再次基础上,就是对一些图形接口的学习,比如opengl,directx等,会一个就可以,都是大同小异的。
再说桌面开发,目前存在很多跨平台的桌面应用框架,比如Qt,wxwidget等,这可以减轻对众多系统的众多API的学习负担