This commit is contained in:
Vladislav Khorev 2013-05-27 20:14:29 +00:00
parent 4348f93196
commit 59994b6f4c
50 changed files with 2353 additions and 0 deletions

8
.classpath Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding=".svn/" kind="src" path="src"/>
<classpathentry excluding=".svn/" kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="lib" path="C:/Workplace/Projects/Android/EngineWrapper/jar/EngineWrapper.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

33
.project Normal file
View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>EngineWrapper</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

39
AndroidManifest.xml Normal file
View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fishrungames.salmonjnitemplate" android:versionCode="1" android:versionName="1.0.0">
<application
android:icon="@drawable/ic_menu_template" android:label="Salmon Jni Template">
<activity android:name="fishrungames.salmonjnitemplate.MainActivity"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:launchMode="singleTask"
android:configChanges="orientation|keyboardHidden"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-feature android:glEsVersion="0x00020000"/>
<uses-sdk android:minSdkVersion="8"/>
</manifest>

BIN
Template.exe Normal file

Binary file not shown.

BIN
assets/console_bkg.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 KiB

View File

@ -0,0 +1,95 @@
32 0.00976562 0.0195312 0 0.0546875 0 0 0.0078125
49 0.0195312 0.0195312 0.00390625 0.015625 0.0078125 0.0390625 0.015625
50 0.0371094 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.015625
51 0.0605469 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
52 0.0820312 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.015625
53 0.105469 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
54 0.126953 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
55 0.148438 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
56 0.169922 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
57 0.191406 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
48 0.212891 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.015625
97 0.234375 0.0195312 0.00195312 0.0234375 0.00976562 0.03125 0.0136719
98 0.253906 0.0195312 0.00195312 0.0117188 0.0117188 0.0429688 0.015625
99 0.275391 0.0195312 0.00195312 0.0234375 0.00976562 0.03125 0.0136719
100 0.294922 0.0195312 0.00195312 0.0117188 0.0117188 0.0429688 0.015625
101 0.316406 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
102 0.337891 0.0195312 0 0.0117188 0.00976562 0.0429688 0.0078125
103 0.357422 0.0195312 0.00195312 0.0234375 0.0136719 0.0429688 0.0136719
104 0.380859 0.0195312 0.00195312 0.0117188 0.0117188 0.0429688 0.015625
105 0.402344 0.0195312 0 0.0117188 0.00585938 0.0429688 0.0078125
106 0.417969 0.0195312 -0.00195312 0.0117188 0.0078125 0.0546875 0.0078125
107 0.435547 0.0195312 0.00195312 0.0117188 0.0136719 0.0429688 0.0136719
108 0.458984 0.0195312 0.00195312 0.0117188 0.00390625 0.0429688 0.0078125
109 0.472656 0.0195312 0.00195312 0.0234375 0.0214844 0.03125 0.0253906
110 0.503906 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
111 0.525391 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
112 0.546875 0.0195312 0.00195312 0.0234375 0.0117188 0.0429688 0.015625
113 0.568359 0.0195312 0.00195312 0.0234375 0.0117188 0.0429688 0.015625
114 0.589844 0.0195312 0.00195312 0.0234375 0.0078125 0.03125 0.00976562
115 0.607422 0.0195312 0 0.0234375 0.0117188 0.03125 0.0136719
116 0.628906 0.0195312 0 0.015625 0.00976562 0.0390625 0.00976562
117 0.648438 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.015625
118 0.669922 0.0195312 -0.00195312 0.0234375 0.0175781 0.03125 0.0136719
119 0.697266 0.0195312 -0.00195312 0.0234375 0.0234375 0.03125 0.0195312
120 0.730469 0.0195312 0 0.0234375 0.0136719 0.03125 0.0136719
121 0.753906 0.0195312 -0.00195312 0.0234375 0.0175781 0.0429688 0.0136719
122 0.78125 0.0195312 0.00195312 0.0234375 0.0117188 0.03125 0.0136719
65 0.802734 0.0195312 -0.00195312 0.015625 0.0214844 0.0390625 0.0175781
66 0.833984 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.0175781
67 0.857422 0.0195312 0.00195312 0.015625 0.0136719 0.0390625 0.015625
68 0.880859 0.0195312 0.00195312 0.015625 0.015625 0.0390625 0.0195312
69 0.90625 0.0195312 0.00195312 0.015625 0.00976562 0.0390625 0.0136719
70 0.925781 0.0195312 0.00195312 0.015625 0.0117188 0.0390625 0.0136719
71 0.947266 0.0195312 0.00195312 0.015625 0.015625 0.0390625 0.0195312
72 0.00976562 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.0195312
73 0.0351562 0.09375 0 0.015625 0.00976562 0.0390625 0.00976562
74 0.0546875 0.09375 -0.00390625 0.015625 0.00976562 0.0507812 0.00585938
75 0.0742188 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.015625
76 0.0996094 0.09375 0.00195312 0.015625 0.0117188 0.0390625 0.0136719
77 0.121094 0.09375 0.00195312 0.015625 0.0195312 0.0390625 0.0234375
78 0.150391 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.0195312
79 0.175781 0.09375 0.00195312 0.015625 0.0175781 0.0390625 0.0214844
80 0.203125 0.09375 0.00195312 0.015625 0.0117188 0.0390625 0.015625
81 0.224609 0.09375 0.00195312 0.015625 0.0175781 0.046875 0.0214844
82 0.251953 0.09375 0.00195312 0.015625 0.0136719 0.0390625 0.015625
83 0.275391 0.09375 0 0.015625 0.0136719 0.0390625 0.0136719
84 0.298828 0.09375 0 0.015625 0.0136719 0.0390625 0.0136719
85 0.322266 0.09375 0.00195312 0.015625 0.015625 0.0390625 0.0195312
86 0.347656 0.09375 -0.00195312 0.015625 0.0195312 0.0390625 0.015625
87 0.376953 0.09375 -0.00195312 0.015625 0.0292969 0.0390625 0.0253906
88 0.416016 0.09375 -0.00195312 0.015625 0.0195312 0.0390625 0.015625
89 0.445312 0.09375 -0.00195312 0.015625 0.0175781 0.0390625 0.0136719
90 0.472656 0.09375 0.00195312 0.015625 0.0117188 0.0390625 0.015625
46 0.494141 0.09375 0.00195312 0.046875 0.00390625 0.0078125 0.0078125
44 0.507812 0.09375 0.00195312 0.046875 0.00390625 0.0117188 0.0078125
58 0.521484 0.09375 0.00195312 0.0234375 0.00390625 0.03125 0.0078125
59 0.535156 0.09375 0.00195312 0.0234375 0.00390625 0.0351562 0.0078125
64 0.548828 0.09375 0.00195312 0.015625 0.0195312 0.0429688 0.0234375
35 0.578125 0.09375 0 0.015625 0.015625 0.0390625 0.0175781
36 0.603516 0.09375 0.00195312 0.0117188 0.0117188 0.046875 0.015625
37 0.625 0.09375 0.00195312 0.015625 0.0195312 0.0390625 0.0234375
94 0.654297 0.09375 0 0.015625 0.0136719 0.0234375 0.0136719
38 0.677734 0.09375 0.00195312 0.015625 0.0175781 0.0390625 0.0195312
42 0.705078 0.09375 0 0.0117188 0.0136719 0.0234375 0.015625
33 0.728516 0.09375 0.00195312 0.015625 0.00390625 0.0390625 0.0078125
63 0.742188 0.09375 0 0.015625 0.00976562 0.0390625 0.0117188
40 0.761719 0.09375 0.00195312 0.015625 0.0078125 0.046875 0.0078125
41 0.779297 0.09375 0 0.015625 0.00585938 0.046875 0.0078125
91 0.794922 0.09375 0.00195312 0.015625 0.00585938 0.046875 0.0078125
93 0.810547 0.09375 0 0.015625 0.00585938 0.046875 0.0078125
123 0.826172 0.09375 0 0.015625 0.00976562 0.046875 0.00976562
125 0.845703 0.09375 0 0.015625 0.00976562 0.046875 0.00976562
60 0.865234 0.09375 0.00195312 0.0234375 0.0117188 0.0273438 0.015625
62 0.886719 0.09375 0.00195312 0.0234375 0.0117188 0.0273438 0.015625
95 0.908203 0.09375 0 0.0585938 0.0117188 0.00390625 0.0117188
45 0.929688 0.09375 0.00195312 0.0390625 0.00585938 0.0078125 0.00976562
43 0.945312 0.09375 0 0.0234375 0.0136719 0.0273438 0.015625
61 0.00976562 0.167969 0 0.0273438 0.0136719 0.0195312 0.015625
124 0.0332031 0.167969 0.00585938 0.0117188 0.00390625 0.0546875 0.0136719
92 0.046875 0.167969 -0.00195312 0.015625 0.0136719 0.0390625 0.00976562
47 0.0703125 0.167969 -0.00195312 0.015625 0.0136719 0.0390625 0.00976562
126 0.09375 0.167969 0.00195312 0.03125 0.0117188 0.0117188 0.015625
96 0.115234 0.167969 0.00585938 0.0117188 0.00585938 0.0078125 0.015625
34 0.130859 0.167969 0.00195312 0.015625 0.00976562 0.015625 0.0117188
39 0.150391 0.167969 0.00195312 0.015625 0.00390625 0.015625 0.00585938

