use*_*972 6 c++ shader metal metalkit
我正在观看Apple关于Metal和MetalKit的介绍视频.
着色器的示例代码具有这些双括号,如[[buffer(0)]]参数.为什么有两个括号?这是否意味着什么,或者只是表明关键字"缓冲区"跟随?标准c ++中没有这样的构造,有吗?
vertex Vertex vertex_func(constant Vertex *vertices [[buffer(0)]],
constant Uniforms &uniforms [[buffer(1)]],
uint vid [[vertex_id]])
Run Code Online (Sandbox Code Playgroud)
还有什么是一个好的1或2周有趣的项目作为GP-GPU的介绍?对于具有良好数学技能但没有艺术技能的新手来说,这是可以管理的.
这些被称为属性,它们的语法和行为在C++标准的7.6.1节,属性语法和语义中定义.它们在语法中看起来像这样:
attribute-specifier:
[ [ attribute-list ] ]
alignment-specifier
Run Code Online (Sandbox Code Playgroud)
Metal着色语言定义了许多属性,允许您将各种语义与变量,struct/ class成员和函数参数(包括您的问题中的参数表绑定)相关联.
该金属着色语言规范推迟到C++这个标准,所以C++标准确实是咨询参考:
Metal编程语言基于C++ 14规范(又名,ISO/IEC JTC1/SC22/WG21 N4431语言规范),具有特定的扩展和限制.有关语言语法的详细说明,请参阅C++ 14规范.
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |