Procházet zdrojové kódy

Merge pull request #174 from lilligreen/android

Android platform updates
Mike Lilligreen před 11 roky
rodič
revize
38ea1606f9

+ 25 - 3
engine/compilers/android/jni/Android.mk

@@ -83,7 +83,6 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH) \
     				$(LOCAL_PATH)/../../../source/gui/editor \
     				$(LOCAL_PATH)/../../../source/gui/language \
     				$(LOCAL_PATH)/../../../source/input \
-					$(LOCAL_PATH)/../../../source/input/leapMotion \
     				$(LOCAL_PATH)/../../../source/io \
     				$(LOCAL_PATH)/../../../source/io/resource \
     				$(LOCAL_PATH)/../../../source/io/zip \
@@ -102,6 +101,7 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH) \
     				$(LOCAL_PATH)/../../../source/platform/nativeDialogs \
     				$(LOCAL_PATH)/../../../source/platformAndroid \
     				$(LOCAL_PATH)/../../../source/sim \
+    				$(LOCAL_PATH)/../../../source/spine \
     				$(LOCAL_PATH)/../../../source/string 
 #    				$(LOCAL_PATH)/../../../source/testing \
 #    				$(LOCAL_PATH)/../../../source/testing/tests \
@@ -174,6 +174,7 @@ LOCAL_SRC_FILES :=  ../../../lib/ljpeg/jcapimin.c \
 					../../../source/2d/assets/ParticleAssetEmitter.cc \
 					../../../source/2d/assets/ParticleAssetField.cc \
 					../../../source/2d/assets/ParticleAssetFieldCollection.cc \
+					../../../source/2d/assets/SkeletonAsset.cc \
 					../../../source/2d/controllers/AmbientForceController.cc \
 					../../../source/2d/controllers/BuoyancyController.cc \
 					../../../source/2d/controllers/core/GroupedSceneController.cc \
@@ -204,6 +205,7 @@ LOCAL_SRC_FILES :=  ../../../lib/ljpeg/jcapimin.c \
 					../../../source/2d/sceneobject/SceneObjectSet.cc \
 					../../../source/2d/sceneobject/Scroller.cc \
 					../../../source/2d/sceneobject/ShapeVector.cc \
+					../../../source/2d/sceneobject/SkeletonObject.cc \
 					../../../source/2d/sceneobject/Sprite.cc \
 					../../../source/2d/sceneobject/Trigger.cc \
 					../../../source/2d/scene/ContactFilter.cc \
@@ -338,8 +340,6 @@ LOCAL_SRC_FILES :=  ../../../lib/ljpeg/jcapimin.c \
 					../../../source/gui/language/lang.cc \
 					../../../source/gui/messageVector.cc \
 					../../../source/input/actionMap.cc \
-					../../../source/input/leapMotion/leapMotionManager.cc \
-					../../../source/input/leapMotion/leapMotionUtil.cpp \
 					../../../source/io/bitStream.cc \
 					../../../source/io/bufferStream.cc \
 					../../../source/io/fileObject.cc \
@@ -509,6 +509,28 @@ LOCAL_SRC_FILES :=  ../../../lib/ljpeg/jcapimin.c \
 					../../../source/sim/SimObjectList.cc \
 					../../../source/sim/simSerialize.cpp \
 					../../../source/sim/simSet.cc \
+					../../../source/spine/Animation.c \
+					../../../source/spine/AnimationState.c \
+					../../../source/spine/AnimationStateData.c \
+					../../../source/spine/Atlas.c \
+					../../../source/spine/AtlasAttachmentLoader.c \
+					../../../source/spine/Attachment.c \
+					../../../source/spine/AttachmentLoader.c \
+					../../../source/spine/Bone.c \
+					../../../source/spine/BoneData.c \
+					../../../source/spine/BoundingBoxAttachment.c \
+					../../../source/spine/Event.c \
+					../../../source/spine/EventData.c \
+					../../../source/spine/extension.c \
+					../../../source/spine/Json.c \
+					../../../source/spine/RegionAttachment.c \
+					../../../source/spine/Skeleton.c \
+					../../../source/spine/SkeletonBounds.c \
+					../../../source/spine/SkeletonData.c \
+					../../../source/spine/SkeletonJson.c \
+					../../../source/spine/Skin.c \
+					../../../source/spine/Slot.c \
+					../../../source/spine/SlotData.c \
 					../../../source/string/findMatch.cc \
 					../../../source/string/stringBuffer.cc \
 					../../../source/string/stringStack.cc \