BIN
assets/fire.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

View File

@ -0,0 +1,10 @@
precision highp float;
uniform sampler2D Texture;
varying vec2 texCoord;
void main()
{
vec4 texColor = texture2D(Texture,texCoord).rgba;
gl_FragColor = vec4(texColor.rgb, texColor.a);
}

View File

@ -0,0 +1,11 @@
attribute vec3 vPosition;
attribute vec2 vTexCoord;
varying vec2 texCoord;
uniform mat4 ProjectionMatrix;
void main()
{
//480x320
gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0);
texCoord = vTexCoord;
}

BIN
assets/ship.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
assets/space_dn.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
assets/stone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

18
assets/textures.xml Normal file
View File

@ -0,0 +1,18 @@
<Textures>
<Texture>
<FileName>ship.png</FileName>
<TexName>shipTexture</TexName>
</Texture>
<Texture>
<FileName>fire.png</FileName>
<TexName>fireTexture</TexName>
</Texture>
<Texture>
<FileName>stone.png</FileName>
<TexName>asteroidTexture</TexName>
</Texture>
<Texture>
<FileName>space_dn.jpg</FileName>
<TexName>backgroundTexture</TexName>
</Texture>
</Textures>

11
default.properties Normal file
View File

@ -0,0 +1,11 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-8

19
iOS/AppDelegate.h Normal file
View File

@ -0,0 +1,19 @@
//
// AppDelegate.h
// doublehitballs
//
// Created by vvv ооо on 13.07.12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
@class ViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@end

59
iOS/AppDelegate.m Normal file
View File

