首先惭愧的说玩过不少游戏,但是对 OpenGL 却知之甚少。今天机缘巧合了解了一下,引发了一些疑问,如下:
1. OpenGL 是一种 API 编程接口,但这个接口是规范在哪一层,应用层?驱动层?甚至是一种硬件规范?
2. OpenGL 定义了一种着色器语言,这是一种解释型语言 /还是编译型语言?是跑在 CPU 上还是直接跑在 GPU 上?
3. Linux 上万物皆文件。显卡上有多个 GPU 核心和显存,那么它在 Linux 系统上暴露出来的是不是一系列的字符设备 /块设备?
4. 多任务在 CPU 上工作时,系统提供了进程上下文切换。那么开多个窗口跑多个游戏,是不是也有显卡的上下切换,这是操作系统提供的?什么机制?
或者有什么书籍可以解释这些,帮忙推荐一下,谢谢!
1. OpenGL 是一种 API 编程接口,但这个接口是规范在哪一层,应用层?驱动层?甚至是一种硬件规范?
2. OpenGL 定义了一种着色器语言,这是一种解释型语言 /还是编译型语言?是跑在 CPU 上还是直接跑在 GPU 上?
3. Linux 上万物皆文件。显卡上有多个 GPU 核心和显存,那么它在 Linux 系统上暴露出来的是不是一系列的字符设备 /块设备?
4. 多任务在 CPU 上工作时,系统提供了进程上下文切换。那么开多个窗口跑多个游戏,是不是也有显卡的上下切换,这是操作系统提供的?什么机制?
或者有什么书籍可以解释这些,帮忙推荐一下,谢谢!