+ 1 - 1
engine/source/platformAndroid/AndroidConsole.h

@@ -27,7 +27,7 @@
 #include "console/console.h"
 #endif
 #ifndef _EVENT_H_
-#include "Platform/event.h"
+#include "platform/event.h"
 #endif
 
 

+ 1 - 1
engine/source/platformAndroid/AndroidDialogs.cpp

@@ -26,7 +26,7 @@
 #include "platform/threads/mutex.h"
 #include "memory/safeDelete.h"
 #include "math/mMath.h"
-#include "string/Unicode.h"
+#include "string/unicode.h"
 #include "console/consoleTypes.h"
 #include "platform/threads/thread.h"
 

+ 1 - 1
engine/source/platformAndroid/AndroidFont.cpp

@@ -23,7 +23,7 @@
 #include "platform/platform.h"
 #include "platformAndroid/platformAndroid.h"
 #include "platformAndroid/AndroidFont.h"
-#include "string/Unicode.h"
+#include "string/unicode.h"
 #include <sstream>
 
 //------------------------------------------------------------------------------

+ 10 - 10
engine/source/platformAndroid/AndroidInput.cpp

@@ -27,7 +27,7 @@
 #include "platform/event.h"
 #include "console/console.h"
 #include "game/gameInterface.h"
-#include "string/Unicode.h"
+#include "string/unicode.h"
 #include "gui/guiCanvas.h"
 
 
@@ -683,9 +683,9 @@ int processMultipleTouches()
         touchEvent.action = SI_TOUCH;
         touchEvent.objType = SI_TOUCHDOWN;
         
-        dStrcpy(touchEvent.touchesX, posX);
-        dStrcpy(touchEvent.touchesY, posY);
-        dStrcpy(touchEvent.touchIDs, touchNums);
+        dStrcpy(touchEvent.fingersX, posX);
+        dStrcpy(touchEvent.fingersY, posY);
+        dStrcpy(touchEvent.fingerIDs, touchNums);
         
         touchEvent.modifier = 0;
         
@@ -728,9 +728,9 @@ int processMultipleTouches()
         touchEvent.action = SI_TOUCH;
         touchEvent.objType = SI_TOUCHMOVE;
         
-        dStrcpy(touchEvent.touchesX, posX);
-        dStrcpy(touchEvent.touchesY, posY);
-        dStrcpy(touchEvent.touchIDs, touchNums);
+        dStrcpy(touchEvent.fingersX, posX);
+        dStrcpy(touchEvent.fingersY, posY);
+        dStrcpy(touchEvent.fingerIDs, touchNums);
         
         touchEvent.modifier = 0;
         
@@ -788,9 +788,9 @@ int processMultipleTouches()
         touchEvent.action = SI_TOUCH;
         touchEvent.objType = SI_TOUCHUP;
         
-        dStrcpy(touchEvent.touchesX, posX);
-        dStrcpy(touchEvent.touchesY, posY);
-        dStrcpy(touchEvent.touchIDs, touchNums);
+        dStrcpy(touchEvent.fingersX, posX);
+        dStrcpy(touchEvent.fingersY, posY);
+        dStrcpy(touchEvent.fingerIDs, touchNums);
         
         touchEvent.modifier = 0;
         

+ 86 - 85
engine/source/platformAndroid/T2DActivity.cpp

@@ -98,7 +98,7 @@ void toggleSplashScreen(bool show)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/SplashScreen");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.SplashScreen");
 	jclass SplashScreenClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodSplashScreen = lJNIEnv->GetStaticMethodID(SplashScreenClass, "ToggleSplashScreen", "(Landroid/content/Context;ZII)V");
 	lJNIEnv->CallStaticVoidMethod(SplashScreenClass, MethodSplashScreen, lNativeActivity, (jboolean)show, (jint)platState.engine->width, (jint)platState.engine->height);
@@ -346,7 +346,7 @@ void androidKeyboardEvent(int keyval, bool make) {
    event.action     = make ? SI_MAKE : SI_BREAK;
    event.modifier   = 0;
    event.ascii      = keyCode;
-   event.fValue     = make ? 1.0f : 0.0f;
+   event.fValues[0]  = make ? 1.0f : 0.0f;
 
    Game->postEvent(event);
 }