@ -0,0 +1,59 @@
//
// AppDelegate.m
// doublehitballs
//
// Created by vvv ооо on 13.07.12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize viewController = _viewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
} else {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
}
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application
{
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end

13
iOS/CustomGLKView.h Normal file
View File

@ -0,0 +1,13 @@
//
// CustomGLKView.h
// doublehitballs
//
// Created by vvv ооо on 15.07.12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import "include/Utils/IosApi/ObjC/GLKViewTemplate.h"
@interface CustomGLKView : GLKViewTemplate
@end

5
iOS/CustomGLKView.mm Normal file
View File

@ -0,0 +1,5 @@
#import "CustomGLKView.h"
@implementation CustomGLKView
@end

15
iOS/ViewController.h Normal file
View File

@ -0,0 +1,15 @@
//
// ViewController.h
// doublehitballs
//
// Created by vvv ооо on 13.07.12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import "include/Utils/IosApi/ObjC/ViewControllerTemplate.h"
@interface ViewController : ViewControllerTemplate
@end

20
iOS/ViewController.mm Normal file
View File

@ -0,0 +1,20 @@
#import "ViewController.h"
#import "ios_api.h"
@implementation ViewController
- (void) appInitCaller
{
CustomAppInit();
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
@end

View File

@ -0,0 +1,2 @@
/* Localized versions of Info.plist keys */

View File

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1296</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
<string key="IBDocument.AppKitVersion">1138.47</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">1181</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBProxyObject</string>
<string>IBUIView</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIView" id="191373211">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{0, 20}, {768, 1004}}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace">
<int key="NSID">2</int>
</object>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics">
<int key="IBUIStatusBarStyle">2</int>
</object>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="191373211"/>
</object>
<int key="connectionID">3</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="372490531"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="975951072"/>
<reference key="parent" ref="0"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.CustomClassName">ViewController</string>
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="1.CustomClassName">CustomGLKView</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">3</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">CustomGLKView</string>
<string key="superclassName">GLKView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/CustomGLKView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">ViewController</string>
<string key="superclassName">GLKViewController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/ViewController.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<real value="1296" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">1181</string>
</data>
</archive>

View File

@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1296</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
<string key="IBDocument.AppKitVersion">1138.47</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">1181</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBProxyObject</string>
<string>IBUIView</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="IBProxyObject" id="841351856">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBProxyObject" id="371349661">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="184854543">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace">
<int key="NSID">2</int>
</object>
</object>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="184854543"/>
</object>
<int key="connectionID">3</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="841351856"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="371349661"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="184854543"/>
<reference key="parent" ref="0"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.CustomClassName">ViewController</string>
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="2.CustomClassName">CustomGLKView</string>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">4</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<real value="1296" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">1181</string>
</data>
</archive>

8
iOS/ios_api.cpp Normal file
View File

@ -0,0 +1,8 @@
#include "include/Engine.h"
#include "main_code.h"
void CustomAppInit()
{
AppInit<TMyApplication>(480, 320);
}

3
iOS/ios_api.h Normal file
View File

@ -0,0 +1,3 @@
void CustomAppInit();

18
iOS/main.m Normal file
View File

@ -0,0 +1,18 @@
//
// main.m
// doublehitballs
//
// Created by vvv ооо on 13.07.12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}

BIN
iOS/res/Icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
iOS/res/iTunesArtwork Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 KiB

View File

@ -0,0 +1,500 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
4C49B2BE15B0991B003512CD /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2BD15B0991B003512CD /* UIKit.framework */; };
4C49B2C015B0991B003512CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2BF15B0991B003512CD /* Foundation.framework */; };
4C49B2C215B0991B003512CD /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2C115B0991B003512CD /* CoreGraphics.framework */; };
4C49B2C415B0991B003512CD /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2C315B0991B003512CD /* GLKit.framework */; };
4C49B2C615B0991B003512CD /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2C515B0991B003512CD /* OpenGLES.framework */; };
4C49B2CC15B0991B003512CD /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2CA15B0991B003512CD /* InfoPlist.strings */; };
4C49B2CE15B0991B003512CD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2CD15B0991B003512CD /* main.m */; };
4C49B2D215B0991B003512CD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2D115B0991B003512CD /* AppDelegate.m */; };
4C49B2D915B0991B003512CD /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2D815B0991B003512CD /* ViewController.mm */; };
4C49B2DC15B0991B003512CD /* ViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */; };
4C49B2DF15B0991B003512CD /* ViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */; };
4C4C807515BA8F460037C6CE /* libsquirrel.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C4C807415BA8F460037C6CE /* libsquirrel.a */; };
4C4C807715BA8F5B0037C6CE /* libz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C4C807615BA8F5B0037C6CE /* libz.a */; };
4C6EB44515C3CFD300316CB6 /* libpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C6EB44415C3CFD300316CB6 /* libpng.a */; };
4C74848615C5AD6E0056EC44 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C74848315C5AD6E0056EC44 /* Icon.png */; };
4C74848715C5AD6E0056EC44 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = 4C74848415C5AD6E0056EC44 /* iTunesArtwork */; };
4C74848815C5AD6E0056EC44 /* Splash-landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C74848515C5AD6E0056EC44 /* Splash-landscape.png */; };
4C74849815C5AF7C0056EC44 /* main_code.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C74849615C5AF7C0056EC44 /* main_code.cpp */; };
4C77831315BABD68003D5142 /* libvorbis-tremor-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */; };
4C77831815BABE26003D5142 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831415BABD8B003D5142 /* AudioToolbox.framework */; };
4C77831915BABE26003D5142 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831515BABD8B003D5142 /* OpenAL.framework */; };
4C7AD44C15B1D77700A599F6 /* ios_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C7AD44B15B1D77700A599F6 /* ios_api.cpp */; };
4C7C584B15C31E6500CAE4F4 /* libboost.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C7C584A15C31E6500CAE4F4 /* libboost.a */; };
4CC971AC15C57DCE00359A2B /* libSalmon Engine.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C902A7815C5735700FBC901 /* libSalmon Engine.a */; };
4CCC0ECC15B30D6B005432FB /* CustomGLKView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4CCC0ECB15B30D6B005432FB /* CustomGLKView.mm */; };
4CE6A9D215B2F979006A3965 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 4CE6A9D115B2F979006A3965 /* assets */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
4C902A7715C5735700FBC901 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4C902A7015C5735500FBC901 /* Salmon Engine.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 4C8CE90215B0A0F400078175;
remoteInfo = "Salmon Engine";
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
4C49B2B915B0991B003512CD /* salmontemplate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = salmontemplate.app; sourceTree = BUILT_PRODUCTS_DIR; };
4C49B2BD15B0991B003512CD /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
4C49B2BF15B0991B003512CD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
4C49B2C115B0991B003512CD /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
4C49B2C315B0991B003512CD /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; };
4C49B2C515B0991B003512CD /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
4C49B2C915B0991B003512CD /* template-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "template-Info.plist"; sourceTree = "<group>"; };
4C49B2CB15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
4C49B2CD15B0991B003512CD /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
4C49B2CF15B0991B003512CD /* template-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "template-Prefix.pch"; sourceTree = "<group>"; };
4C49B2D015B0991B003512CD /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
4C49B2D115B0991B003512CD /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
4C49B2D715B0991B003512CD /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
4C49B2D815B0991B003512CD /* ViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ViewController.mm; sourceTree = "<group>"; };
4C49B2DB15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController_iPhone.xib; sourceTree = "<group>"; };
4C49B2DE15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController_iPad.xib; sourceTree = "<group>"; };
4C4C807415BA8F460037C6CE /* libsquirrel.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsquirrel.a; path = "../../libs/SQUIRREL2_1_1_sqplus/build-ios/ios-device/libsquirrel.a"; sourceTree = "<group>"; };
4C4C807615BA8F5B0037C6CE /* libz.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libz.a; path = "../../libs/zlib-1.2.7/build-ios/ios-device/libz.a"; sourceTree = "<group>"; };
4C6EB44415C3CFD300316CB6 /* libpng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpng.a; path = "../../libs/libpng-1.5.12/build-ios/ios-simulator/libpng.a"; sourceTree = "<group>"; };
4C74848315C5AD6E0056EC44 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = res/Icon.png; sourceTree = "<group>"; };
4C74848415C5AD6E0056EC44 /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; name = iTunesArtwork; path = res/iTunesArtwork; sourceTree = "<group>"; };
4C74848515C5AD6E0056EC44 /* Splash-landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Splash-landscape.png"; path = "res/Splash-landscape.png"; sourceTree = "<group>"; };
4C74849615C5AF7C0056EC44 /* main_code.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main_code.cpp; path = ../jni/main_code.cpp; sourceTree = "<group>"; };
4C74849715C5AF7C0056EC44 /* main_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = main_code.h; path = ../jni/main_code.h; sourceTree = "<group>"; };
4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libvorbis-tremor-ios.a"; path = "../../libs/vorbis-tremor-ios/build-ios/ios-device/libvorbis-tremor-ios.a"; sourceTree = "<group>"; };
4C77831415BABD8B003D5142 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
4C77831515BABD8B003D5142 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
4C7AD44B15B1D77700A599F6 /* ios_api.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ios_api.cpp; sourceTree = "<group>"; };
4C7C584A15C31E6500CAE4F4 /* libboost.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost.a; path = "../../libs/boost_1_47_0/build-ios/ios-simulator/libboost.a"; sourceTree = "<group>"; };
4C902A7015C5735500FBC901 /* Salmon Engine.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Salmon Engine.xcodeproj"; path = "../../Engine/iOS/Salmon Engine/Salmon Engine.xcodeproj"; sourceTree = "<group>"; };
4CCC0ECA15B30D6A005432FB /* CustomGLKView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomGLKView.h; sourceTree = "<group>"; };
4CCC0ECB15B30D6B005432FB /* CustomGLKView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CustomGLKView.mm; sourceTree = "<group>"; };
4CCC0ECD15B310FB005432FB /* ios_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ios_api.h; sourceTree = "<group>"; };
4CE6A9D115B2F979006A3965 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../assets; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
4C49B2B615B0991B003512CD /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
4CC971AC15C57DCE00359A2B /* libSalmon Engine.a in Frameworks */,
4C77831815BABE26003D5142 /* AudioToolbox.framework in Frameworks */,
4C77831915BABE26003D5142 /* OpenAL.framework in Frameworks */,
4C49B2BE15B0991B003512CD /* UIKit.framework in Frameworks */,
4C49B2C015B0991B003512CD /* Foundation.framework in Frameworks */,
4C49B2C215B0991B003512CD /* CoreGraphics.framework in Frameworks */,
4C49B2C415B0991B003512CD /* GLKit.framework in Frameworks */,
4C49B2C615B0991B003512CD /* OpenGLES.framework in Frameworks */,
4C4C807515BA8F460037C6CE /* libsquirrel.a in Frameworks */,
4C4C807715BA8F5B0037C6CE /* libz.a in Frameworks */,
4C77831315BABD68003D5142 /* libvorbis-tremor-ios.a in Frameworks */,
4C7C584B15C31E6500CAE4F4 /* libboost.a in Frameworks */,
4C6EB44515C3CFD300316CB6 /* libpng.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
4C49B2AE15B0991B003512CD = {
isa = PBXGroup;
children = (
4C902A7015C5735500FBC901 /* Salmon Engine.xcodeproj */,
4C7B819515C40F770024D61A /* Libs */,
4CC1FC3415B200130025C6F7 /* Resources */,
4C49B2C715B0991B003512CD /* Sources */,
4C49B2BC15B0991B003512CD /* Frameworks */,
4C49B2BA15B0991B003512CD /* Products */,
);
sourceTree = "<group>";
};
4C49B2BA15B0991B003512CD /* Products */ = {
isa = PBXGroup;
children = (
4C49B2B915B0991B003512CD /* salmontemplate.app */,
);
name = Products;
sourceTree = "<group>";
};
4C49B2BC15B0991B003512CD /* Frameworks */ = {
isa = PBXGroup;
children = (
4C77831415BABD8B003D5142 /* AudioToolbox.framework */,
4C77831515BABD8B003D5142 /* OpenAL.framework */,
4C49B2BD15B0991B003512CD /* UIKit.framework */,
4C49B2BF15B0991B003512CD /* Foundation.framework */,
4C49B2C115B0991B003512CD /* CoreGraphics.framework */,
4C49B2C315B0991B003512CD /* GLKit.framework */,
4C49B2C515B0991B003512CD /* OpenGLES.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
4C49B2C715B0991B003512CD /* Sources */ = {
isa = PBXGroup;
children = (
4CE6A9E315B2F9A4006A3965 /* Game */,
4CCC0ECD15B310FB005432FB /* ios_api.h */,
4C7AD44B15B1D77700A599F6 /* ios_api.cpp */,
4C49B2D015B0991B003512CD /* AppDelegate.h */,
4C49B2D115B0991B003512CD /* AppDelegate.m */,
4C49B2D715B0991B003512CD /* ViewController.h */,
4C49B2D815B0991B003512CD /* ViewController.mm */,
4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */,
4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */,
4C49B2C815B0991B003512CD /* Supporting Files */,
4CCC0ECA15B30D6A005432FB /* CustomGLKView.h */,
4CCC0ECB15B30D6B005432FB /* CustomGLKView.mm */,
);
name = Sources;
sourceTree = "<group>";
};
4C49B2C815B0991B003512CD /* Supporting Files */ = {
isa = PBXGroup;
children = (
4C49B2C915B0991B003512CD /* template-Info.plist */,
4C49B2CA15B0991B003512CD /* InfoPlist.strings */,
4C49B2CD15B0991B003512CD /* main.m */,
4C49B2CF15B0991B003512CD /* template-Prefix.pch */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
4C7B819515C40F770024D61A /* Libs */ = {
isa = PBXGroup;
children = (
4C6EB44415C3CFD300316CB6 /* libpng.a */,
4C7C584A15C31E6500CAE4F4 /* libboost.a */,
4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */,
4C4C807615BA8F5B0037C6CE /* libz.a */,
4C4C807415BA8F460037C6CE /* libsquirrel.a */,
);
name = Libs;
sourceTree = "<group>";
};
4C902A7115C5735500FBC901 /* Products */ = {
isa = PBXGroup;
children = (
4C902A7815C5735700FBC901 /* libSalmon Engine.a */,
);
name = Products;
sourceTree = "<group>";
};
4CC1FC3415B200130025C6F7 /* Resources */ = {
isa = PBXGroup;
children = (
4C74848315C5AD6E0056EC44 /* Icon.png */,
4C74848415C5AD6E0056EC44 /* iTunesArtwork */,
4C74848515C5AD6E0056EC44 /* Splash-landscape.png */,
4CE6A9D115B2F979006A3965 /* assets */,
);
name = Resources;
sourceTree = "<group>";
};
4CE6A9E315B2F9A4006A3965 /* Game */ = {
isa = PBXGroup;
children = (
4C74849615C5AF7C0056EC44 /* main_code.cpp */,
4C74849715C5AF7C0056EC44 /* main_code.h */,
);
name = Game;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
4C49B2B815B0991B003512CD /* salmontemplate */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4C49B2E215B0991B003512CD /* Build configuration list for PBXNativeTarget "salmontemplate" */;
buildPhases = (
4C49B2B515B0991B003512CD /* Sources */,
4C49B2B615B0991B003512CD /* Frameworks */,
4C49B2B715B0991B003512CD /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = salmontemplate;
productName = doublehitballs;
productReference = 4C49B2B915B0991B003512CD /* salmontemplate.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
4C49B2B015B0991B003512CD /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0430;
};
buildConfigurationList = 4C49B2B315B0991B003512CD /* Build configuration list for PBXProject "salmontemplate" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 4C49B2AE15B0991B003512CD;
productRefGroup = 4C49B2BA15B0991B003512CD /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 4C902A7115C5735500FBC901 /* Products */;
ProjectRef = 4C902A7015C5735500FBC901 /* Salmon Engine.xcodeproj */;
},
);
projectRoot = "";
targets = (
4C49B2B815B0991B003512CD /* salmontemplate */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
4C902A7815C5735700FBC901 /* libSalmon Engine.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libSalmon Engine.a";
remoteRef = 4C902A7715C5735700FBC901 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
4C49B2B715B0991B003512CD /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4C49B2CC15B0991B003512CD /* InfoPlist.strings in Resources */,
4C49B2DC15B0991B003512CD /* ViewController_iPhone.xib in Resources */,
4C49B2DF15B0991B003512CD /* ViewController_iPad.xib in Resources */,
4CE6A9D215B2F979006A3965 /* assets in Resources */,
4C74848615C5AD6E0056EC44 /* Icon.png in Resources */,
4C74848715C5AD6E0056EC44 /* iTunesArtwork in Resources */,
4C74848815C5AD6E0056EC44 /* Splash-landscape.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
4C49B2B515B0991B003512CD /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4C49B2CE15B0991B003512CD /* main.m in Sources */,
4C49B2D215B0991B003512CD /* AppDelegate.m in Sources */,
4C49B2D915B0991B003512CD /* ViewController.mm in Sources */,
4C7AD44C15B1D77700A599F6 /* ios_api.cpp in Sources */,
4CCC0ECC15B30D6B005432FB /* CustomGLKView.mm in Sources */,
4C74849815C5AF7C0056EC44 /* main_code.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
4C49B2CA15B0991B003512CD /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
4C49B2CB15B0991B003512CD /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */ = {
isa = PBXVariantGroup;
children = (
4C49B2DB15B0991B003512CD /* en */,
);
name = ViewController_iPhone.xib;
sourceTree = "<group>";
};
4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */ = {
isa = PBXVariantGroup;
children = (
4C49B2DE15B0991B003512CD /* en */,
);
name = ViewController_iPad.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
4C49B2E015B0991B003512CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CLANG_ENABLE_OBJC_ARC = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
4C49B2E115B0991B003512CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CLANG_ENABLE_OBJC_ARC = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
4C49B2E315B0991B003512CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "template-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
TARGET_IOS,
DEBUG,
"$(inherited)",
BOOST_NO_CXX11_NUMERIC_LIMITS,
);
GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "";
"GCC_THUMB_SUPPORT[arch=armv6]" = "";
HEADER_SEARCH_PATHS = (
"$(SalmonEnginePath)",
"$(LibsPath)/lpng1510",
"$(LibsPath)/sqplus/sqplus",
"$(LibsPath)/sqplus/include",
"$(LibsPath)/boost_1_52_0",
../jni,
"$(LibsPath)/vorbis-tremor-ios/vorbis",
);
INFOPLIST_FILE = "template-Info.plist";
LIBRARY_SEARCH_PATHS = "";
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = (
"$(LibsPath)/lpng1510/build-ios/ios-device",
"$(LibsPath)/boost_1_52_0/build-ios/ios-device",
"$(LibsPath)/sqplus/build-ios/ios-device",
"$(LibsPath)/zlib-1.2.6/build-ios/ios-device",
"$(LibsPath)/vorbis-tremor-ios/build-ios/ios-device",
);
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = (
"$(LibsPath)/lpng1510/build-ios/ios-simulator",
"$(LibsPath)/sqplus/build-ios/ios-simulator",
"$(LibsPath)/boost_1_52_0/build-ios/ios-simulator",
"$(LibsPath)/zlib-1.2.6/build-ios/ios-simulator",
"$(LibsPath)/vorbis-tremor-ios/build-ios/ios-simulator",
);
PRODUCT_NAME = "$(TARGET_NAME)";
SYMROOT = build;
TARGETED_DEVICE_FAMILY = 1;
WRAPPER_EXTENSION = app;
};
name = Debug;
};
4C49B2E415B0991B003512CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "template-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
TARGET_IOS,
BOOST_NO_CXX11_NUMERIC_LIMITS,
);
GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = "";
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
"GCC_THUMB_SUPPORT[arch=armv6]" = "";
HEADER_SEARCH_PATHS = (
"$(SalmonEnginePath)",
"$(LibsPath)/lpng1510",
"$(LibsPath)/sqplus/sqplus",
"$(LibsPath)/sqplus/include",
"$(LibsPath)/boost_1_52_0",
../jni,
"$(LibsPath)/vorbis-tremor-ios/vorbis",
);
INFOPLIST_FILE = "template-Info.plist";
LIBRARY_SEARCH_PATHS = "";
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = (
"$(LibsPath)/lpng1510/build-ios/ios-device",
"$(LibsPath)/boost_1_52_0/build-ios/ios-device",
"$(LibsPath)/sqplus/build-ios/ios-device",
"$(LibsPath)/zlib-1.2.6/build-ios/ios-device",
"$(LibsPath)/vorbis-tremor-ios/build-ios/ios-device",
);
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = (
"$(LibsPath)/lpng1510/build-ios/ios-simulator",
"$(LibsPath)/sqplus/build-ios/ios-simulator",
"$(LibsPath)/boost_1_52_0/build-ios/ios-simulator",
"$(LibsPath)/zlib-1.2.6/build-ios/ios-simulator",
"$(LibsPath)/vorbis-tremor-ios/build-ios/ios-simulator",
);
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = 1;
WRAPPER_EXTENSION = app;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
4C49B2B315B0991B003512CD /* Build configuration list for PBXProject "salmontemplate" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4C49B2E015B0991B003512CD /* Debug */,
4C49B2E115B0991B003512CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4C49B2E215B0991B003512CD /* Build configuration list for PBXNativeTarget "salmontemplate" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4C49B2E315B0991B003512CD /* Debug */,
4C49B2E415B0991B003512CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 4C49B2B015B0991B003512CD /* Project object */;
}

50
iOS/template-Info.plist Normal file
View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>Salmon Universal Template</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string>Icon.png</string>
<key>CFBundleIdentifier</key>
<string>fishrungames.template</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchImageFile</key>
<string>Splash-landscape.png</string>
<key>UIPrerenderedIcon</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UIStatusBarHidden</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

14
iOS/template-Prefix.pch Normal file
View File

@ -0,0 +1,14 @@
//
// Prefix header for all source files of the 'doublehitballs' target in the 'doublehitballs' project
//
#import <Availability.h>
#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif

77
jni/Android.mk Normal file
View File

@ -0,0 +1,77 @@
# Copyright (C) 2009 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
LPATH := $(call my-dir)
ENGINE_PATH = $(SalmonEnginePathCygwin)
BOOST_PATH = $(LibsPathCygwin)/boost_1_47_0
OGG_PATH = $(LibsPathCygwin)/libogg-1.3.0
VORBIS_PATH = $(LibsPathCygwin)/libvorbis-1.3.2
SQUIRREL_PATH = $(LibsPathCygwin)/sqplus
LIBPNG_PATH = $(LibsPathCygwin)/libpng_1.4.1_android
ZIP_PATH = $(LibsPathCygwin)/julienr-libzip-android/jni
#====== ENGINE AND LIBS =====================
include $(ENGINE_PATH)/Android_Salmon_Engine.mk
#================= THE GAME =======================
LOCAL_PATH:= $(LPATH)
include $(CLEAR_VARS)
LOCAL_CFLAGS := -DTARGET_ANDROID -DNOSOUND -std=gnu++11 --std=c++11
LOCAL_STATIC_LIBRARIES := boost
LOCAL_STATIC_LIBRARIES += squirrel
LOCAL_STATIC_LIBRARIES += png_lib
LOCAL_STATIC_LIBRARIES += zip
LOCAL_SHARED_LIBRARIES := SalmonEngine
LOCAL_SHARED_LIBRARIES += gnustl_shared
LOCAL_C_INCLUDES := $(ENGINE_PATH)
LOCAL_C_INCLUDES += $(BOOST_PATH)
LOCAL_C_INCLUDES += $(VORBIS_PATH)/include
LOCAL_C_INCLUDES += $(VORBIS_PATH)/include/vorbis
LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib
LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/books
LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/modes
LOCAL_C_INCLUDES += $(OGG_PATH)/include
LOCAL_C_INCLUDES += $(OGG_PATH)/include/ogg
LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/include
LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqplus
LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/squirrel
LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqstdlib
LOCAL_C_INCLUDES += $(LIBPNG_PATH)
LOCAL_C_INCLUDES += $(ZIP_PATH)
LOCAL_MODULE := SalmonJniTemplate
LOCAL_SRC_FILES := main_code.cpp
LOCAL_SRC_FILES += android_api.cpp
LOCAL_LDLIBS := -lGLESv2
LOCAL_LDLIBS += -llog -Wl
#debug
#LOCAL_CFLAGS += -g -ggdb -O0
#LOCAL_LDLIBS += -g -ggdb
include $(BUILD_SHARED_LIBRARY)

3
jni/Application.mk Normal file
View File

@ -0,0 +1,3 @@
APP_STL := gnustl_shared
APP_CPPFLAGS += -fexceptions
APP_CPPFLAGS += -frtti

10
jni/android_api.cpp Normal file
View File

@ -0,0 +1,10 @@
#include "android_api.h"
#include "main_code.h"
JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height)
{
JniInitApp<TMyApplication>(width, height, 480.f, 320.f);
}

