ios stuff

This commit is contained in:
vladislav.khorev committed 2013-02-06 20:37:32 +00:00
1 parent 4e695fe902
commit 6ec81a421e
11 files changed
+374 -9

No files matched your search

+71
View File
@@ -0,0 +1,71 @@
//
// CustomGLKView.m
// doublehitballs
//
// Created by vvv ооо on 15.07.12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import "include/Utils/IosApi/ObjC/GLKViewTemplate.h"
#include "include/Utils/IosApi/IosWrapper.h"
@implementation GLKViewTemplate
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
touchMoved = false;
}
return self;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint location = [[[touches allObjects] objectAtIndex:0] locationInView:self];
touchBeganLocation = location;
touchMoved = false;
SE::AppOnTapDown(location.x, self.bounds.size.height - location.y);
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint location = [[[touches allObjects] objectAtIndex:0] locationInView:self];
CGPoint prevLocation = [[[touches allObjects] objectAtIndex:0] previousLocationInView:self];
if (abs(touchBeganLocation.x - location.x) > 10 || abs(touchBeganLocation.y - location.y) > 10)
{
touchMoved = true;
}
SE::AppOnScroll(prevLocation.x - location.x, -(prevLocation.y - location.y));
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint location = [[[touches allObjects] objectAtIndex:0] locationInView:self];
if (touchMoved)
{
SE::AppOnTapUpAfterMove(location.x, self.bounds.size.height - location.y);
}
else
{
SE::AppOnTapUp(location.x, self.bounds.size.height - location.y);
}
}
@end
@@ -0,0 +1,119 @@
//
// ViewController.m
// doublehitballs
//
// Created by vvv ооо on 13.07.12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import "include/Utils/IosApi/ObjC/ViewControllerTemplate.h"
#include "include/Utils/IosApi/IosWrapper.h"
extern GLKView* defaultView; //Find this in IosApi.mm
@interface ViewControllerTemplate () {
}
@property (strong, nonatomic) EAGLContext *context;
@property (strong, nonatomic) GLKBaseEffect *effect;
- (void)setupGL;
- (void)tearDownGL;
@end
@implementation ViewControllerTemplate
@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];
//Gesture Recognizers
UIPinchGestureRecognizer *recognizer = [[UIPinchGestureRecognizer alloc]
initWithTarget:self action:@selector(respondToPinch:)];
[self.view addGestureRecognizer:recognizer];
}
- (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.
}
- (void)setupGL
{
[EAGLContext setCurrentContext:self.context];
[self appInitCaller];
}
- (void)tearDownGL
{
[EAGLContext setCurrentContext:self.context];
SE::AppDeinit();
}
- (void) appInitCaller
{
}
- (void)respondToPinch:(UIPinchGestureRecognizer *)gestureRecognizer
{
SE::AppOnScale(gestureRecognizer.scale);
}
#pragma mark - GLKView and GLKViewController delegate methods
- (void)update
{
SE::AppUpdate(self.timeSinceLastUpdate * 1000);
}
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
SE::AppDraw();
}
@end