mirror of
https://github.com/XProger/OpenLara.git
synced 2025-08-14 09:04:31 +02:00
#15 fix android build
This commit is contained in:
17
src/camera.h
17
src/camera.h
@@ -20,13 +20,15 @@ struct Camera : Controller {
|
|||||||
|
|
||||||
float timer;
|
float timer;
|
||||||
int actTargetEntity, actCamera;
|
int actTargetEntity, actCamera;
|
||||||
bool cutscene;
|
|
||||||
bool firstPerson;
|
|
||||||
Basis prevBasis;
|
|
||||||
|
|
||||||
|
Basis prevBasis;
|
||||||
vec4 *reflectPlane;
|
vec4 *reflectPlane;
|
||||||
|
|
||||||
Camera(IGame *game, Lara *owner) : Controller(game, owner ? owner->entity : 0), owner(owner), frustum(new Frustum()), timer(0.0f), actTargetEntity(-1), actCamera(-1), reflectPlane(NULL) {
|
bool cutscene;
|
||||||
|
bool firstPerson;
|
||||||
|
bool isVR;
|
||||||
|
|
||||||
|
Camera(IGame *game, Lara *owner) : Controller(game, owner ? owner->entity : 0), owner(owner), frustum(new Frustum()), timer(0.0f), actTargetEntity(-1), actCamera(-1), reflectPlane(NULL), isVR(false) {
|
||||||
changeView(false);
|
changeView(false);
|
||||||
cutscene = owner->getEntity().type != TR::Entity::LARA && level->cameraFrames;
|
cutscene = owner->getEntity().type != TR::Entity::LARA && level->cameraFrames;
|
||||||
}
|
}
|
||||||
@@ -250,8 +252,11 @@ struct Camera : Controller {
|
|||||||
checkRoom();
|
checkRoom();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mViewInv = mat4(pos, target, vec3(0, -1, 0));
|
||||||
|
if (isVR) {
|
||||||
mat4 head = Input::head.getMatrix();
|
mat4 head = Input::head.getMatrix();
|
||||||
mViewInv = mat4(pos, target, vec3(0, -1, 0)) * head;
|
mViewInv = mViewInv * head;
|
||||||
|
}
|
||||||
updateListener();
|
updateListener();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,6 +273,8 @@ struct Camera : Controller {
|
|||||||
Core::mViewInv = mViewInv;
|
Core::mViewInv = mViewInv;
|
||||||
|
|
||||||
Core::mView = Core::mViewInv.inverse();
|
Core::mView = Core::mViewInv.inverse();
|
||||||
|
|
||||||
|
if (isVR)
|
||||||
Core::mView.translate(Core::mViewInv.right.xyz * (-Core::eye * 32.0f));
|
Core::mView.translate(Core::mViewInv.right.xyz * (-Core::eye * 32.0f));
|
||||||
|
|
||||||
Core::mProj = getProjMatrix();
|
Core::mProj = getProjMatrix();
|
||||||
|
@@ -12,6 +12,9 @@
|
|||||||
#include <GLES2/gl2ext.h>
|
#include <GLES2/gl2ext.h>
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
|
||||||
|
#define GL_CLAMP_TO_BORDER 0x812D
|
||||||
|
#define GL_TEXTURE_BORDER_COLOR 0x1004
|
||||||
|
|
||||||
#define GL_TEXTURE_COMPARE_MODE 0x884C
|
#define GL_TEXTURE_COMPARE_MODE 0x884C
|
||||||
#define GL_TEXTURE_COMPARE_FUNC 0x884D
|
#define GL_TEXTURE_COMPARE_FUNC 0x884D
|
||||||
#define GL_COMPARE_REF_TO_TEXTURE 0x884E
|
#define GL_COMPARE_REF_TO_TEXTURE 0x884E
|
||||||
@@ -63,6 +66,9 @@
|
|||||||
#define glDeleteVertexArrays glDeleteVertexArraysOES
|
#define glDeleteVertexArrays glDeleteVertexArraysOES
|
||||||
#define glBindVertexArray glBindVertexArrayOES
|
#define glBindVertexArray glBindVertexArrayOES
|
||||||
|
|
||||||
|
#define GL_CLAMP_TO_BORDER GL_CLAMP_TO_BORDER_EXT
|
||||||
|
#define GL_TEXTURE_BORDER_COLOR GL_TEXTURE_BORDER_COLOR_EXT
|
||||||
|
|
||||||
#define GL_TEXTURE_COMPARE_MODE GL_TEXTURE_COMPARE_MODE_EXT
|
#define GL_TEXTURE_COMPARE_MODE GL_TEXTURE_COMPARE_MODE_EXT
|
||||||
#define GL_TEXTURE_COMPARE_FUNC GL_TEXTURE_COMPARE_FUNC_EXT
|
#define GL_TEXTURE_COMPARE_FUNC GL_TEXTURE_COMPARE_FUNC_EXT
|
||||||
#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_REF_TO_TEXTURE_EXT
|
#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_REF_TO_TEXTURE_EXT
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
#ifndef H_GAME_TR
|
#ifndef H_GAME
|
||||||
#define H_GAME_TR
|
#define H_GAME
|
||||||
|
|
||||||
#include "core.h"
|
#include "core.h"
|
||||||
#include "format.h"
|
#include "format.h"
|
||||||
|
@@ -8,7 +8,7 @@ android {
|
|||||||
minSdkVersion 18
|
minSdkVersion 18
|
||||||
targetSdkVersion 25
|
targetSdkVersion 25
|
||||||
versionCode 1
|
versionCode 1
|
||||||
versionName "1.0"
|
versionName "0.1"
|
||||||
ndk {
|
ndk {
|
||||||
abiFilters 'armeabi-v7a'
|
abiFilters 'armeabi-v7a'
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,6 @@
|
|||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
#include <android/log.h>
|
#include <android/log.h>
|
||||||
//#include "vr/gvr/capi/include/gvr.h"
|
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
@@ -20,7 +18,7 @@ int getTime() {
|
|||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
int lastTime, fpsTime, fps;
|
int lastTime;
|
||||||
|
|
||||||
char Stream::cacheDir[255];
|
char Stream::cacheDir[255];
|
||||||
char Stream::contentDir[255];
|
char Stream::contentDir[255];
|
||||||
@@ -44,8 +42,6 @@ JNI_METHOD(void, nativeInit)(JNIEnv* env, jobject obj, jstring packName, jstring
|
|||||||
Game::init(level, music);
|
Game::init(level, music);
|
||||||
|
|
||||||
lastTime = getTime();
|
lastTime = getTime();
|
||||||
fpsTime = lastTime + 1000;
|
|
||||||
fps = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JNI_METHOD(void, nativeFree)(JNIEnv* env) {
|
JNI_METHOD(void, nativeFree)(JNIEnv* env) {
|
||||||
@@ -68,12 +64,6 @@ JNI_METHOD(void, nativeRender)(JNIEnv* env) {
|
|||||||
Core::stats.dips = 0;
|
Core::stats.dips = 0;
|
||||||
Core::stats.tris = 0;
|
Core::stats.tris = 0;
|
||||||
Game::render();
|
Game::render();
|
||||||
if (fpsTime < getTime()) {
|
|
||||||
LOG("FPS: %d DIP: %d TRI: %d\n", fps, Core::stats.dips, Core::stats.tris);
|
|
||||||
fps = 0;
|
|
||||||
fpsTime = getTime() + 1000;
|
|
||||||
} else
|
|
||||||
fps++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JNI_METHOD(void, nativeResize)(JNIEnv* env, jobject obj, jint w, jint h) {
|
JNI_METHOD(void, nativeResize)(JNIEnv* env, jobject obj, jint w, jint h) {
|
||||||
|
@@ -58,12 +58,13 @@ public class MainActivity extends Activity implements OnTouchListener, OnKeyList
|
|||||||
//setAsyncReprojectionEnabled(true);
|
//setAsyncReprojectionEnabled(true);
|
||||||
//setSustainedPerformanceMode(this, true);
|
//setSustainedPerformanceMode(this, true);
|
||||||
setContentView(view);
|
setContentView(view);
|
||||||
|
/*
|
||||||
SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE);
|
SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE);
|
||||||
sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_GAME_ROTATION_VECTOR), SensorManager.SENSOR_DELAY_FASTEST);
|
sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_GAME_ROTATION_VECTOR), SensorManager.SENSOR_DELAY_FASTEST);
|
||||||
|
*/
|
||||||
try {
|
try {
|
||||||
String packName = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_ACTIVITIES).applicationInfo.sourceDir;
|
String packName = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_ACTIVITIES).applicationInfo.sourceDir;
|
||||||
|
// hardcoded demo level and music
|
||||||
AssetFileDescriptor fLevel = this.getResources().openRawResourceFd(R.raw.level2);
|
AssetFileDescriptor fLevel = this.getResources().openRawResourceFd(R.raw.level2);
|
||||||
AssetFileDescriptor fMusic = this.getResources().openRawResourceFd(R.raw.music);
|
AssetFileDescriptor fMusic = this.getResources().openRawResourceFd(R.raw.music);
|
||||||
|
|
||||||
@@ -122,8 +123,6 @@ public class MainActivity extends Activity implements OnTouchListener, OnKeyList
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSensorChanged(SensorEvent event) {
|
public void onSensorChanged(SensorEvent event) {
|
||||||
// wrapper.onTouch(-100, 0, event.values[0], event.values[1]);
|
|
||||||
// wrapper.onTouch(-100, 1, event.values[2], event.values[3]);
|
|
||||||
wrapper.onTouch(-100, 0, -event.values[1], event.values[0]);
|
wrapper.onTouch(-100, 0, -event.values[1], event.values[0]);
|
||||||
wrapper.onTouch(-100, 1, event.values[2], event.values[3]);
|
wrapper.onTouch(-100, 1, event.values[2], event.values[3]);
|
||||||
}
|
}
|
||||||
@@ -186,6 +185,7 @@ public class MainActivity extends Activity implements OnTouchListener, OnKeyList
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @TODO: use native OpenSL ES
|
||||||
class Sound {
|
class Sound {
|
||||||
private short buffer[];
|
private short buffer[];
|
||||||
private static AudioTrack audioTrack;
|
private static AudioTrack audioTrack;
|
||||||
|
Reference in New Issue
Block a user