mirror of
https://github.com/danog/Telegram.git
synced 2024-12-11 17:09:46 +01:00
59 lines
1.4 KiB
Objective-C
Executable File
59 lines
1.4 KiB
Objective-C
Executable File
#import <Foundation/Foundation.h>
|
|
|
|
#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
|
|
#import <OpenGLES/EAGL.h>
|
|
#import <OpenGLES/ES2/gl.h>
|
|
#import <OpenGLES/ES2/glext.h>
|
|
#else
|
|
#import <OpenGL/OpenGL.h>
|
|
#import <OpenGL/gl.h>
|
|
#endif
|
|
|
|
#import <QuartzCore/QuartzCore.h>
|
|
#import <CoreMedia/CoreMedia.h>
|
|
|
|
|
|
typedef struct GPUTextureOptions {
|
|
GLenum minFilter;
|
|
GLenum magFilter;
|
|
GLenum wrapS;
|
|
GLenum wrapT;
|
|
GLenum internalFormat;
|
|
GLenum format;
|
|
GLenum type;
|
|
} GPUTextureOptions;
|
|
|
|
@interface GPUImageFramebuffer : NSObject
|
|
|
|
@property (nonatomic, readonly) CGSize size;
|
|
@property (nonatomic, readonly) GPUTextureOptions textureOptions;
|
|
@property (nonatomic, readonly) GLuint texture;
|
|
@property (nonatomic, readonly) BOOL missingFramebuffer;
|
|
|
|
// Initialization and teardown
|
|
- (id)initWithSize:(CGSize)framebufferSize;
|
|
- (id)initWithSize:(CGSize)framebufferSize textureOptions:(GPUTextureOptions)fboTextureOptions onlyTexture:(BOOL)onlyGenerateTexture;
|
|
- (id)initWithSize:(CGSize)framebufferSize overriddenTexture:(GLuint)inputTexture;
|
|
|
|
// Usage
|
|
- (void)activateFramebuffer;
|
|
|
|
// Reference counting
|
|
- (void)lock;
|
|
- (void)unlock;
|
|
- (void)clearAllLocks;
|
|
- (void)disableReferenceCounting;
|
|
- (void)enableReferenceCounting;
|
|
|
|
// Image capture
|
|
- (CGImageRef)newCGImageFromFramebufferContents;
|
|
- (void)restoreRenderTarget;
|
|
|
|
// Raw data bytes
|
|
- (void)lockForReading;
|
|
- (void)unlockAfterReading;
|
|
- (NSUInteger)bytesPerRow;
|
|
- (GLubyte *)byteBuffer;
|
|
|
|
@end
|