@@ -446,80 +446,81 @@ static int32_t engine_handle_input(struct android_app* app, AInputEvent* event)
 
     if (AInputEvent_getType(event) == AINPUT_EVENT_TYPE_MOTION) {
 
-        if ((AMotionEvent_getAction(event) & AMOTION_EVENT_ACTION_MASK) == AMOTION_EVENT_ACTION_DOWN) {
+        int32_t eventValue = (AMotionEvent_getAction(event) & AMOTION_EVENT_ACTION_MASK);
 
-        	size_t touchCount = AMotionEvent_getPointerCount(event);
-        	for (U8 i = 0; i < touchCount; i++)
-        	{
-        		Point2I point;
-        		point.x = AMotionEvent_getX(event, i);
-        		point.y = AMotionEvent_getY(event, i);
+        if (eventValue == AMOTION_EVENT_ACTION_DOWN || eventValue == AMOTION_EVENT_ACTION_POINTER_DOWN) {
 
+            size_t touchCount = AMotionEvent_getPointerCount(event);
+            for (U8 i = 0; i < touchCount; i++)
+            {
+                Point2I point;
+                point.x = AMotionEvent_getX(event, i);
+                point.y = AMotionEvent_getY(event, i);
 
-        		rawLastTouches[i].x = point.x;
-        		rawLastTouches[i].y = point.y;
+                rawLastTouches[i].x = point.x;
+                rawLastTouches[i].y = point.y;
 
-        	    createMouseDownEvent(i, point.x, point.y, touchCount);
-        	}
+                createMouseDownEvent(i, point.x, point.y, touchCount);
+            }
 
         }
 
-        if ((AMotionEvent_getAction(event) & AMOTION_EVENT_ACTION_MASK) == AMOTION_EVENT_ACTION_UP) {
+        if (eventValue == AMOTION_EVENT_ACTION_UP || eventValue == AMOTION_EVENT_ACTION_POINTER_UP) {
 
-        	size_t touchCount = AMotionEvent_getPointerCount(event);
-			for (U8 i = 0; i < touchCount; i++)
-			{
-				Point2I point;
-				point.x = AMotionEvent_getX(event, i);
-				point.y = AMotionEvent_getY(event, i);
-				Point2I prevPoint = rawLastTouches[i];
-
-				createMouseUpEvent(i, point.x, point.y, prevPoint.x, prevPoint.y, touchCount);
-
-    	        if (touchCount > 0)
-    	        {
-    	            // this was a tap, so create a tap event
-    	            createMouseTapEvent(touchCount, (int) point.x, (int) point.y);
-    	        }
-			}
+            size_t touchCount = AMotionEvent_getPointerCount(event);
+            for (U8 i = 0; i < touchCount; i++)
+            {
+                Point2I point;
+                point.x = AMotionEvent_getX(event, i);
+                point.y = AMotionEvent_getY(event, i);
+                Point2I prevPoint = rawLastTouches[i];
+
+                createMouseUpEvent(i, point.x, point.y, prevPoint.x, prevPoint.y, touchCount);
+
+                if (touchCount > 0)
+                {
+                    // this was a tap, so create a tap event
+                    createMouseTapEvent(touchCount, (int) point.x, (int) point.y);
+                }
+            }
         }
 
-        if ((AMotionEvent_getAction(event) & AMOTION_EVENT_ACTION_MASK) == AMOTION_EVENT_ACTION_MOVE) {
+        if (eventValue == AMOTION_EVENT_ACTION_MOVE) {
 
-        	size_t touchCount = AMotionEvent_getPointerCount(event);
-			for (U8 i = 0; i < touchCount; i++)
-			{
-				Point2I point;
-				point.x = AMotionEvent_getX(event, i);
-				point.y = AMotionEvent_getY(event, i);
-				Point2I prevPoint = rawLastTouches[i];
+            size_t touchCount = AMotionEvent_getPointerCount(event);
+            for (U8 i = 0; i < touchCount; i++)
+            {
+                Point2I point;
+                point.x = AMotionEvent_getX(event, i);
+                point.y = AMotionEvent_getY(event, i);
+                Point2I prevPoint = rawLastTouches[i];
 
-				createMouseMoveEvent(i, point.x, point.y, prevPoint.x, prevPoint.y);
+                createMouseMoveEvent(i, point.x, point.y, prevPoint.x, prevPoint.y);
 
-				rawLastTouches[i].x = point.x;
-				rawLastTouches[i].y = point.y;
+                rawLastTouches[i].x = point.x;
+                rawLastTouches[i].y = point.y;
 
-			}
+            }
         }
 
-        if ((AMotionEvent_getAction(event) & AMOTION_EVENT_ACTION_MASK) == AMOTION_EVENT_ACTION_CANCEL) {
+        if (eventValue == AMOTION_EVENT_ACTION_CANCEL) {
 
-        	size_t touchCount = AMotionEvent_getPointerCount(event);
-			for (U8 i = 0; i < touchCount; i++)
-			{
-				Point2I point;
-				point.x = AMotionEvent_getX(event, i);
-				point.y = AMotionEvent_getY(event, i);
-				Point2I prevPoint = rawLastTouches[i];
+            size_t touchCount = AMotionEvent_getPointerCount(event);
+            for (U8 i = 0; i < touchCount; i++)
+            {
+                Point2I point;
+                point.x = AMotionEvent_getX(event, i);
+                point.y = AMotionEvent_getY(event, i);
+                Point2I prevPoint = rawLastTouches[i];
 
-				createMouseUpEvent(i, point.x, point.y, prevPoint.x, prevPoint.y, touchCount);
+                createMouseUpEvent(i, point.x, point.y, prevPoint.x, prevPoint.y, touchCount);
 
-				if (touchCount > 0)
-				{
-					// this was a tap, so create a tap event
-					createMouseTapEvent(touchCount, (int) point.x, (int) point.y);
-				}
-			}
+                if (touchCount > 0)
+                {
+                    // this was a tap, so create a tap event
+                    createMouseTapEvent(touchCount, (int) point.x, (int) point.y);
+                }
+            }
         }
 
         return 1;
@@ -1022,10 +1023,10 @@ void T2DActivity::enumerateFonts() {
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FontManager");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FontManager");
 	jclass FontManagerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodFontManager = lJNIEnv->GetStaticMethodID(FontManagerClass, "enumerateFonts", "(Landroid/content/Context;)V");
-	lJNIEnv->CallStaticObjectMethod(FontManagerClass, MethodFontManager, lNativeActivity);
+	lJNIEnv->CallStaticVoidMethod(FontManagerClass, MethodFontManager, lNativeActivity);
 	lJNIEnv->DeleteLocalRef(strClassName);
 
 	// Finished with the JVM.
@@ -1058,10 +1059,10 @@ void T2DActivity::dumpFontList() {
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FontManager");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FontManager");
 	jclass FontManagerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodFontManager = lJNIEnv->GetStaticMethodID(FontManagerClass, "dumpFontList", "()V");
-	lJNIEnv->CallStaticObjectMethod(FontManagerClass, MethodFontManager);
+	lJNIEnv->CallStaticVoidMethod(FontManagerClass, MethodFontManager);
 	lJNIEnv->DeleteLocalRef(strClassName);
 
 	// Finished with the JVM.
@@ -1094,7 +1095,7 @@ void T2DActivity::getFontPath(const char* fontName, char* fontPath) {
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FontManager");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FontManager");
 	jstring strFontName = lJNIEnv->NewStringUTF(fontName);
 	jclass FontManagerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodFontManager = lJNIEnv->GetStaticMethodID(FontManagerClass, "getFont", "(Ljava/lang/String;)Ljava/lang/String;");
@@ -1261,7 +1262,7 @@ void android_main(struct android_app* state) {
 						double userAcc[6] = { event.acceleration.x, event.acceleration.y, event.acceleration.z,0,0,0};
 
 						inputEvent.deviceInst = 0;
-						inputEvent.fValue = userAcc[i];
+						inputEvent.fValues[0] = userAcc[i];
 						inputEvent.deviceType = AccelerometerDeviceType;
 						inputEvent.objType = accelAxes[i];
 						inputEvent.objInst = i;
@@ -1329,7 +1330,7 @@ bool android_DumpDirectoriesExtra(Vector<StringTableEntry> &directoryVector)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FileWalker");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker");
 	jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodExtraPaths = lJNIEnv->GetStaticMethodID(FileWalkerClass, "getRestOfDump", "()[Ljava/lang/String;");
 	jobjectArray stringArray = (jobjectArray)lJNIEnv->CallStaticObjectMethod(FileWalkerClass, MethodExtraPaths);
@@ -1397,7 +1398,7 @@ bool android_DumpDirectories(const char *basePath, const char *path, Vector<Stri
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FileWalker");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker");
 	jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strDirName = lJNIEnv->NewStringUTF(basePath);
 	jstring strDirName2 = lJNIEnv->NewStringUTF(path);
@@ -1487,7 +1488,7 @@ bool android_DumpPathExtra(Vector<Platform::FileInfo>& fileVector)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FileWalker");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker");
 	jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodExtraPaths = lJNIEnv->GetStaticMethodID(FileWalkerClass, "getRestOfDump", "()[Ljava/lang/String;");
 	jobjectArray stringArray = (jobjectArray)lJNIEnv->CallStaticObjectMethod(FileWalkerClass, MethodExtraPaths);
@@ -1636,7 +1637,7 @@ bool android_DumpPath(const char* dir, Vector<Platform::FileInfo>& fileVector, U
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FileWalker");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker");
 	jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strDirName = lJNIEnv->NewStringUTF(dir);
 	jmethodID MethodFileWalker = lJNIEnv->GetStaticMethodID(FileWalkerClass, "DumpPath", "(Landroid/content/Context;Ljava/lang/String;Z)[Ljava/lang/String;");
@@ -1734,7 +1735,7 @@ void android_InitDirList(const char* dir)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FileWalker");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker");
 	jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strDirName = lJNIEnv->NewStringUTF(dir);
 	jmethodID MethodFileWalker = lJNIEnv->GetStaticMethodID(FileWalkerClass, "InitDirList", "(Landroid/content/Context;Ljava/lang/String;)V");
@@ -1775,7 +1776,7 @@ void android_GetNextDir(const char* pdir, char *dir)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FileWalker");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker");
 	jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strDirName = lJNIEnv->NewStringUTF(pdir);
 	jmethodID MethodFileWalker = lJNIEnv->GetStaticMethodID(FileWalkerClass, "GetNextDir", "(Ljava/lang/String;)Ljava/lang/String;");
@@ -1826,7 +1827,7 @@ void android_GetNextFile(const char* pdir, char *file)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FileWalker");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker");
 	jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strDirName = lJNIEnv->NewStringUTF(pdir);
 	jmethodID MethodFileWalker = lJNIEnv->GetStaticMethodID(FileWalkerClass, "GetNextFile", "(Ljava/lang/String;)Ljava/lang/String;");
@@ -1877,7 +1878,7 @@ bool android_IsFile(const char* path)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FileWalker");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker");
 	jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strDirName = lJNIEnv->NewStringUTF(path);
 	jmethodID MethodFileWalker = lJNIEnv->GetStaticMethodID(FileWalkerClass, "IsFile", "(Landroid/content/Context;Ljava/lang/String;)Z");
