mirror of
https://github.com/astromaddie/lambda1-vr.git
synced 2026-10-23 02:00:20 +02:00
First Commit
Probably a load of stuff I don't want in there
This commit is contained in:
1 parent
49864d4cc3
commit
7f1fb7a27e
1203 files changed
+477531
-11
No files matched your search
@@ -0,0 +1,222 @@
|
||||
|
||||
package com.drbeef.lambda1vr;
|
||||
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.res.AssetManager;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.SurfaceHolder;
|
||||
import android.view.SurfaceView;
|
||||
import android.view.WindowManager;
|
||||
import android.view.KeyEvent;
|
||||
|
||||
import static android.system.Os.setenv;
|
||||
|
||||
|
||||
@SuppressLint("SdCardPath") public class GLES3JNIActivity extends Activity implements SurfaceHolder.Callback
|
||||
{
|
||||
// Load the gles3jni library right away to make sure JNI_OnLoad() gets called as the very first thing.
|
||||
static
|
||||
{
|
||||
System.loadLibrary( "xash" );
|
||||
}
|
||||
|
||||
private static final String TAG = "Lambda1VR";
|
||||
|
||||
String commandLineParams;
|
||||
|
||||
private SurfaceView mView;
|
||||
private SurfaceHolder mSurfaceHolder;
|
||||
private long mNativeHandle;
|
||||
|
||||
private final boolean m_asynchronousTracking = false;
|
||||
|
||||
@Override protected void onCreate( Bundle icicle )
|
||||
{
|
||||
Log.v( TAG, "----------------------------------------------------------------" );
|
||||
Log.v( TAG, "GLES3JNIActivity::onCreate()" );
|
||||
super.onCreate( icicle );
|
||||
|
||||
mView = new SurfaceView( this );
|
||||
setContentView( mView );
|
||||
mView.getHolder().addCallback( this );
|
||||
|
||||
// Force the screen to stay on, rather than letting it dim and shut off
|
||||
// while the user is watching a movie.
|
||||
getWindow().addFlags( WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON );
|
||||
|
||||
// Force screen brightness to stay at maximum
|
||||
WindowManager.LayoutParams params = getWindow().getAttributes();
|
||||
params.screenBrightness = 1.0f;
|
||||
getWindow().setAttributes( params );
|
||||
|
||||
//Set default environment
|
||||
try {
|
||||
setenv("XASH3D_BASEDIR", "/sdcard/xash/", true);
|
||||
setenv("XASH3D_ENGLIBDIR", getFilesDir().getParentFile().getPath() + "/lib", true);
|
||||
setenv("XASH3D_GAMELIBDIR", getFilesDir().getParentFile().getPath() + "/lib", true);
|
||||
setenv("XASH3D_GAMEDIR", "valve", true);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//GLES3JNILib.setCallbackObjects(mAudio, this);
|
||||
|
||||
//Read these from a file and pass through
|
||||
commandLineParams = new String("quake");
|
||||
|
||||
//See if user is trying to use command line params
|
||||
if(new File("/sdcard/xash/commandline.txt").exists()) // should exist!
|
||||
{
|
||||
BufferedReader br;
|
||||
try {
|
||||
br = new BufferedReader(new FileReader("/sdcard/xash/commandline.txt"));
|
||||
String s;
|
||||
StringBuilder sb=new StringBuilder(0);
|
||||
while ((s=br.readLine())!=null)
|
||||
sb.append(s + " ");
|
||||
br.close();
|
||||
|
||||
commandLineParams = new String(sb.toString());
|
||||
} catch (FileNotFoundException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
mNativeHandle = GLES3JNILib.onCreate( this, commandLineParams );
|
||||
}
|
||||
|
||||
public void copy_asset(String path, String name) {
|
||||
File f = new File(path + "/" + name);
|
||||
if (!f.exists()) {
|
||||
|
||||
//Ensure we have an appropriate folder
|
||||
new File(path).mkdirs();
|
||||
_copy_asset(name, path + "/" + name);
|
||||
}
|
||||
}
|
||||
|
||||
public void _copy_asset(String name_in, String name_out) {
|
||||
AssetManager assets = this.getAssets();
|
||||
|
||||
try {
|
||||
InputStream in = assets.open(name_in);
|
||||
OutputStream out = new FileOutputStream(name_out);
|
||||
|
||||
copy_stream(in, out);
|
||||
|
||||
out.close();
|
||||
in.close();
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void copy_stream(InputStream in, OutputStream out)
|
||||
throws IOException {
|
||||
byte[] buf = new byte[1024];
|
||||
while (true) {
|
||||
int count = in.read(buf);
|
||||
if (count <= 0)
|
||||
break;
|
||||
out.write(buf, 0, count);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override protected void onStart()
|
||||
{
|
||||
Log.v( TAG, "GLES3JNIActivity::onStart()" );
|
||||
super.onStart();
|
||||
|
||||
GLES3JNILib.onStart( mNativeHandle );
|
||||
}
|
||||
|
||||
@Override protected void onResume()
|
||||
{
|
||||
Log.v( TAG, "GLES3JNIActivity::onResume()" );
|
||||
super.onResume();
|
||||
|
||||
GLES3JNILib.onResume( mNativeHandle );
|
||||
}
|
||||
|
||||
@Override protected void onPause()
|
||||
{
|
||||
Log.v( TAG, "GLES3JNIActivity::onPause()" );
|
||||
GLES3JNILib.onPause( mNativeHandle );
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override protected void onStop()
|
||||
{
|
||||
Log.v( TAG, "GLES3JNIActivity::onStop()" );
|
||||
GLES3JNILib.onStop( mNativeHandle );
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
@Override protected void onDestroy()
|
||||
{
|
||||
Log.v( TAG, "GLES3JNIActivity::onDestroy()" );
|
||||
|
||||
if ( mSurfaceHolder != null )
|
||||
{
|
||||
GLES3JNILib.onSurfaceDestroyed( mNativeHandle );
|
||||
}
|
||||
|
||||
GLES3JNILib.onDestroy( mNativeHandle );
|
||||
|
||||
super.onDestroy();
|
||||
mNativeHandle = 0;
|
||||
}
|
||||
|
||||
@Override public void surfaceCreated( SurfaceHolder holder )
|
||||
{
|
||||
Log.v( TAG, "GLES3JNIActivity::surfaceCreated()" );
|
||||
if ( mNativeHandle != 0 )
|
||||
{
|
||||
GLES3JNILib.onSurfaceCreated( mNativeHandle, holder.getSurface() );
|
||||
mSurfaceHolder = holder;
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void surfaceChanged( SurfaceHolder holder, int format, int width, int height )
|
||||
{
|
||||
Log.v( TAG, "GLES3JNIActivity::surfaceChanged()" );
|
||||
if ( mNativeHandle != 0 )
|
||||
{
|
||||
GLES3JNILib.onSurfaceChanged( mNativeHandle, holder.getSurface() );
|
||||
mSurfaceHolder = holder;
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void surfaceDestroyed( SurfaceHolder holder )
|
||||
{
|
||||
Log.v( TAG, "GLES3JNIActivity::surfaceDestroyed()" );
|
||||
if ( mNativeHandle != 0 )
|
||||
{
|
||||
GLES3JNILib.onSurfaceDestroyed( mNativeHandle );
|
||||
mSurfaceHolder = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user