在上一章已经说过,GPUImageInput 是一个协议,实现这个协议的对象则可以接受纹理,然后可以把纹理直接显示出来,或者处理纹理再传给下一个target。
GPUImageInput 协议的方法如下所示
@protocol GPUImageInput <NSObject>
// 准备进行下一帧的渲染
- (void)newFrameReadyAtTime:(CMTime)frameTime atIndex:(NSInteger)textureIndex;
// 外界调用的方法,给对象设置Framebuffer和纹理的索引
- (void)setInputFramebuffer:(GPUImageFramebuffer *)newInputFramebuffer atIndex:(NSInteger)textureIndex;
// 下一个纹理的索引
- (NSInteger)nextAvailableTextureIndex;
// 根据纹理索引,设置size
- (void)setInputSize:(CGSize)newSize atIndex:(NSInteger)textureIndex;
// 根据纹理索引,设置旋转模式
- (void)setInputRotation:(GPUImageRotationMode)newInputRotation atIndex:(NSInteger)textureIndex;
// 获取输出缓冲区的最大尺寸
- (CGSize)maximumOutputSize;
// 输入处理结束
- (void)endProcessing;
// 是否忽略渲染目标的更新
- (BOOL)shouldIgnoreUpdatesToThisTarget;
// 是否启用渲染目标
- (BOOL)enabled;
- (BOOL)wantsMonochromeInput;
- (void)setCurrentlyReceivingMonochromeInput:(BOOL)newValue;
@end
网友评论