@@ -1929,7 +1930,7 @@ bool android_IsDir(const char* path)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FileWalker");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker");
 	jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strDirName = lJNIEnv->NewStringUTF(path);
 	jmethodID MethodFileWalker = lJNIEnv->GetStaticMethodID(FileWalkerClass, "IsDir", "(Landroid/content/Context;Ljava/lang/String;)Z");
@@ -1981,7 +1982,7 @@ U32 android_GetFileSize(const char* pFilePath)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/FileWalker");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.FileWalker");
 	jclass FileWalkerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strFileName = lJNIEnv->NewStringUTF(pFilePath);
 	jmethodID MethodFileWalker = lJNIEnv->GetStaticMethodID(FileWalkerClass, "GetFileSize", "(Landroid/content/Context;Ljava/lang/String;)I");
@@ -2050,7 +2051,7 @@ bool Platform::openWebBrowser(const char *webAddress)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/T2DUtilities");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.T2DUtilities");
 	jclass T2DUtilitiesClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strURL = lJNIEnv->NewStringUTF(webAddress);
 	jmethodID MethodT2DUtilities = lJNIEnv->GetStaticMethodID(T2DUtilitiesClass, "OpenURL", "(Landroid/content/Context;Ljava/lang/String;)V");
@@ -2091,7 +2092,7 @@ void android_AlertOK(const char *title, const char *message)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/T2DUtilities");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.T2DUtilities");
 	jclass T2DUtilitiesClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strTitle = lJNIEnv->NewStringUTF(title);
 	jstring strMessage = lJNIEnv->NewStringUTF(message);
