Metal 着色语言编程指南 二
来源:互联网 发布:北京装修多少钱 知乎 编辑:程序博客网 时间:2024/05/21 01:44
Metal and C++11
Metal Shading 语言是基于C++11的标准[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3690.pdf]设计的, 在这个基础之上增加了一些扩展和限制. 这些具体可以参考详细的语法描述. 本文会简单介绍Metal对C++11所做的一些修改和限制.
重载(Overloading)
Metal Shading 语言支持C++11 section 13中所定义的重载, 除此之外, 还可以支持函数参数地址空间限定描述符(qualifier)的重载. 但是Graphic 和 Kernel函数不允许被重载。 (关于Qualifier 和 Graphics, Kernel函数等, 请参看Function Qualifiers 章节,会在以后译出)
模板(Templates)
Metal Shading 语言可以支持C++11 Section 14 所定义的模板语法。
预处理指令 (Preprocessor Directives)
Metal Shading 语言可以支持 C++11 Section16 所定义的预处理指令的语法。
限制
下面的C++11的特性不被Metal Shading 语言所支持:
Lambda 表达式
函数的递归调用
dynamic_cast 操作
类型推断 (type identification)
new 和 delete 操作
noexpect 操作
goto 语法
register, thread_local 存储修饰符
虚函数
类继承
异常捕获和处理
不能使用C++标准库, Metal Shading 会提供Metal所特有的标准库。
另外, Metal Shading 语言对指针的使用也有严格限制, Graphics 和 Kernel函数中的指针参数必须使用 device, threadgoupd, 或者 constant 等地址空间修饰符, 函数指针在Metal Shading 中是不支持的。
Metal 函数不能声明为main.
Metal Pixel Coordinate System
Metal Shading 语言是基于C++11的标准[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3690.pdf]设计的, 在这个基础之上增加了一些扩展和限制. 这些具体可以参考详细的语法描述. 本文会简单介绍Metal对C++11所做的一些修改和限制.
重载(Overloading)
Metal Shading 语言支持C++11 section 13中所定义的重载, 除此之外, 还可以支持函数参数地址空间限定描述符(qualifier)的重载. 但是Graphic 和 Kernel函数不允许被重载。 (关于Qualifier 和 Graphics, Kernel函数等, 请参看Function Qualifiers 章节,会在以后译出)
模板(Templates)
Metal Shading 语言可以支持C++11 Section 14 所定义的模板语法。
预处理指令 (Preprocessor Directives)
Metal Shading 语言可以支持 C++11 Section16 所定义的预处理指令的语法。
限制
下面的C++11的特性不被Metal Shading 语言所支持:
Lambda 表达式
函数的递归调用
dynamic_cast 操作
类型推断 (type identification)
new 和 delete 操作
noexpect 操作
goto 语法
register, thread_local 存储修饰符
虚函数
类继承
异常捕获和处理
不能使用C++标准库, Metal Shading 会提供Metal所特有的标准库。
另外, Metal Shading 语言对指针的使用也有严格限制, Graphics 和 Kernel函数中的指针参数必须使用 device, threadgoupd, 或者 constant 等地址空间修饰符, 函数指针在Metal Shading 中是不支持的。
Metal 函数不能声明为main.
Metal Pixel Coordinate System
在Metal 中, 纹理或者Framebuffer 像素坐标系是基于左上角的 (top-left corner)
本文译自: https://developer.apple.com/library/ios/documentation/Metal/Reference/MetalShadingLanguageGuide/cplusplus/cplusplus.html#//apple_ref/doc/uid/TP40014364-CH8-SW1
3 0
- Metal 着色语言编程指南 二二
- Metal 着色语言编程指南 二
- Metal 着色语言编程指南 二十
- Metal 着色语言编程指南 二一
- Metal 着色语言编程指南 二三
- Metal 着色语言编程指南 二四
- Metal着色语言编程指南 二五
- Metal 着色语言编程指南 二六
- Metal 着色语言编程指南 一
- Metal 着色语言编程指南 三
- Metal 着色语言编程指南 四
- Metal 着色语言编程指南 五
- Metal 着色语言编程指南 六
- Metal 着色语言编程指南 七
- Metal 着色语言编程指南 八
- Metal 着色语言编程指南 九
- Metal 着色语言编程指南 十
- Metal 着色语言编程指南 十一
- 深入了解Handler消息机制(一)
- 手势监测器的使用
- 全球地形起伏模型ETOPO1
- MySQL基础七:自定义函数
- Django1.8将Debug设置为False时访问不到图片和静态文件方法
- Metal 着色语言编程指南 二
- Android面试题--布局
- 数据结构实验之求二叉树后序遍历和层次遍历
- (3)Java设计模式-单例模式(Singleton)
- Leetcode no. 81
- Storm错误集
- ListView与Checkbox
- hdu 5439 Aggregated Counting(长春网络赛——找规律+二分)
- mybatis实战教程(mybatis in action),mybatis入门到精通