25
jni/android_api.h Normal file
View File

@ -0,0 +1,25 @@
#ifndef ANDROID_API_H_INCLUDED
#define ANDROID_API_H_INCLUDED
#include <jni.h>
#include <android/log.h>
#include <GLES/gl.h>
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include "boost/shared_ptr.hpp"
#include "main_code.h"
#include "include/Engine.h"
using namespace SE;
extern "C" {
JNIEXPORT void JNICALL Java_fishrungames_salmonjnitemplate_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height);
};
#endif

567
jni/main_code.cpp Normal file
View File

@ -0,0 +1,567 @@
#include "main_code.h"
#ifdef TARGET_ANDROID
#include "android_api.h"
#endif
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include "include/Engine.h"
#include "main_code.h"
//Better move those to external config or something...
const cardinal CONST_LASER_TIMER = 200;
const int CONST_HIT_SCORE_POINTS = 100;
const float CONST_TIME_SCALE = 0.01f;
const float CONST_PLAYER_ACCELERATION = 3.f;
const float CONST_VELOCITY_FADE = 0.95f;
const float CONST_LASER_VELOCITY = 100.f;
const vec2 CONST_PLAYER_HALF_SIZE(30.f, 30.f);
const vec2 CONST_LASER_HALF_SIZE(10.f, 10.f);
const vec2 CONST_AST_POS1(40, 40);
const vec2 CONST_AST_POS2(40, 280);
const vec2 CONST_AST_POS3(440, 160);
float HealthToScale(int health)
{
return 0.5f + health * 0.3f;
}
float HealthToHitDistance(int health)
{
const float CONST_HIT_DISTANCE = 15.f;
return max(CONST_HIT_DISTANCE * HealthToScale(health), 10.f);
}
void TMyApplication::InnerInit()
{
*Console<<"Inner init go!\n";
#ifdef TARGET_ANDROID
ST::PathToResources = "";
#endif
#ifdef TARGET_WIN32
#ifdef NDEBUG
ST::PathToResources = "assets/";
#else
ST::PathToResources = "../../../assets/";
#endif
#endif
#ifdef TARGET_IOS
ST::PathToResources = "assets/";
#endif
RandomGenerator.seed(static_cast<unsigned int>(std::time(0)));
TapIsDown = false;
ResourceManager->TexList.AddTexture(CONST_CONSOLE_TEX_NAME);
ResourceManager->ShaderManager.AddShader("DefaultShader", "gui_transparent.vertex", "gui_transparent.fragment");
Renderer->PushShader("DefaultShader");
ResourceManager->FontManager.AddFont("droid_sans14", "droid_sans14_font_bitmap.bmp32", "droid_sans14_font_charmap.txt");
ResourceManager->FontManager.PushFont("droid_sans14");
ResourceManager->TexList.Serialize(*FileToPropertyTree("textures.xml"));
Renderer->PushProjectionMatrix(Renderer->GetScreenWidth(), Renderer->GetScreenHeight());
Level = 1;
Score = 0;
InitLevel();
Player.RenderPair.first.SamplerMap[CONST_STRING_TEXTURE_UNIFORM] = "shipTexture";
Player.RenderPair.second.Data = MakeDataTriangleList(Player.Pos - CONST_PLAYER_HALF_SIZE, Player.Pos + CONST_PLAYER_HALF_SIZE);
Player.RenderPair.second.RefreshBuffer();
BackgroundRenderPair.first.SamplerMap[CONST_STRING_TEXTURE_UNIFORM] = "backgroundTexture";
BackgroundRenderPair.second.Data = MakeDataTriangleList(vec2(0,0), vec2(Renderer->GetScreenWidth(), Renderer->GetScreenHeight()));
BackgroundRenderPair.second.RefreshBuffer();
*Console<<"Inner init end!\n";
glDepthFunc(GL_LEQUAL);
}
void TMyApplication::InnerDeinit()
{
}
void TMyApplication::InnerDraw()
{
glClearColor(0,0,0,1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//Draw background
TRenderParamsSetter renderParamSetter(BackgroundRenderPair.first);
Renderer->DrawTriangleList(BackgroundRenderPair.second);
//Draw asteroids
BOOST_FOREACH(CAsteroidStruct& asteroid, Asteroids)
{
TRenderParamsSetter renderParamSetter(asteroid.RenderPair.first);
Renderer->DrawTriangleList(asteroid.RenderPair.second);
}
//Draw player
if (GameState != GS_LOST)
{
TRenderParamsSetter renderParamSetter(Player.RenderPair.first);
Renderer->DrawTriangleList(Player.RenderPair.second);
}
//Draw lasers
BOOST_FOREACH(CLaserStruct& laser, Lasers)
{
TRenderParamsSetter renderParamSetter(laser.RenderPair.first);
Renderer->DrawTriangleList(laser.RenderPair.second);
}
//Draw texts
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList[ResourceManager->FontManager.GetCurrentFontTextureName()]);
Renderer->DrawTriangleList(LevelScoreText);
Renderer->DrawTriangleList(LevelMessageText);
}
void TMyApplication::InnerUpdate(cardinal dt)
{
float scaledTime = CONST_TIME_SCALE * dt;
//Update Asteroids
BOOST_FOREACH(CAsteroidStruct& asteroid, Asteroids)
{
float difAngle = asteroid.AngularVelocity * scaledTime;
asteroid.Angle += difAngle;
mat3 rotationMatrix = CreateZRotationMatrix(difAngle);
MoveDataTriangleList(asteroid.RenderPair.second.Data, -vec3(asteroid.CenterPos, 0));
RotateDataTriangleList(asteroid.RenderPair.second.Data, rotationMatrix);
MoveDataTriangleList(asteroid.RenderPair.second.Data, vec3(asteroid.CenterPos, 0));
vec2 dif = asteroid.Velocity * scaledTime;
vec2 newCenterPos = NormalizePos(asteroid.CenterPos + dif);
dif = newCenterPos - asteroid.CenterPos;
asteroid.CenterPos = newCenterPos;
MoveDataTriangleList(asteroid.RenderPair.second.Data, vec3(dif, 0));
asteroid.RenderPair.second.RefreshBuffer();
}
UpdatePlayerPosition(scaledTime);
//Shoot laser
LaserTimer.Update(dt);
if (LaserTimer.IsOver())
{
LaserTimer.SetTimer(CONST_LASER_TIMER);
if (GameState == GS_PLAY)
{
AddNewLaser();
}
}
//Update lasers
BOOST_FOREACH(CLaserStruct& laser, Lasers)
{
vec2 dif = CONST_LASER_VELOCITY *laser.Dir * scaledTime;
MoveDataTriangleList(laser.RenderPair.second.Data, vec3(dif, 0));
laser.Pos += dif;
laser.RenderPair.second.RefreshBuffer();
}
//Do all checks...
ProcessLaserHit();
ProcessPlayerCollisions();
ClearUnusedLasers();
if (Asteroids.size() == 0 && GameState == GS_PLAY)
{
GameState = GS_WON;
RefreshScoreText();
}
}
void TMyApplication::InnerOnTapDown(vec2 p)
{
TapIsDown = true;
LastTap = p;
}
void TMyApplication::InnerOnTapUp(vec2 p)
{
TapIsDown = false;
if (GameState == GS_LOST)
{
Level = 1;
Score = 0;
InitLevel();
}
else if (GameState == GS_WON)
{
Level++;
InitLevel();
}
}
void TMyApplication::InnerOnTapUpAfterMove(vec2 p)
{
TapIsDown = false;
}
void TMyApplication::InnerOnMove(vec2 shift)
{
LastTap -= shift;
}
void TMyApplication::InitLevel()
{
GameState = GS_PLAY;
LaserTimer.SetTimer(CONST_LASER_TIMER);
Asteroids.clear();
Lasers.clear();
CreateRandomAsteroid(CONST_AST_POS1, Level);
CreateRandomAsteroid(CONST_AST_POS2, Level);
CreateRandomAsteroid(CONST_AST_POS3, Level);
Player.Angle = 0;
Player.Pos = vec2(Renderer->GetScreenWidth()/2, Renderer->GetScreenHeight()/2);
RefreshScoreText();
}
CAsteroidStruct TMyApplication::CreateAsteroid(vec2 pos, vec2 dir, int health)
{
static const float CONST_TEX_COORD_SCALE = 0.01f;
static const float CONST_ANGULAR_VELOCITY_SCALE = 0.001f;
static const boost::random::uniform_int_distribution<> velocityDistribution(5, 10);
static const boost::random::uniform_int_distribution<> angularVelocityDistribution(0, 10);
static const boost::random::uniform_int_distribution<> vertexNumberDistribution(5, 10);
static const boost::random::uniform_int_distribution<> vertexShiftDistribution(20, 30);
CAsteroidStruct result;
result.Health = health;
result.CenterPos = pos;
result.Angle = 0;
result.AngularVelocity = angularVelocityDistribution(RandomGenerator) * CONST_ANGULAR_VELOCITY_SCALE;
result.Velocity = velocityDistribution(RandomGenerator) * dir;
int numberOfVertices = vertexNumberDistribution(RandomGenerator);
std::vector<float> distArr(numberOfVertices);
for (int i=0; i<numberOfVertices; i++)
{
distArr[i] = vertexShiftDistribution(RandomGenerator) * HealthToScale(health);
}
//First iteration
vec2 prevShift = distArr[0] * vec2(1,0);
vec2 prevTexCoordShift = prevShift * CONST_TEX_COORD_SCALE;
//Other iterations
for (int i = 1; i <= numberOfVertices; i++)
{
float angle = i * 2 * pi / static_cast<float>(numberOfVertices);
vec2 shift = distArr[i % numberOfVertices] * vec2(cosf(angle), sinf(angle));
vec2 texCoordShift = shift * CONST_TEX_COORD_SCALE;
result.RenderPair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(vec3(pos, 0));
result.RenderPair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(vec3(pos + prevShift, 0));
result.RenderPair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(vec3(pos + shift, 0));
result.RenderPair.second.Data.Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(vec2(0.5f, 0.5f));
result.RenderPair.second.Data.Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(vec2(0.5f, 0.5f) + prevTexCoordShift);
result.RenderPair.second.Data.Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(vec2(0.5f, 0.5f) + texCoordShift);
prevShift = shift;
prevTexCoordShift = texCoordShift;
}
result.RenderPair.first.SamplerMap[CONST_STRING_TEXTURE_UNIFORM] = "asteroidTexture";
result.RenderPair.second.RefreshBuffer();
return result;
}
void TMyApplication::CreateRandomAsteroid(vec2 pos, int health)
{
static const boost::random::uniform_int_distribution<> angleDistribution(0, 36);
float randomAngle = angleDistribution(RandomGenerator) * pi / 18.f;
Asteroids.push_back(CreateAsteroid(pos, vec2(cosf(randomAngle), sinf(randomAngle)), health));
}
void TMyApplication::CreateAsteroidParts(vec2 pos, int newHealth)
{
static const boost::random::uniform_int_distribution<> CreateAsteroidParts(2, 5);
static const boost::random::uniform_int_distribution<> angleDistribution(0, 36);
float randomAngle = angleDistribution(RandomGenerator) * pi / 18.f;
int number = CreateAsteroidParts(RandomGenerator);
for (int i = 0; i < number; i++)
{
float partAngle = randomAngle + i * 2 * pi / static_cast<float>(number);
Asteroids.push_back(CreateAsteroid(pos, vec2(cosf(partAngle), sinf(partAngle)), newHealth));
}
}
vec2 TMyApplication::NormalizePos(vec2 pos)
{
vec2 result = pos;
while (result.v[0] < 0)
{
result.v[0] += Renderer->GetScreenWidth();
}
while (result.v[1] < 0)
{
result.v[1] += Renderer->GetScreenHeight();
}
while (result.v[0] >= Renderer->GetScreenWidth())
{
result.v[0] -= Renderer->GetScreenWidth();
}
while (result.v[1] >= Renderer->GetScreenHeight())
{
result.v[1] -= Renderer->GetScreenHeight();
}
return result;
}
void TMyApplication::RefreshPlayerPos()
{
Replace6PointsInTriangleList(Player.RenderPair.second.Data, 0, (-1) * CONST_PLAYER_HALF_SIZE, CONST_PLAYER_HALF_SIZE);
mat3 rotationMatrix = CreateZRotationMatrix(Player.Angle);
RotateDataTriangleList(Player.RenderPair.second.Data, rotationMatrix);
MoveDataTriangleList(Player.RenderPair.second.Data, vec3(Player.Pos, 0));
Player.RenderPair.second.RefreshBuffer();
}
void TMyApplication::AddNewLaser()
{
CLaserStruct laser;
float angle = Player.Angle;
laser.Dir = vec2(cosf(angle), sinf(angle));
laser.Pos = Player.Pos;
laser.RenderPair.second.Data = MakeDataTriangleList((-1) * CONST_LASER_HALF_SIZE, CONST_LASER_HALF_SIZE);
mat3 rotationMatrix = CreateZRotationMatrix(angle);
RotateDataTriangleList(laser.RenderPair.second.Data, rotationMatrix);
MoveDataTriangleList(laser.RenderPair.second.Data, vec3(laser.Pos, 0));
laser.RenderPair.first.SamplerMap[CONST_STRING_TEXTURE_UNIFORM] = "fireTexture";
laser.RenderPair.second.RefreshBuffer();
Lasers.push_back(laser);
}
void TMyApplication::UpdatePlayerPosition(float scaledTime)
{
if (TapIsDown)
{
vec2 dir = Normalize(LastTap - Player.Pos);
Player.Velocity += CONST_PLAYER_ACCELERATION * scaledTime * dir;
Player.Angle = acosf(DotProduct(dir, vec2(1, 0)));
if (dir.v[1] < 0)
{
Player.Angle = -Player.Angle;
}
}
Player.Pos += Player.Velocity * scaledTime;
Player.Velocity *= powf(CONST_VELOCITY_FADE, clamp(scaledTime, 0.f, 1.5f));
Player.Pos = NormalizePos(Player.Pos);
RefreshPlayerPos();
}
void TMyApplication::ProcessLaserHit()
{
for (auto laserItr = Lasers.begin(); laserItr != Lasers.end(); )
{
for (auto astItr = Asteroids.begin(); astItr != Asteroids.end(); )
{
float realDistance = HealthToHitDistance(astItr->Health);
if (fabs(laserItr->Pos.v[0] - astItr->CenterPos.v[0]) < realDistance &&
fabs(laserItr->Pos.v[1] - astItr->CenterPos.v[1]) < realDistance)
{
laserItr = Lasers.erase(laserItr);
if (astItr->Health > 0)
{
CreateAsteroidParts(astItr->CenterPos, astItr->Health - 1);
}
astItr = Asteroids.erase(astItr);
Score += CONST_HIT_SCORE_POINTS;
RefreshScoreText();
break;
}
if (astItr != Asteroids.end())
{
astItr++;
}
}
if (laserItr != Lasers.end())
{
laserItr++;
}
}
}
void TMyApplication::ProcessPlayerCollisions()
{
for (auto astItr = Asteroids.begin(); astItr != Asteroids.end(); astItr++)
{
float realDistance = HealthToHitDistance(astItr->Health);
if (fabs(astItr->CenterPos.v[0] - Player.Pos.v[0]) < realDistance && fabs(astItr->CenterPos.v[1] - Player.Pos.v[1]) < realDistance)
{
GameState = GS_LOST;
RefreshScoreText();
}
}
}
void TMyApplication::ClearUnusedLasers()
{
for (auto itr = Lasers.begin(); itr != Lasers.end(); )
{
if (itr->Pos.v[0] < 0 || itr->Pos.v[1] < 0 || itr->Pos.v[0] > Renderer->GetScreenWidth() || itr->Pos.v[1] > Renderer->GetScreenHeight())
{
itr = Lasers.erase(itr);
}
if (itr != Lasers.end())
{
itr++;
}
}
}
void TMyApplication::RefreshScoreText()
{
LevelScoreText = ResourceManager->FontManager.DrawStringToVBO(vec2(10, 20), TTextBasicAreaParams(), "Score: "+ tostr(Score));
if (GameState == GS_PLAY)
{
LevelMessageText = ResourceManager->FontManager.DrawStringToVBO(vec2(10, 300), TTextBasicAreaParams(), "Now playing "+ tostr(Level) + " level");
}
else if (GameState == GS_WON)
{
LevelMessageText = ResourceManager->FontManager.DrawStringToVBO(vec2(10, 300), TTextBasicAreaParams(), "You won! Tap on screen to start next level");
}
else if (GameState == GS_LOST)
{
LevelMessageText = ResourceManager->FontManager.DrawStringToVBO(vec2(10, 300), TTextBasicAreaParams(), "You failed! Tap on screen to restart");
}
}

