旅游网站建设可行性分析,安装网站模板,如何打开网站网页,六安网站建设报价方案参考#xff1a; glProgramBinary - OpenGL 4 Reference Pages
opengl 通过gpu编译好的 shader 可以存储到二进制文件中#xff0c;第二次使用的时候直接加载二进制文件即可#xff0c; glProgramBinary用于加载shader的二进制数据
实列代码如下#xff1a;
// 假设已经…参考 glProgramBinary - OpenGL 4 Reference Pages
opengl 通过gpu编译好的 shader 可以存储到二进制文件中第二次使用的时候直接加载二进制文件即可 glProgramBinary用于加载shader的二进制数据
实列代码如下
// 假设已经有一个编译好的着色器程序对象 program// 获取二进制数据
GLint binaryLength 0;
GLenum binaryFormat 0;
glGetProgramBinary(program, 0, binaryLength, binaryFormat, NULL);
GLubyte *binary (GLubyte *)malloc(binaryLength);
glGetProgramBinary(program, binaryLength, binaryLength, binaryFormat, binary);// 保存二进制数据到文件例如
save_to_file(shader.bin, binary, binaryLength);
free(binary);// 后续启动时加载二进制数据
GLuint newProgram glCreateProgram();
load_from_file(shader.bin, binary, binaryLength);
glProgramBinary(newProgram, binaryFormat, binary, binaryLength);
free(binary);// 验证加载是否成功
GLint linkStatus GL_FALSE;
glGetProgramiv(newProgram, GL_LINK_STATUS, linkStatus);
if (linkStatus GL_FALSE) {// 处理错误
}