我一直在谷歌搜索OpenGL二进制格式以及它们实际上是什么意思.到目前为止,我没有取得多大成功.我知道我可以获取如下数字和格式集:
::glGetIntegerv(GL_PROGRAM_BINARY_FORMATS, &values[0]);
Run Code Online (Sandbox Code Playgroud)
,其中values是一个大小为整数的std :: vector:
::glGetIntegerv(GL_NUM_PROGRAM_BINARY_FORMATS, &value);
Run Code Online (Sandbox Code Playgroud)
对于我机器中的驱动程序,这将返回单个二进制格式.这只是一个数字而对我来说毫无意义.
所以我的问题如下:
(1)格式数/代码代表什么?(2)是否有标准的ARB二进制格式,或者它们是否都依赖于供应商?(3)供应商之间是否存在通用格式?(4)如果有多种格式,你应该如何在它们之间做出选择?
我有一种模糊的感觉,我必须在给定的机器上预编译和缓存着色器才能利用这一点.我的意思是它不像DX那样,你可以将着色器编译器作为后期构建事件运行并将它们打包在一起并在任何带有D3D的(Windows)机器上使用它们.