137
jni/main_code.h Normal file
View File

@ -0,0 +1,137 @@
#ifndef MAIN_CODE_H_INCLUDED
#define MAIN_CODE_H_INCLUDED
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#ifdef TARGET_ANDROID
#include <GLES/gl.h>
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#endif
#include "boost/shared_ptr.hpp"
#include "boost/thread/thread.hpp"
#include "boost/assign.hpp"
#include "boost/bind.hpp"
#include "boost/asio.hpp"
#include "boost/signal.hpp"
#include "boost/random.hpp"
#include "include/Engine.h"
using namespace SE;
struct CAsteroidStruct
{
int Health;
float Angle;
float AngularVelocity;
vec2 CenterPos;
vec2 Velocity;
TRenderPair RenderPair;
};
struct CPlayer
{
vec2 Pos;
float Angle;
vec2 Velocity;
TRenderPair RenderPair;
};
struct CLaserStruct
{
vec2 Pos;
vec2 Dir;
TRenderPair RenderPair;
};
enum CGameState
{
GS_PLAY,
GS_WON,
GS_LOST
};
class TMyApplication : public TApplication
{
protected:
//Game elements
std::list<CAsteroidStruct> Asteroids;
std::list<CLaserStruct> Lasers;
CPlayer Player;
//Minor
boost::random::mt19937 RandomGenerator;
bool TapIsDown;
vec2 LastTap;
TSimpleTimer LaserTimer;
//Game score and state
CGameState GameState;
int Level;
int Score;
//Static graphics
TTriangleList LevelScoreText;
TTriangleList LevelMessageText;
TRenderPair BackgroundRenderPair;
CAsteroidStruct CreateAsteroid(vec2 pos, vec2 dir, int health);
void CreateRandomAsteroid(vec2 pos, int health);
void CreateAsteroidParts(vec2 pos, int newHealth);
vec2 NormalizePos(vec2 pos);
void RefreshPlayerPos();
void AddNewLaser();
void UpdatePlayerPosition(float scaledTime);
void ProcessLaserHit();
void ProcessPlayerCollisions();
void ClearUnusedLasers();
void RefreshScoreText();
public:
bool Inited;
TMyApplication() : TApplication(), Inited(false) { }
virtual void InnerInit();
virtual void InnerDeinit();
virtual void InnerDraw();
virtual void InnerUpdate(cardinal dt);
virtual void InnerOnTapDown(vec2 p);
virtual void InnerOnTapUp(vec2 p);
virtual void InnerOnTapUpAfterMove(vec2 p);
virtual void InnerOnMove(vec2 shift);
bool IsInited() { return Inited; }
void InitLevel();
};
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

