// // 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 -(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 _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 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