VisioMove SDK (iOS)  2.1.22
VgEAGLBaseView Class Reference
Inheritance diagram for VgEAGLBaseView:
Inheritance graph

Instance Methods

(void) - setRenderSuspended:
 
(BOOL) - getRenderSuspended
 
(void) - setUpdateSuspended:
 
(BOOL) - getUpdateSuspended
 
(void) - startAnimation
 
(UIImage *) - captureToImage
 
(void) - notifyDidReceiveMemoryWarning
 
(BOOL) - multisample
 
(void) - setMultisample:
 
(BOOL) - preserveBackbuffer
 
(void) - setPreserveBackbuffer:
 
(void) - setRenderOnDemand:
 
(BOOL) - renderOnDemand
 
(NSInteger) - frameInterval
 
(void) - setFrameInterval:
 

Properties

UIInterfaceOrientation mInterfaceOrientation
 
VgApplication::VgIApplicationmApp
 

Detailed Description

This class serves as a base class for VgEAGLView and VgEAGLView2. The developer should never subclass this class or allocate this class directly.

Method Documentation

- (UIImage*) captureToImage

Captures the current GL Buffer and creates a UIImage If VgEAGLView does not have preserveBackbuffer, this will be enabled during the call and then reset. If you are capturing many frames, consider enabling it throughout the duraction of the calls.

Returns
Pointer to UIImage. The size of the UIImage can be twice as large as the VgEAGLView if used on a Retina display.
Note
The screen need not to be displaying the GL context. It can return nil, if not enough resources. captureToImage will capture the image without multisampling.
UIImage* lImage = [mMapView captureToImage];
UIImageView *lImageView = [[UIImageView alloc] initWithImage:lImage];
// We need to do this because lImageView.frame could be double of mMapView.frame it is a retina display
lImageView.frame = mMapView.frame;
[self.view addSubview:lImageView];
[UIView animateWithDuration:1.0 delay:3.0
options: UIViewAnimationCurveEaseInOut
animations:^{
lImageView.alpha = 0.0;
}
completion:^(BOOL pCompleted){
[lImageView removeFromSuperview];
}];
- (NSInteger) frameInterval

Returns current value for the frameInterval property which defined how many frames to skip before rendering a frame. Can be used to reduce the battery consumption.

Returns
NSInteger, default value is 1.
Version
2.1.5
- (BOOL) getRenderSuspended
Returns
YES is the view render is currently suspended.
- (BOOL) getUpdateSuspended
Returns
YES is the view update is currently suspended.
- (BOOL) multisample

Tells the application if multisample is enabled or not

Multisample is available for iOS 4.0 onward. On a VgEAGLView it will be enabled by default on all devices It disabled by default on the simulator due to performance reasons

Returns
YES if multisample is active.
- (void) notifyDidReceiveMemoryWarning

Notifies the view when the application receives a memory warning from the system. It should be called in the parent UIViewController::didReceiveMemoryWarning

The Apple documentation mentions, "It is strongly recommended that you implement this method. If your application does not release enough memory during low-memory conditions, the system may terminate it outright."

Calling this in your viewController implementation will allow the 3D view to adjust the balance between display-quality and memory consumption.

- (BOOL) preserveBackbuffer

Tells the application if preserveBackbuffer is enabled or not

Multisample is available for iOS 4.0 onward. On a VgEAGLView it will be enabled by default on all devices It disabled by default on the simulator due to performance reasons

Returns
YES if multisample is active.
- (BOOL) renderOnDemand

Tells the application if renderOnDemand is enabled or not, default is YES

Returns
YES if renderOnDemand is active.
Version
2.0.9075
- (void) setFrameInterval: (NSInteger)  pFrameInterval

Allows the VgEAGLView to reduce the frame rate, by rendering a frame every "frameInterval" frames. Can be used to reduce the energy consumption. This can be done at any time, and multiple times.

Parameters
pFrameIntervalbehaviour is undefined for values less than 1.
- (void) setMultisample: (BOOL)  pFlag

enables/disabling multisampling (to reduce anti-aliasing)

Remarks
Multisample carries very little performance penanty on devices. On the simulator, there is a small performance penalty. It works on the simulator and gives better results at a slower framerate. You can enable it at any time by doing mapview.multisample = YES
you can activate/deactivate at any time.
Parameters
pFlagYES to enable multisampling.
- (void) setPreserveBackbuffer: (BOOL)  pFlag

enables/disabling preserveBackbuffer (to be able to use captureToImage)

Remarks
this reduces the performance of the VgEAGLView.
Parameters
pFlagYES to preserveBackbuffer.
- (void) setRenderOnDemand: (BOOL)  pFlag

enables/disabling renderOnDemand. if set to false, the render will be done as fast as possible, possibly consumming too much energy. this function must be called before startAnimation, otherwise it will not have any effect.

Parameters
pFlagYES to enable render on demand.
Version
2.0.9075
- (void) setRenderSuspended: (BOOL)  pFlag

A Boolean indicating whether the EAGL View is rendered. If NO, the the manipulator will be reset and the EAGL View is rendered. If YES, the EAGL View will not be rendered. By default value is NO. When doing many map operations it can improve performance by suspending the rendering.

[mMapView setRenderSuspended:YES];
for (...) {
...
lMapModule->setPlaceName(...);
}
[mMapView setRenderSuspended:NO];
Remarks
It's important to use the getter/setter interface method (i.e. [myVgEAGLView setRenderSuspended:NO]) for this property to ensure the manipulator is reset.
Version
2.1.2 updated documentation
- (void) setUpdateSuspended: (BOOL)  pFlag

A Boolean indicating whether the EAGL View is updated, this is different from rendering. If NO, view will not be updated (no animation, interpretation of zoom, no loading of new tiles if position changes). View will not be rendered. By default value is NO.

Remarks
It's important to use the getter/setter interface method (i.e. [myVgEAGLView setUpdateSuspended:NO])
Version
2.1.2 updated property/setter method.
- (void) startAnimation

Responsible for creating the VisioMove application. This means it will call VgApplication::VgIApplication::createApplication on your behalf as well as initiating the animation timer responsible for invoking the render scene.

Implemented in VgEAGLView.

Property Documentation

- (VgIApplication *) VgEAGLBaseView:
readnonatomicassign

The entry point to the VisioMove.

- (UIInterfaceOrientation) mInterfaceOrientation
readwritenonatomicassign

The current orientation of the VgEAGLView. It is necessary to set this property manually for the VgEAGLView. Whenever this value is updated, the aspect ratio of the VgEAGLView is updated to match the new orientation.

Note
currently landspace view is not fully supported.

The documentation for this class was generated from the following file:
VisioMove 2.1.22, Visioglobe® 2016