4
res/values/strings.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">AndroidJniTemplate</string>
</resources>

View File

@ -0,0 +1,73 @@
package fishrungames.salmonjnitemplate;
import java.util.Calendar;
import android.content.Context;
import android.opengl.GLSurfaceView;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import fishrungames.engine.GLViewAncestor;
import fishrungames.engine.EngineWrapper;
class GLView extends GLViewAncestor
{
static long lastTimeStamp;
static boolean gameIsInited = false;
public GLView(Context context)
{
//Change this method? Don't forget to change method below!
super(context);
init(false, 0, 0);
}
public GLView(Context context, boolean translucent, int depth, int stencil)
{
//Change this method? Don't forget to change method above!
super(context);
init(translucent, depth, stencil);
}
public void init(boolean translucent, int depth, int stencil)
{
super.init(translucent, depth, stencil);
setRenderer(new Renderer());
Calendar c = Calendar.getInstance();
lastTimeStamp = c.getTimeInMillis();
gameIsInited = true;
}
private static class Renderer implements GLSurfaceView.Renderer
{
public void onDrawFrame(GL10 gl)
{
if (gameIsInited)
{
Calendar c = Calendar.getInstance();
long currentTimeStamp = c.getTimeInMillis();
EngineWrapper.Update(currentTimeStamp - lastTimeStamp);
lastTimeStamp = currentTimeStamp;
}
}
public void onSurfaceChanged(GL10 gl, int width, int height)
{
//JniWrapper.Destroy();
JniWrapper.Init(width,height);
}
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{
//Do nothing.
}
}
}

