111 lines
2.1 KiB
Objective-C
111 lines
2.1 KiB
Objective-C
//
|
||
// ViewController.m
|
||
// doublehitballs
|
||
//
|
||
// Created by vvv ооо on 13.07.12.
|
||
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
|
||
//
|
||
|
||
#import "ViewController.h"
|
||
#import "ios_api.h"
|
||
|
||
|
||
extern GLKView* defaultView;
|
||
|
||
@interface ViewController () {
|
||
}
|
||
|
||
@property (strong, nonatomic) EAGLContext *context;
|
||
@property (strong, nonatomic) GLKBaseEffect *effect;
|
||
|
||
- (void)setupGL;
|
||
- (void)tearDownGL;
|
||
|
||
@end
|
||
|
||
@implementation ViewController
|
||
|
||
@synthesize context = _context;
|
||
@synthesize effect = _effect;
|
||
|
||
- (void)viewDidLoad
|
||
{
|
||
[super viewDidLoad];
|
||
|
||
self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
|
||
|
||
if (!self.context) {
|
||
NSLog(@"Failed to create ES context");
|
||
}
|
||
|
||
GLKView *view = (GLKView *)self.view;
|
||
view.context = self.context;
|
||
view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
|
||
|
||
defaultView = view;
|
||
|
||
[self setupGL];
|
||
}
|
||
|
||
- (void)viewDidUnload
|
||
{
|
||
[super viewDidUnload];
|
||
|
||
[self tearDownGL];
|
||
|
||
if ([EAGLContext currentContext] == self.context) {
|
||
[EAGLContext setCurrentContext:nil];
|
||
}
|
||
self.context = nil;
|
||
}
|
||
|
||
- (void)didReceiveMemoryWarning
|
||
{
|
||
[super didReceiveMemoryWarning];
|
||
// Release any cached data, images, etc. that aren't in use.
|
||
}
|
||
|
||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
||
{
|
||
/*
|
||
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
|
||
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
|
||
} else {
|
||
return YES;
|
||
}*/
|
||
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
|
||
}
|
||
|
||
- (void)setupGL
|
||
{
|
||
[EAGLContext setCurrentContext:self.context];
|
||
|
||
AppInit();
|
||
}
|
||
|
||
- (void)tearDownGL
|
||
{
|
||
[EAGLContext setCurrentContext:self.context];
|
||
|
||
AppDeinit();
|
||
|
||
}
|
||
|
||
#pragma mark - GLKView and GLKViewController delegate methods
|
||
|
||
- (void)update
|
||
{
|
||
|
||
AppUpdate(self.timeSinceLastUpdate * 1000);
|
||
}
|
||
|
||
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
|
||
{
|
||
|
||
AppDraw();
|
||
|
||
}
|
||
|
||
|
||
@end
|