Compare commits
No commits in common. "1caa7fe8de05b2a858a35fd1d3d1fb1bf26fa03c" and "d645d3eb18cf946194c3501544ee27b8f4c6e4fc" have entirely different histories.
1caa7fe8de
...
d645d3eb18
2 changed files with 215 additions and 219 deletions
|
@ -27,8 +27,7 @@
|
||||||
#include <android/log.h>
|
#include <android/log.h>
|
||||||
#include <android/native_activity.h>
|
#include <android/native_activity.h>
|
||||||
|
|
||||||
//webview
|
#include "webview_native_activity.h"
|
||||||
//webview #include "webview_native_activity.h"
|
|
||||||
struct android_app * gapp;
|
struct android_app * gapp;
|
||||||
|
|
||||||
#define LOGI(...) ((void)printf(__VA_ARGS__))
|
#define LOGI(...) ((void)printf(__VA_ARGS__))
|
||||||
|
|
|
@ -23,65 +23,63 @@
|
||||||
//#include "cnfa/CNFA.h"
|
//#include "cnfa/CNFA.h"
|
||||||
#include "CNFG.h"
|
#include "CNFG.h"
|
||||||
|
|
||||||
//webview//#define WEBVIEW_NATIVE_ACTIVITY_IMPLEMENTATION
|
//#define WEBVIEW_NATIVE_ACTIVITY_IMPLEMENTATION
|
||||||
//webview//#include "webview_native_activity.h"
|
//#include "webview_native_activity.h"
|
||||||
|
|
||||||
float mountainangle;
|
float mountainangle;
|
||||||
float mountainoffsetx;
|
float mountainoffsetx;
|
||||||
float mountainoffsety;
|
float mountainoffsety;
|
||||||
|
|
||||||
//SENSORSTURFF ASensorManager * sm;
|
ASensorManager * sm;
|
||||||
//SENSORSTURFF const ASensor * as;
|
const ASensor * as;
|
||||||
//SENSORSTURFF bool no_sensor_for_gyro = false;
|
bool no_sensor_for_gyro = false;
|
||||||
//SENSORSTURFF ASensorEventQueue* aeq;
|
ASensorEventQueue* aeq;
|
||||||
//SENSORSTURFF ALooper * l;
|
ALooper * l;
|
||||||
|
|
||||||
//webview//WebViewNativeActivityObject MyWebView;
|
//WebViewNativeActivityObject MyWebView;
|
||||||
|
|
||||||
//AUDIO const uint32_t SAMPLE_RATE = 44100;
|
const uint32_t SAMPLE_RATE = 44100;
|
||||||
//AUDIO const uint16_t SAMPLE_COUNT = 512;
|
const uint16_t SAMPLE_COUNT = 512;
|
||||||
//AUDIO uint32_t stream_offset = 0;
|
uint32_t stream_offset = 0;
|
||||||
//AUDIO uint16_t audio_frequency;
|
uint16_t audio_frequency;
|
||||||
|
|
||||||
|
void SetupIMU()
|
||||||
|
{
|
||||||
|
sm = ASensorManager_getInstanceForPackage("gyroscope");
|
||||||
|
as = ASensorManager_getDefaultSensor( sm, ASENSOR_TYPE_GYROSCOPE );
|
||||||
|
no_sensor_for_gyro = as == NULL;
|
||||||
|
l = ALooper_prepare( ALOOPER_PREPARE_ALLOW_NON_CALLBACKS );
|
||||||
|
aeq = ASensorManager_createEventQueue( sm, (ALooper*)&l, 0, 0, 0 ); //XXX??!?! This looks wrong.
|
||||||
|
if(!no_sensor_for_gyro) {
|
||||||
|
ASensorEventQueue_enableSensor( aeq, as);
|
||||||
|
printf( "setEvent Rate: %d\n", ASensorEventQueue_setEventRate( aeq, as, 10000 ) );
|
||||||
|
}
|
||||||
|
|
||||||
//SENSORSTURFF // Inertial Measurement Unit (gyroscopes and accelerometer)
|
}
|
||||||
//SENSORSTURFF void SetupIMU()
|
|
||||||
//SENSORSTURFF {
|
|
||||||
//SENSORSTURFF sm = ASensorManager_getInstanceForPackage("gyroscope");
|
|
||||||
//SENSORSTURFF as = ASensorManager_getDefaultSensor( sm, ASENSOR_TYPE_GYROSCOPE );
|
|
||||||
//SENSORSTURFF no_sensor_for_gyro = as == NULL;
|
|
||||||
//SENSORSTURFF l = ALooper_prepare( ALOOPER_PREPARE_ALLOW_NON_CALLBACKS );
|
|
||||||
//SENSORSTURFF aeq = ASensorManager_createEventQueue( sm, (ALooper*)&l, 0, 0, 0 ); //XXX??!?! This looks wrong.
|
|
||||||
//SENSORSTURFF if(!no_sensor_for_gyro) {
|
|
||||||
//SENSORSTURFF ASensorEventQueue_enableSensor( aeq, as);
|
|
||||||
//SENSORSTURFF printf( "setEvent Rate: %d\n", ASensorEventQueue_setEventRate( aeq, as, 10000 ) );
|
|
||||||
//SENSORSTURFF }
|
|
||||||
//SENSORSTURFF
|
|
||||||
//SENSORSTURFF }
|
|
||||||
|
|
||||||
//SENSORSTURFF float accx, accy, accz;
|
float accx, accy, accz;
|
||||||
//SENSORSTURFF int accs;
|
int accs;
|
||||||
//SENSORSTURFF
|
|
||||||
//SENSORSTURFF void AccCheck()
|
void AccCheck()
|
||||||
//SENSORSTURFF {
|
{
|
||||||
//SENSORSTURFF if(no_sensor_for_gyro) {
|
if(no_sensor_for_gyro) {
|
||||||
//SENSORSTURFF return;
|
return;
|
||||||
//SENSORSTURFF }
|
}
|
||||||
//SENSORSTURFF
|
|
||||||
//SENSORSTURFF ASensorEvent evt;
|
ASensorEvent evt;
|
||||||
//SENSORSTURFF do
|
do
|
||||||
//SENSORSTURFF {
|
{
|
||||||
//SENSORSTURFF ssize_t s = ASensorEventQueue_getEvents( aeq, &evt, 1 );
|
ssize_t s = ASensorEventQueue_getEvents( aeq, &evt, 1 );
|
||||||
//SENSORSTURFF if( s <= 0 ) break;
|
if( s <= 0 ) break;
|
||||||
//SENSORSTURFF accx = evt.vector.v[0];
|
accx = evt.vector.v[0];
|
||||||
//SENSORSTURFF accy = evt.vector.v[1];
|
accy = evt.vector.v[1];
|
||||||
//SENSORSTURFF accz = evt.vector.v[2];
|
accz = evt.vector.v[2];
|
||||||
//SENSORSTURFF mountainangle /*degrees*/ -= accz;// * 3.1415 / 360.0;// / 100.0;
|
mountainangle /*degrees*/ -= accz;// * 3.1415 / 360.0;// / 100.0;
|
||||||
//SENSORSTURFF mountainoffsety += accy;
|
mountainoffsety += accy;
|
||||||
//SENSORSTURFF mountainoffsetx += accx;
|
mountainoffsetx += accx;
|
||||||
//SENSORSTURFF accs++;
|
accs++;
|
||||||
//SENSORSTURFF } while( 1 );
|
} while( 1 );
|
||||||
//SENSORSTURFF }
|
}
|
||||||
|
|
||||||
unsigned frames = 0;
|
unsigned frames = 0;
|
||||||
unsigned long iframeno = 0;
|
unsigned long iframeno = 0;
|
||||||
|
@ -355,164 +353,164 @@ void HandleThisWindowTermination()
|
||||||
|
|
||||||
|
|
||||||
uint32_t randomtexturedata[256*256];
|
uint32_t randomtexturedata[256*256];
|
||||||
//webview //uint32_t webviewdata[500*500];
|
//uint32_t webviewdata[500*500];
|
||||||
//webview //char fromJSBuffer[128];
|
//char fromJSBuffer[128];
|
||||||
//webview
|
|
||||||
//webview //void CheckWebView( void * v )
|
|
||||||
//webview //{
|
|
||||||
//webview // static int runno = 0;
|
|
||||||
//webview // WebViewNativeActivityObject * wvn = (WebViewNativeActivityObject*)v;
|
|
||||||
//webview // if( WebViewGetProgress( wvn ) != 100 ) return;
|
|
||||||
//webview //
|
|
||||||
//webview // runno++;
|
|
||||||
//webview // if( runno == 1 )
|
|
||||||
//webview // {
|
|
||||||
//webview // // The attach (initial) message payload has no meaning.
|
|
||||||
//webview // WebViewPostMessage( wvn, "", 1 );
|
|
||||||
//webview // }
|
|
||||||
//webview // else
|
|
||||||
//webview // {
|
|
||||||
//webview // // Invoke JavaScript, which calls a function to send a webmessage
|
|
||||||
//webview // // back into C land.
|
|
||||||
//webview // WebViewExecuteJavascript( wvn, "SendMessageToC();" );
|
|
||||||
//webview //
|
|
||||||
//webview // // Send a WebMessage into the JavaScript code.
|
|
||||||
//webview // char st[128];
|
|
||||||
//webview // sprintf( st, "Into JavaScript %d\n", runno );
|
|
||||||
//webview // WebViewPostMessage( wvn, st, 0 );
|
|
||||||
//webview // }
|
|
||||||
//webview //}
|
|
||||||
|
|
||||||
//webview//jobject g_attachLooper;
|
//void CheckWebView( void * v )
|
||||||
|
//{
|
||||||
|
// static int runno = 0;
|
||||||
|
// WebViewNativeActivityObject * wvn = (WebViewNativeActivityObject*)v;
|
||||||
|
// if( WebViewGetProgress( wvn ) != 100 ) return;
|
||||||
|
//
|
||||||
|
// runno++;
|
||||||
|
// if( runno == 1 )
|
||||||
|
// {
|
||||||
|
// // The attach (initial) message payload has no meaning.
|
||||||
|
// WebViewPostMessage( wvn, "", 1 );
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// // Invoke JavaScript, which calls a function to send a webmessage
|
||||||
|
// // back into C land.
|
||||||
|
// WebViewExecuteJavascript( wvn, "SendMessageToC();" );
|
||||||
|
//
|
||||||
|
// // Send a WebMessage into the JavaScript code.
|
||||||
|
// char st[128];
|
||||||
|
// sprintf( st, "Into JavaScript %d\n", runno );
|
||||||
|
// WebViewPostMessage( wvn, st, 0 );
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
//webview //void SetupWebView( void * v )
|
jobject g_attachLooper;
|
||||||
//webview //{
|
|
||||||
//webview // WebViewNativeActivityObject * wvn = (WebViewNativeActivityObject*)v;
|
//void SetupWebView( void * v )
|
||||||
//webview //
|
//{
|
||||||
//webview //
|
// WebViewNativeActivityObject * wvn = (WebViewNativeActivityObject*)v;
|
||||||
//webview // const struct JNINativeInterface * env = 0;
|
//
|
||||||
//webview // const struct JNINativeInterface ** envptr = &env;
|
//
|
||||||
//webview // const struct JNIInvokeInterface ** jniiptr = gapp->activity->vm;
|
// const struct JNINativeInterface * env = 0;
|
||||||
//webview // const struct JNIInvokeInterface * jnii = *jniiptr;
|
// const struct JNINativeInterface ** envptr = &env;
|
||||||
//webview //
|
// const struct JNIInvokeInterface ** jniiptr = gapp->activity->vm;
|
||||||
//webview // jnii->AttachCurrentThread( jniiptr, &envptr, NULL);
|
// const struct JNIInvokeInterface * jnii = *jniiptr;
|
||||||
//webview // env = (*envptr);
|
//
|
||||||
//webview //
|
// jnii->AttachCurrentThread( jniiptr, &envptr, NULL);
|
||||||
//webview // while( g_attachLooper == 0 ) usleep(1);
|
// env = (*envptr);
|
||||||
//webview // WebViewCreate( wvn, "file:///android_asset/index.html", g_attachLooper, 500, 500 );
|
//
|
||||||
//webview // //WebViewCreate( wvn, "about:blank", g_attachLooper, 500, 500 );
|
// while( g_attachLooper == 0 ) usleep(1);
|
||||||
//webview //}
|
// WebViewCreate( wvn, "file:///android_asset/index.html", g_attachLooper, 500, 500 );
|
||||||
|
// //WebViewCreate( wvn, "about:blank", g_attachLooper, 500, 500 );
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
//webview //pthread_t jsthread;
|
//pthread_t jsthread;
|
||||||
//webview //
|
//
|
||||||
//webview //void * JavscriptThread( void * v )
|
//void * JavscriptThread( void * v )
|
||||||
//webview //{
|
//{
|
||||||
//webview // const struct JNINativeInterface * env = 0;
|
// const struct JNINativeInterface * env = 0;
|
||||||
//webview // const struct JNINativeInterface ** envptr = &env;
|
// const struct JNINativeInterface ** envptr = &env;
|
||||||
//webview // const struct JNIInvokeInterface ** jniiptr = gapp->activity->vm;
|
// const struct JNIInvokeInterface ** jniiptr = gapp->activity->vm;
|
||||||
//webview // const struct JNIInvokeInterface * jnii = *jniiptr;
|
// const struct JNIInvokeInterface * jnii = *jniiptr;
|
||||||
//webview //
|
//
|
||||||
//webview // jnii->AttachCurrentThread( jniiptr, &envptr, NULL);
|
// jnii->AttachCurrentThread( jniiptr, &envptr, NULL);
|
||||||
//webview // env = (*envptr);
|
// env = (*envptr);
|
||||||
//webview //
|
//
|
||||||
//webview // // Create a looper on this thread...
|
// // Create a looper on this thread...
|
||||||
//webview // jclass LooperClass = env->FindClass(envptr, "android/os/Looper");
|
// jclass LooperClass = env->FindClass(envptr, "android/os/Looper");
|
||||||
//webview // jmethodID myLooperMethod = env->GetStaticMethodID(envptr, LooperClass, "myLooper", "()Landroid/os/Looper;");
|
// jmethodID myLooperMethod = env->GetStaticMethodID(envptr, LooperClass, "myLooper", "()Landroid/os/Looper;");
|
||||||
//webview // jobject thisLooper = env->CallStaticObjectMethod( envptr, LooperClass, myLooperMethod );
|
// jobject thisLooper = env->CallStaticObjectMethod( envptr, LooperClass, myLooperMethod );
|
||||||
//webview // if( !thisLooper )
|
// if( !thisLooper )
|
||||||
//webview // {
|
// {
|
||||||
//webview // jmethodID prepareMethod = env->GetStaticMethodID(envptr, LooperClass, "prepare", "()V");
|
// jmethodID prepareMethod = env->GetStaticMethodID(envptr, LooperClass, "prepare", "()V");
|
||||||
//webview // env->CallStaticVoidMethod( envptr, LooperClass, prepareMethod );
|
// env->CallStaticVoidMethod( envptr, LooperClass, prepareMethod );
|
||||||
//webview // thisLooper = env->CallStaticObjectMethod( envptr, LooperClass, myLooperMethod );
|
// thisLooper = env->CallStaticObjectMethod( envptr, LooperClass, myLooperMethod );
|
||||||
//webview // g_attachLooper = env->NewGlobalRef(envptr, thisLooper);
|
// g_attachLooper = env->NewGlobalRef(envptr, thisLooper);
|
||||||
//webview // }
|
// }
|
||||||
//webview //
|
//
|
||||||
//webview // jmethodID getQueueMethod = env->GetMethodID( envptr, LooperClass, "getQueue", "()Landroid/os/MessageQueue;" );
|
// jmethodID getQueueMethod = env->GetMethodID( envptr, LooperClass, "getQueue", "()Landroid/os/MessageQueue;" );
|
||||||
//webview // jobject lque = env->CallObjectMethod( envptr, g_attachLooper, getQueueMethod );
|
// jobject lque = env->CallObjectMethod( envptr, g_attachLooper, getQueueMethod );
|
||||||
//webview //
|
//
|
||||||
//webview // jclass MessageQueueClass = env->FindClass(envptr, "android/os/MessageQueue");
|
// jclass MessageQueueClass = env->FindClass(envptr, "android/os/MessageQueue");
|
||||||
//webview // jmethodID nextMethod = env->GetMethodID( envptr, MessageQueueClass, "next", "()Landroid/os/Message;" );
|
// jmethodID nextMethod = env->GetMethodID( envptr, MessageQueueClass, "next", "()Landroid/os/Message;" );
|
||||||
//webview //
|
//
|
||||||
//webview // jclass MessageClass = env->FindClass(envptr, "android/os/Message");
|
// jclass MessageClass = env->FindClass(envptr, "android/os/Message");
|
||||||
//webview // jfieldID objid = env->GetFieldID( envptr, MessageClass, "obj", "Ljava/lang/Object;" );
|
// jfieldID objid = env->GetFieldID( envptr, MessageClass, "obj", "Ljava/lang/Object;" );
|
||||||
//webview // jclass PairClass = env->FindClass(envptr, "android/util/Pair");
|
// jclass PairClass = env->FindClass(envptr, "android/util/Pair");
|
||||||
//webview // jfieldID pairfirst = env->GetFieldID( envptr, PairClass, "first", "Ljava/lang/Object;" );
|
// jfieldID pairfirst = env->GetFieldID( envptr, PairClass, "first", "Ljava/lang/Object;" );
|
||||||
//webview //
|
//
|
||||||
//webview // while(1)
|
// while(1)
|
||||||
//webview // {
|
// {
|
||||||
//webview // // Instead of using Looper::loop(), we just call next on the looper object.
|
// // Instead of using Looper::loop(), we just call next on the looper object.
|
||||||
//webview // jobject msg = env->CallObjectMethod( envptr, lque, nextMethod );
|
// jobject msg = env->CallObjectMethod( envptr, lque, nextMethod );
|
||||||
//webview // jobject innerObj = env->GetObjectField( envptr, msg, objid );
|
// jobject innerObj = env->GetObjectField( envptr, msg, objid );
|
||||||
//webview // const char * name;
|
// const char * name;
|
||||||
//webview // jstring strObj;
|
// jstring strObj;
|
||||||
//webview // jclass innerClass;
|
// jclass innerClass;
|
||||||
//webview //
|
//
|
||||||
//webview // // Check Object Type
|
// // Check Object Type
|
||||||
//webview // {
|
// {
|
||||||
//webview // innerClass = env->GetObjectClass( envptr, innerObj );
|
// innerClass = env->GetObjectClass( envptr, innerObj );
|
||||||
//webview // jmethodID mid = env->GetMethodID( envptr, innerClass, "getClass", "()Ljava/lang/Class;");
|
// jmethodID mid = env->GetMethodID( envptr, innerClass, "getClass", "()Ljava/lang/Class;");
|
||||||
//webview // jobject clsObj = env->CallObjectMethod( envptr, innerObj, mid );
|
// jobject clsObj = env->CallObjectMethod( envptr, innerObj, mid );
|
||||||
//webview // jclass clazzz = env->GetObjectClass( envptr, clsObj );
|
// jclass clazzz = env->GetObjectClass( envptr, clsObj );
|
||||||
//webview // mid = env->GetMethodID(envptr, clazzz, "getName", "()Ljava/lang/String;");
|
// mid = env->GetMethodID(envptr, clazzz, "getName", "()Ljava/lang/String;");
|
||||||
//webview // strObj = (jstring)env->CallObjectMethod( envptr, clsObj, mid);
|
// strObj = (jstring)env->CallObjectMethod( envptr, clsObj, mid);
|
||||||
//webview // name = env->GetStringUTFChars( envptr, strObj, 0);
|
// name = env->GetStringUTFChars( envptr, strObj, 0);
|
||||||
//webview // env->DeleteLocalRef( envptr, clsObj );
|
// env->DeleteLocalRef( envptr, clsObj );
|
||||||
//webview // env->DeleteLocalRef( envptr, clazzz );
|
// env->DeleteLocalRef( envptr, clazzz );
|
||||||
//webview // }
|
// }
|
||||||
//webview //
|
//
|
||||||
//webview // if( strcmp( name, "z5" ) == 0 )
|
// if( strcmp( name, "z5" ) == 0 )
|
||||||
//webview // {
|
// {
|
||||||
//webview // // Special, Some Androids (notably Meta Quest) use a different private message type.
|
// // Special, Some Androids (notably Meta Quest) use a different private message type.
|
||||||
//webview // jfieldID mstrf = env->GetFieldID( envptr, innerClass, "a", "[B" );
|
// jfieldID mstrf = env->GetFieldID( envptr, innerClass, "a", "[B" );
|
||||||
//webview // jbyteArray jba = (jstring)env->GetObjectField(envptr, innerObj, mstrf );
|
// jbyteArray jba = (jstring)env->GetObjectField(envptr, innerObj, mstrf );
|
||||||
//webview // int len = env->GetArrayLength( envptr, jba );
|
// int len = env->GetArrayLength( envptr, jba );
|
||||||
//webview // jboolean isCopy = 0;
|
// jboolean isCopy = 0;
|
||||||
//webview // jbyte * bufferPtr = env->GetByteArrayElements(envptr, jba, &isCopy);
|
// jbyte * bufferPtr = env->GetByteArrayElements(envptr, jba, &isCopy);
|
||||||
//webview //
|
//
|
||||||
//webview // if( len >= 6 )
|
// if( len >= 6 )
|
||||||
//webview // {
|
// {
|
||||||
//webview // const char *descr = (const char*)bufferPtr + 6;
|
// const char *descr = (const char*)bufferPtr + 6;
|
||||||
//webview // char tcpy[len-5];
|
// char tcpy[len-5];
|
||||||
//webview // memcpy( tcpy, descr, len-6 );
|
// memcpy( tcpy, descr, len-6 );
|
||||||
//webview // tcpy[len-6] = 0;
|
// tcpy[len-6] = 0;
|
||||||
//webview // snprintf( fromJSBuffer, sizeof( fromJSBuffer)-1, "WebMessage: %s\n", tcpy );
|
// snprintf( fromJSBuffer, sizeof( fromJSBuffer)-1, "WebMessage: %s\n", tcpy );
|
||||||
//webview //
|
//
|
||||||
//webview // env->DeleteLocalRef( envptr, jba );
|
// env->DeleteLocalRef( envptr, jba );
|
||||||
//webview // }
|
// }
|
||||||
//webview // }
|
// }
|
||||||
//webview // else
|
// else
|
||||||
//webview // {
|
// {
|
||||||
//webview // jobject MessagePayload = env->GetObjectField( envptr, innerObj, pairfirst );
|
// jobject MessagePayload = env->GetObjectField( envptr, innerObj, pairfirst );
|
||||||
//webview // // MessagePayload is a org.chromium.content_public.browser.MessagePayload
|
// // MessagePayload is a org.chromium.content_public.browser.MessagePayload
|
||||||
//webview //
|
//
|
||||||
//webview // jclass mpclass = env->GetObjectClass( envptr, MessagePayload );
|
// jclass mpclass = env->GetObjectClass( envptr, MessagePayload );
|
||||||
//webview //
|
//
|
||||||
//webview // // Get field "b" which is the web message payload.
|
// // Get field "b" which is the web message payload.
|
||||||
//webview // // If you are using binary sockets, it will be in `c` and be a byte array.
|
// // If you are using binary sockets, it will be in `c` and be a byte array.
|
||||||
//webview // jfieldID mstrf = env->GetFieldID( envptr, mpclass, "b", "Ljava/lang/String;" );
|
// jfieldID mstrf = env->GetFieldID( envptr, mpclass, "b", "Ljava/lang/String;" );
|
||||||
//webview // jstring strObjDescr = (jstring)env->GetObjectField(envptr, MessagePayload, mstrf );
|
// jstring strObjDescr = (jstring)env->GetObjectField(envptr, MessagePayload, mstrf );
|
||||||
//webview //
|
//
|
||||||
//webview // const char *descr = env->GetStringUTFChars( envptr, strObjDescr, 0);
|
// const char *descr = env->GetStringUTFChars( envptr, strObjDescr, 0);
|
||||||
//webview // snprintf( fromJSBuffer, sizeof( fromJSBuffer)-1, "WebMessage: %s\n", descr );
|
// snprintf( fromJSBuffer, sizeof( fromJSBuffer)-1, "WebMessage: %s\n", descr );
|
||||||
//webview //
|
//
|
||||||
//webview // env->ReleaseStringUTFChars(envptr, strObjDescr, descr);
|
// env->ReleaseStringUTFChars(envptr, strObjDescr, descr);
|
||||||
//webview // env->DeleteLocalRef( envptr, strObjDescr );
|
// env->DeleteLocalRef( envptr, strObjDescr );
|
||||||
//webview // env->DeleteLocalRef( envptr, MessagePayload );
|
// env->DeleteLocalRef( envptr, MessagePayload );
|
||||||
//webview // env->DeleteLocalRef( envptr, mpclass );
|
// env->DeleteLocalRef( envptr, mpclass );
|
||||||
//webview // }
|
// }
|
||||||
//webview // env->ReleaseStringUTFChars(envptr, strObj, name);
|
// env->ReleaseStringUTFChars(envptr, strObj, name);
|
||||||
//webview // env->DeleteLocalRef( envptr, strObj );
|
// env->DeleteLocalRef( envptr, strObj );
|
||||||
//webview // env->DeleteLocalRef( envptr, msg );
|
// env->DeleteLocalRef( envptr, msg );
|
||||||
//webview // env->DeleteLocalRef( envptr, innerObj );
|
// env->DeleteLocalRef( envptr, innerObj );
|
||||||
//webview // env->DeleteLocalRef( envptr, innerClass );
|
// env->DeleteLocalRef( envptr, innerClass );
|
||||||
//webview // }
|
// }
|
||||||
//webview //}
|
//}
|
||||||
//webview //
|
//
|
||||||
//webview //void SetupJSThread()
|
//void SetupJSThread()
|
||||||
//webview //{
|
//{
|
||||||
//webview // pthread_create( &jsthread, 0, JavscriptThread, 0 );
|
// pthread_create( &jsthread, 0, JavscriptThread, 0 );
|
||||||
//webview //}
|
//}
|
||||||
|
|
||||||
int main( int argc, char ** argv )
|
int main( int argc, char ** argv )
|
||||||
{
|
{
|
||||||
|
@ -544,17 +542,16 @@ int main( int argc, char ** argv )
|
||||||
assettext = temp;
|
assettext = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
//SENSORSTURFF // Inertial Measurement Unit (gyroscopes and accelerometer)
|
SetupIMU();
|
||||||
//SENSORSTURFF SetupIMU();
|
|
||||||
|
|
||||||
//SOUND // Disabled, for now.
|
// Disabled, for now.
|
||||||
//SOUND //InitCNFAAndroid( AudioCallback, "A Name", SAMPLE_RATE, 0, 1, 0, SAMPLE_COUNT, 0, 0, 0 );
|
//InitCNFAAndroid( AudioCallback, "A Name", SAMPLE_RATE, 0, 1, 0, SAMPLE_COUNT, 0, 0, 0 );
|
||||||
|
|
||||||
//webview// SetupJSThread();
|
// SetupJSThread();
|
||||||
|
|
||||||
//webview // Create webview and wait for its completion
|
// Create webview and wait for its completion
|
||||||
//webview // RunCallbackOnUIThread( SetupWebView, &MyWebView );
|
// RunCallbackOnUIThread( SetupWebView, &MyWebView );
|
||||||
//webview // while( !MyWebView.WebViewObject ) usleep(1);
|
// while( !MyWebView.WebViewObject ) usleep(1);
|
||||||
|
|
||||||
Log( "Startup Complete" );
|
Log( "Startup Complete" );
|
||||||
|
|
||||||
|
@ -569,12 +566,12 @@ int main( int argc, char ** argv )
|
||||||
}
|
}
|
||||||
|
|
||||||
CNFGHandleInput();
|
CNFGHandleInput();
|
||||||
//SENSORSTURFF AccCheck();
|
AccCheck();
|
||||||
|
|
||||||
if( suspended ) { usleep(50000); continue; }
|
if( suspended ) { usleep(50000); continue; }
|
||||||
|
|
||||||
//webview // RunCallbackOnUIThread( (void(*)(void*))WebViewRequestRenderToCanvas, &MyWebView );
|
// RunCallbackOnUIThread( (void(*)(void*))WebViewRequestRenderToCanvas, &MyWebView );
|
||||||
//webview // RunCallbackOnUIThread( CheckWebView, &MyWebView );
|
// RunCallbackOnUIThread( CheckWebView, &MyWebView );
|
||||||
|
|
||||||
CNFGClearFrame();
|
CNFGClearFrame();
|
||||||
CNFGColor( 0xFFFFFFFF );
|
CNFGColor( 0xFFFFFFFF );
|
||||||
|
@ -590,7 +587,7 @@ int main( int argc, char ** argv )
|
||||||
|
|
||||||
CNFGPenX = 0; CNFGPenY = 480;
|
CNFGPenX = 0; CNFGPenY = 480;
|
||||||
char st[50];
|
char st[50];
|
||||||
sprintf( st, "%dx%d %d %d %d %d %d %d\n%d %d", screenx, screeny, lastbuttonx, lastbuttony, lastmotionx, lastmotiony, lastkey, lastkeydown, lastbid, lastmask);
|
sprintf( st, "%dx%d %d %d %d %d %d %d\n%d %d\n%5.2f %5.2f %5.2f %d", screenx, screeny, lastbuttonx, lastbuttony, lastmotionx, lastmotiony, lastkey, lastkeydown, lastbid, lastmask, accx, accy, accz, accs );
|
||||||
CNFGDrawText( st, 10 );
|
CNFGDrawText( st, 10 );
|
||||||
CNFGSetLineWidth( 2 );
|
CNFGSetLineWidth( 2 );
|
||||||
|
|
||||||
|
@ -644,8 +641,8 @@ int main( int argc, char ** argv )
|
||||||
randomtexturedata[x+y*256] = x | ((x*394543L+y*355+iframeno*3)<<8);
|
randomtexturedata[x+y*256] = x | ((x*394543L+y*355+iframeno*3)<<8);
|
||||||
CNFGBlitImage( randomtexturedata, 100, 600, 256, 256 );
|
CNFGBlitImage( randomtexturedata, 100, 600, 256, 256 );
|
||||||
|
|
||||||
//webview //WebViewNativeGetPixels( &MyWebView, webviewdata, 500, 500 );
|
//WebViewNativeGetPixels( &MyWebView, webviewdata, 500, 500 );
|
||||||
//webview //CNFGBlitImage( webviewdata, 500, 640, 500, 500 );
|
//CNFGBlitImage( webviewdata, 500, 640, 500, 500 );
|
||||||
|
|
||||||
frames++;
|
frames++;
|
||||||
//On Android, CNFGSwapBuffers must be called, and CNFGUpdateScreenWithBitmap does not have an implied framebuffer swap.
|
//On Android, CNFGSwapBuffers must be called, and CNFGUpdateScreenWithBitmap does not have an implied framebuffer swap.
|
||||||
|
|
Loading…
Add table
Reference in a new issue