@@ -2132,7 +2133,7 @@ int android_checkAlert()
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/T2DUtilities");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.T2DUtilities");
 	jclass T2DUtilitiesClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodT2DUtilities = lJNIEnv->GetStaticMethodID(T2DUtilitiesClass, "CheckAlert", "()I");
 	jint jret = lJNIEnv->CallStaticIntMethod(T2DUtilitiesClass, MethodT2DUtilities);
@@ -2174,7 +2175,7 @@ void android_AlertOKCancel(const char *title, const char *message)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/T2DUtilities");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.T2DUtilities");
 	jclass T2DUtilitiesClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strTitle = lJNIEnv->NewStringUTF(title);
 	jstring strMessage = lJNIEnv->NewStringUTF(message);
@@ -2216,7 +2217,7 @@ void android_AlertRetry(const char *title, const char *message)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/T2DUtilities");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.T2DUtilities");
 	jclass T2DUtilitiesClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strTitle = lJNIEnv->NewStringUTF(title);
 	jstring strMessage = lJNIEnv->NewStringUTF(message);
@@ -2258,7 +2259,7 @@ void android_AlertYesNo(const char *title, const char *message)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/T2DUtilities");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.T2DUtilities");
 	jclass T2DUtilitiesClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strTitle = lJNIEnv->NewStringUTF(title);
 	jstring strMessage = lJNIEnv->NewStringUTF(message);