View File

@ -0,0 +1,12 @@
package fishrungames.salmonjnitemplate;
public class JniWrapper
{
static {
System.loadLibrary("SalmonJniTemplate");
}
public static native void Init(int width, int height);
}

View File

@ -0,0 +1,93 @@
package fishrungames.salmonjnitemplate;
import fishrungames.engine.EngineWrapper;
//Deprecated
//import fishrungames.androidjnitemplate.R;
import android.app.Activity;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.KeyEvent;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
public class MainActivity extends Activity
{
GLView mView;
@Override
protected void onCreate(Bundle icicle)
{
super.onCreate(icicle);
EngineWrapper.LoadSalmonEngineLibrary();
EngineWrapper.SetActivityInstance(this);
EngineWrapper.SetupEnviroment();
String apkFilePath = null;
ApplicationInfo appInfo = null;
PackageManager packMgmr = this.getPackageManager();
try {
appInfo = packMgmr.getApplicationInfo("fishrungames.salmonjnitemplate", 0);
} catch (NameNotFoundException e) {
e.printStackTrace();
throw new RuntimeException("Unable to locate assets, aborting...");
}
apkFilePath = appInfo.sourceDir;
EngineWrapper.SetupApkFilePath(apkFilePath);
mView = new GLView(getApplication());
setContentView(mView);
}
@Override
protected void onPause()
{
EngineWrapper.Destroy();
super.onPause();
mView.onPause();
}
@Override
protected void onResume()
{
//Don't write anything here!
super.onResume();
mView.onResume();
}
@Override
protected void onStop()
{
//Don't write anything here!
super.onStop();
}
public boolean onKeyDown(int keyCode, KeyEvent event)
{
EngineWrapper.ProcessKeyDown(keyCode, event);
return super.onKeyDown(keyCode, event);
}
public boolean onTouchEvent(MotionEvent event)
{
EngineWrapper.ProcessTouchEvent(event);
return true;
}
}

