着色器加载和编译

glCreateShader 创建的着色器对象不会做太多。它们包含单个阶段的已编译代码,但它们甚至不必包含该阶段的完整编译代码。在许多方面,它们的工作方式类似于 C 和 C++目标文件。

程序对象包含最终的链接程序。但他们也掌握了该计划统一价值的状态,以及其他一些状态数据。它们具有用于内省着色器界面数据的 API(尽管它在 GL 4.3 中变得全面)。程序对象定义了渲染时使用的着色器代码。

除非你打算使用它们来链接其他程序,否则不再需要用于链接程序的着色器对象。