opengl-es - 检查是否启用了 GLSL 扩展?
问题描述
有什么方法可以检查是否启用了 GLSL 扩展?也就是说,#extension <extname> : enable
在当前编译单元中的代码块之前的某个地方有一个指令:
#extension GL_OES_standard_derivatives : enable
像这样的东西:
#if extension_enabled( GL_OES_standard_derivatives )
// do stuff with fwidth()
#else
#error Code won't work without GL_OES_standard_derivatives!
#endif
解决方案
每个具有 GLSL 语言对应项的 OpenGL 扩展(即:可以进入#extension
声明的内容)都包含一个用于该扩展名的名称,如果该扩展名已启用,则#define
该名称将被设置为。1
例如,ARB_shader_image_size 扩展是针对 GLSL 的,因此如果在着色器中成功启用扩展,GL_ARB_shader_image_size
则#define
d 为1
.
所以你可以用它#ifdef GL_ARB_shader_image_size
来封装需要扩展的代码。
推荐阅读
- json - 结合 JSON 解码管道,在运行时响应可以是数组或对象
- python - HTML 解析 div.p.ol 在 Python 中返回空白
- postgresql - Cloud SQL Postgres - 管理数据库用户,最佳实践?
- python - 如何将带有字符串列表的行转换为多列
- python - 熊猫不删除重复项
- python - 预定从多个 URL 下载文件
- regex - 在文件的第三部分中查找一个单词
- c++ - c++ protobuf oneof 反序列化
- html - ESP8266 ESPAsyncWebServer 不会在回调中切换 GPIO
- python - 如何使用 NEAT(增强拓扑的神经进化)进化 LSTM 模型?