@@ -2300,7 +2301,7 @@ void android_LoadMusicTrack( const char *mFilename )
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/StreamingAudioPlayer");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.StreamingAudioPlayer");
 	jclass StreamingAudioPlayerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jstring strFilename = lJNIEnv->NewStringUTF(mFilename);
 	jmethodID MethodStreamingAudioPlayer = lJNIEnv->GetStaticMethodID(StreamingAudioPlayerClass, "LoadMusicTrack", "(Landroid/content/Context;Ljava/lang/String;)V");
@@ -2340,7 +2341,7 @@ void android_UnLoadMusicTrack()
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/StreamingAudioPlayer");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.StreamingAudioPlayer");
 	jclass StreamingAudioPlayerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodStreamingAudioPlayer = lJNIEnv->GetStaticMethodID(StreamingAudioPlayerClass, "UnLoadMusicTrack", "()V");
 	lJNIEnv->CallStaticVoidMethod(StreamingAudioPlayerClass, MethodStreamingAudioPlayer);
@@ -2378,7 +2379,7 @@ bool android_isMusicTrackPlaying()
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/StreamingAudioPlayer");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.StreamingAudioPlayer");
 	jclass StreamingAudioPlayerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodStreamingAudioPlayer = lJNIEnv->GetStaticMethodID(StreamingAudioPlayerClass, "isMusicTrackPlaying", "()Z");
 	jboolean jret = lJNIEnv->CallStaticBooleanMethod(StreamingAudioPlayerClass, MethodStreamingAudioPlayer);
@@ -2420,7 +2421,7 @@ void android_StartMusicTrack()
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/StreamingAudioPlayer");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.StreamingAudioPlayer");
 	jclass StreamingAudioPlayerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodStreamingAudioPlayer = lJNIEnv->GetStaticMethodID(StreamingAudioPlayerClass, "startMusicTrack", "()V");
 	lJNIEnv->CallStaticVoidMethod(StreamingAudioPlayerClass, MethodStreamingAudioPlayer);
@@ -2458,7 +2459,7 @@ void android_StopMusicTrack()
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/StreamingAudioPlayer");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.StreamingAudioPlayer");
 	jclass StreamingAudioPlayerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodStreamingAudioPlayer = lJNIEnv->GetStaticMethodID(StreamingAudioPlayerClass, "stopMusicTrack", "()V");
 	lJNIEnv->CallStaticVoidMethod(StreamingAudioPlayerClass, MethodStreamingAudioPlayer);
@@ -2496,7 +2497,7 @@ void android_setMusicTrackVolume(F32 volume)
 	jobject cls = lJNIEnv->CallObjectMethod(lNativeActivity, getClassLoader);
 	jclass classLoader = lJNIEnv->FindClass("java/lang/ClassLoader");
 	jmethodID findClass = lJNIEnv->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-	jstring strClassName = lJNIEnv->NewStringUTF("com/garagegames/torque2d/StreamingAudioPlayer");
+	jstring strClassName = lJNIEnv->NewStringUTF("com.garagegames.torque2d.StreamingAudioPlayer");
 	jclass StreamingAudioPlayerClass = (jclass)lJNIEnv->CallObjectMethod(cls, findClass, strClassName);
 	jmethodID MethodStreamingAudioPlayer = lJNIEnv->GetStaticMethodID(StreamingAudioPlayerClass, "setMusicTrackVolume", "(F)V");
 	lJNIEnv->CallStaticVoidMethod(StreamingAudioPlayerClass, MethodStreamingAudioPlayer, (jfloat)volume);