当前位置: 首页 > news >正文

[cg] glProgramBinary

参考: 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) {// 处理错误
}

http://www.lryc.cn/news/523922.html

相关文章:

  • LeetCode hot 力扣热题100 二叉树的最大深度
  • 速通Docker === 网络
  • 【MySQL — 数据库基础】深入解析MySQL常用数据类型
  • Linux高级--3.3.1 C++ spdlog 开源异步日志方案
  • 电梯系统的UML文档05
  • 如何使 LLaMA-Factory 支持 google/gemma-2-2b-jpn-it 的微调
  • MySQL中日期和时间戳的转换:字符到DATE和TIMESTAMP的相互转换
  • HarmonyOS NEXT开发进阶(十):UIAbility 组件交互
  • 深入探索Math.NET:开启高效数值计算之旅
  • AI编程工具横向评测--Cloudstudio塑造完全态的jupyter notebook助力数据分析应用开发
  • 【2024 CSDN博客之星】技术洞察类:从DeepSeek-V3的成功,看MoE混合专家网络对深度学习算法领域的影响(MoE代码级实战)
  • Linux——入门基本指令汇总
  • 54,【4】BUUCTF WEB GYCTF2020Ezsqli
  • 【Leetcode 热题 100】45. 跳跃游戏 II
  • C/C++ 时间复杂度(On)
  • 【STM32-学习笔记-10-】BKP备份寄存器+时间戳
  • React 中hooks之 React.memo 和 useMemo用法总结
  • 日志收集Day001
  • 机器人“大脑+小脑”范式:算力魔方赋能智能自主导航
  • python程序跑起来后,然后引用的数据文件发生了更新,python读取的数据会发生变化吗
  • VSCode最新离线插件拓展下载方式
  • 算法题目总结-栈和队列
  • IO进程----进程
  • 【机器学习实战高阶】基于深度学习的图像分割
  • 「免填邀请码」赋能各类APP,提升转化率与用户体验
  • 基于海思soc的智能产品开发(视频的后续开发)
  • 创建 pdf 合同模板
  • 2024 年度学习总结
  • CSS笔记基础篇02——浮动、标准流、定位、CSS精灵、字体图标
  • C++ 面向对象(继承)