View File

@ -0,0 +1,34 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C++ Express 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Template", "Template\Template.vcxproj", "{0080A3E1-DFBF-4557-B198-E6D5D7724393}"
ProjectSection(ProjectDependencies) = postProject
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20} = {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Salmon Engine", "..\..\..\..\Engine\Salmon Engine\Salmon Engine.vcxproj", "{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_nosound|Win32 = Debug_nosound|Win32
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.ActiveCfg = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.Build.0 = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.ActiveCfg = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.Build.0 = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.ActiveCfg = Release|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.Build.0 = Release|Win32
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug_nosound|Win32.ActiveCfg = Debug_nosound|Win32
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug_nosound|Win32.Build.0 = Debug_nosound|Win32
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug|Win32.ActiveCfg = Debug|Win32
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug|Win32.Build.0 = Debug|Win32
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Release|Win32.ActiveCfg = Release|Win32
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0080A3E1-DFBF-4557-B198-E6D5D7724393}</ProjectGuid>
<RootNamespace>Template</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include</IncludePath>
<LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include</IncludePath>
<LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../../jni;$(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TARGET_WIN32;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;DEBUG</PreprocessorDefinitions>
<DisableSpecificWarnings>4503</DisableSpecificWarnings>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opengl32.lib;glu32.lib;Salmon Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;jpeg.lib;sqplusD.lib;squirrelD.lib;sqdbglibD.lib;sqstdlibD.lib;dsound.lib;dxguid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(LibsPath)\boost_1_52_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\jpeg-9\vc10\Release;$(LibsPath)\lpng1510\projects\vstudio\Debug Library</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../../../jni;$(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TARGET_WIN32;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501;NDEBUG</PreprocessorDefinitions>
<DisableSpecificWarnings>4503</DisableSpecificWarnings>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opengl32.lib;glu32.lib;Salmon Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;jpeg.lib;sqplus.lib;squirrel.lib;sqdbglib.lib;sqstdlib.lib;dsound.lib;dxguid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(LibsPath)\boost_1_52_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\jpeg-9\vc10\Release;$(LibsPath)\lpng1510\projects\vstudio\Release Library</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\jni\main_code.cpp" />
<ClCompile Include="main.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\jni\main_code.h" />
<ClInclude Include="main.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,30 @@
#include "main.h"
#include "main_code.h"
int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst,
LPSTR lpszCmdLine, int nCmdShow)
{
int width = 480;
int height = 320;
if (CreateEngine(width, height))
{
//MyApplication scope
{
TMyApplication Application;
Application.OuterInit(width, height, width, height);
MainLoop(&Application);
Application.OuterDeinit();
}
DestroyEngine();
}
return 0;
}

View File

@ -0,0 +1,3 @@
#pragma once
#include "Engine.h"