99 lines
2.8 KiB
Objective-C
99 lines
2.8 KiB
Objective-C
//
|
||
// OpenGLView.h
|
||
// iVideoCalls
|
||
//
|
||
// Created by Kiwaro Nigas on 12-12-4.
|
||
// Copyright (c) 2012年 xizue.com. All rights reserved.
|
||
//
|
||
|
||
#import "P2PCInterface.h"
|
||
#define g_w 352
|
||
#define g_h 240
|
||
|
||
enum {
|
||
ATTRIBUTE_VERTEX,
|
||
ATTRIBUTE_TEXCOORD,
|
||
};
|
||
|
||
// shape type
|
||
enum {
|
||
SHAPE_CIRCLE = 0,// 圆形
|
||
SHAPE_180_HALF_SPHERE = 1,
|
||
SHAPE_CYLIDER = 2,//圆柱
|
||
SHAPE_BOWLE = 3,//碗状
|
||
SHAPE_FOUR_SCREEN = 4,//四分屏
|
||
};
|
||
// fisheye type
|
||
enum {
|
||
FISHEYE_360 = 0,
|
||
FISHEYE_180 = 1,
|
||
};
|
||
|
||
@protocol OpenGLRenderer
|
||
- (BOOL) isValid;
|
||
- (NSString *) fragmentShader;
|
||
- (void) resolveUniforms: (GLuint) program;
|
||
- (void) setFrame:(GAVFrame *)yuvFrame;
|
||
- (BOOL) prepareRender;
|
||
@end
|
||
|
||
@protocol OpenGLViewDelegate <NSObject>
|
||
-(void)onScreenShotted:(UIImage*)image;
|
||
@optional
|
||
-(void)onScreenShotted:(UIImage*)image timeInterval:(NSString *)timeInterval;//timeInterval秒
|
||
@end
|
||
|
||
@interface OpenGLView : UIView
|
||
{
|
||
EAGLContext *_context;
|
||
GLuint _framebuffer;
|
||
GLuint _renderbuffer;
|
||
GLuint _depthbuffer;
|
||
GLuint _program;
|
||
GLint _uniformMatrix;
|
||
|
||
id<OpenGLRenderer> _renderer;
|
||
|
||
//YES表示渲染成功,退出时可截图;NO表示渲染失败或渲染未完成(一片黑),退出时不截图
|
||
BOOL _isGetVideoFrame;
|
||
CGFloat _viewScale;
|
||
}
|
||
|
||
@property (nonatomic) BOOL Initialized;
|
||
@property (nonatomic) BOOL isScreenShotting;
|
||
@property (nonatomic) BOOL captureFinishScreen;
|
||
@property (nonatomic) BOOL isQuitMonitorInterface;//rtsp监控界面弹出修改
|
||
@property (nonatomic) BOOL isFullScreen;
|
||
@property (assign) id<OpenGLViewDelegate> delegate;
|
||
|
||
|
||
- (id)initWithIsSupportFisheyeDevice:(BOOL)isSupportFisheyeDevice installType:(int)installType deviceID:(int)deviceID fishEyeType:(int)fishEyeType;
|
||
- (BOOL)isvalid;
|
||
- (void)render:(GAVFrame *)frame;
|
||
- (UIImage *)glToUIImage;
|
||
-(void)releseromotViewSet;
|
||
-(void)getLastImgGoback;
|
||
|
||
- (void) setFullScreenHeight:(int)iheight width:(int)iwidth fullScreen:(int)isFullScreen;
|
||
- (void) setAccelerationX:(float)x Y:(float) y Z:(float)z;
|
||
//init data
|
||
- (void)initDataShapeWarpTextureWidth:(int)width textureHeight:(int)height windowWidth:(int)w_width windowHeight:(int)w_height installType:(int)installType deviceID:(int)deviceID fishEyeType:(int)fishEyeType;
|
||
// zoom in/out
|
||
- (void)setZoomInOpenGLView;
|
||
- (void)setZoomOutOpenGLView;
|
||
- (void)setZoomInOpenGLViewX:(float)x Y:(float)y;
|
||
- (void)setZoomOutOpenGLViewX:(float)x Y:(float)y;
|
||
//singalTap
|
||
- (void)singalTapInOpenGLView;
|
||
//setGestureMode
|
||
- (void)setGestureModeInOpenGLView:(int)mode;
|
||
//setKeyStatus
|
||
- (void)setKeyStatusInOpenGLView:(int)key;
|
||
//setFling
|
||
- (void)setFlingInOpenGLViewX:(float)x Y:(float)y;
|
||
//setMoveStep
|
||
- (void)setMoveStepInOpenGLViewX:(float)x Y:(float)y dX:(float)dx dY:(float)dy;
|
||
|
||
@end
|
||
|