#import "GPUImageOutput.h"
|
|
// The bytes passed into this input are not copied or retained, but you are free to deallocate them after they are used by this filter.
|
// The bytes are uploaded and stored within a texture, so nothing is kept locally.
|
// The default format for input bytes is GPUPixelFormatBGRA, unless specified with pixelFormat:
|
// The default type for input bytes is GPUPixelTypeUByte, unless specified with pixelType:
|
|
typedef enum {
|
GPUPixelFormatBGRA = GL_BGRA,
|
GPUPixelFormatRGBA = GL_RGBA,
|
GPUPixelFormatRGB = GL_RGB,
|
GPUPixelFormatLuminance = GL_LUMINANCE
|
} GPUPixelFormat;
|
|
typedef enum {
|
GPUPixelTypeUByte = GL_UNSIGNED_BYTE,
|
GPUPixelTypeFloat = GL_FLOAT
|
} GPUPixelType;
|
|
@interface GPUImageRawDataInput : GPUImageOutput
|
{
|
CGSize uploadedImageSize;
|
|
dispatch_semaphore_t dataUpdateSemaphore;
|
}
|
|
// Initialization and teardown
|
- (id)initWithBytes:(GLubyte *)bytesToUpload size:(CGSize)imageSize;
|
- (id)initWithBytes:(GLubyte *)bytesToUpload size:(CGSize)imageSize pixelFormat:(GPUPixelFormat)pixelFormat;
|
- (id)initWithBytes:(GLubyte *)bytesToUpload size:(CGSize)imageSize pixelFormat:(GPUPixelFormat)pixelFormat type:(GPUPixelType)pixelType;
|
|
/** Input data pixel format
|
*/
|
@property (readwrite, nonatomic) GPUPixelFormat pixelFormat;
|
@property (readwrite, nonatomic) GPUPixelType pixelType;
|
|
// Image rendering
|
- (void)updateDataFromBytes:(GLubyte *)bytesToUpload size:(CGSize)imageSize;
|
- (void)processData;
|
- (void)processDataForTimestamp:(CMTime)frameTime;
|
- (CGSize)outputImageSize;
|
|
@end
|