CGMetal 是一个适用于 iOS 的GPU加速Metal处理库
SDK 的 Github 地址:https://github.com/cgeffect/CGMetal
CGMetal: iOS动态framework
CGMetalMac: Mac动态framework
MetaliOS: 集成CGMetal动态framework的iOS工程
MetalMac: 集成CGMetalMac动态framework的Mac工程
- CGMetalImageInput(图片)
- CGMetalPixelBufferInput(CVPixelBufferRef)
support: NV12/32BGRA - CGMetalRawDataInput(二进制数据)
support: NV12/NV12/BGRA/RGBA/I420 - CGMetalTextureInput(纹理输入, Metal纹理)
- CGMetalVideoInput(本地视频输入, 重编码)
- CGMetalCameraInput(相机输入)
- CGMetalPlayerInput(视频输入, 播放)
- CGMetalImageOutput(图片)
- CGMetalPixelBufferOutput(CVPxielBufferRef)
- CGMetalRawDataOutput(二进制数据)
- CGMetalTextureOutput(纹理输入, Metal纹理)
- CGMetalVideoOutput(视频)
- CGMetalNSViewOutput(Mac渲染)
- CGMetalUIViewOutput(iOS渲染)
- CGMetalCALayerOutput(iOS/Mac渲染)
- CGMetalPixelBufferSurfaceOutput(CVPxielBufferRef)
UIImage *sourceImage = [UIImage imageNamed:@"rgba"];
CGMetalImageInput *inputSource = [[CGMetalImageInput alloc] initWithImage:sourceImage];
CGMetalBasic *basic = [[CGMetalBasic alloc] init];
CGMetalViewOutput * metalView = [[CGMetalViewOutput alloc] initWithFrame:frame];
[inputSource addTarget:basic];
[basic addTarget:metalView];
[inputSource requestRender];
CGMetalGlitch 毛刺
CGMetalColour 着色
CGMetalGray 灰度
CGMetalShake 色彩偏移
CGMetalSoul 灵魂出窍
CGMetalCrop 裁剪
CGMetalFlipX X轴反转
CGMetalFlipY Y轴反转
CGMetalProjection 透视
CGMetalRotate Z轴旋转
CGMetalTranslation XY平移
CGMetalZoom 缩放
CGMetalWobble 晃动
continue...
模拟器不支持fast texture upload, 使用真机运行 iOS10以上, Xcode 13及其以上
Metal
Using Metal to Draw a View’s Contents
Processing a Texture in a Compute Function
Synchronizing CPU and GPU Work
Performing Calculations on a GPU