diff --git a/jni/.cproject b/jni/.cproject
new file mode 100644
index 00000000..240904ed
--- /dev/null
+++ b/jni/.cproject
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jni/.project b/jni/.project
new file mode 100644
index 00000000..9487b4af
--- /dev/null
+++ b/jni/.project
@@ -0,0 +1,27 @@
+
+
+ vtm-jni
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+
+ org.eclipse.cdt.core.cnature
+ org.eclipse.cdt.core.ccnature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+
+
diff --git a/jni/Android.mk b/jni/Android.mk
new file mode 100644
index 00000000..751d9a3e
--- /dev/null
+++ b/jni/Android.mk
@@ -0,0 +1,26 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := vtm-jni
+LOCAL_C_INCLUDES := .
+
+LOCAL_CFLAGS := $(LOCAL_C_INCLUDES:%=-I%) -O2 -Wall -D__ANDROID__ -Wall -std=c99 -O2 -ffast-math
+LOCAL_CPPFLAGS := $(LOCAL_C_INCLUDES:%=-I%) -O2 -Wall -D__ANDROID__ -Wall -std=c99 -O2 -ffast-math
+LOCAL_LDLIBS := -lm -llog
+LOCAL_ARM_MODE := arm
+
+LOCAL_SRC_FILES := gl/utils.c\
+ tessellate/TessellateJni.c\
+ tessellate/render.c\
+ tessellate/memalloc.c\
+ tessellate/geom.c\
+ tessellate/dict.c\
+ tessellate/tessmono.c\
+ tessellate/normal.c\
+ tessellate/tessellate.c\
+ tessellate/mesh.c\
+ tessellate/tess.c\
+ tessellate/priorityq.c\
+ tessellate/sweep.c
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/jni/Application.mk b/jni/Application.mk
new file mode 100644
index 00000000..5db54170
--- /dev/null
+++ b/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := armeabi armeabi-v7a x86
\ No newline at end of file
diff --git a/jni/build-android32.xml b/jni/build-android32.xml
new file mode 100644
index 00000000..4487f924
--- /dev/null
+++ b/jni/build-android32.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ndk_home: ${env.NDK_HOME}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jni/build-linux64.xml b/jni/build-linux64.xml
new file mode 100644
index 00000000..b34ca65c
--- /dev/null
+++ b/jni/build-linux64.xml
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jni/build-windows32.xml b/jni/build-windows32.xml
new file mode 100644
index 00000000..c2127642
--- /dev/null
+++ b/jni/build-windows32.xml
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jni/build-windows64.xml b/jni/build-windows64.xml
new file mode 100644
index 00000000..c57f258d
--- /dev/null
+++ b/jni/build-windows64.xml
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jni/build.xml b/jni/build.xml
new file mode 100644
index 00000000..7a9f0343
--- /dev/null
+++ b/jni/build.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vtm/jni/builder/JniBuilder.java b/jni/builder/JniBuilder.java
similarity index 100%
rename from vtm/jni/builder/JniBuilder.java
rename to jni/builder/JniBuilder.java
diff --git a/vtm/jni/gl/utils.c b/jni/gl/utils.c
similarity index 99%
rename from vtm/jni/gl/utils.c
rename to jni/gl/utils.c
index 354d43af..ce0bcaf1 100644
--- a/vtm/jni/gl/utils.c
+++ b/jni/gl/utils.c
@@ -8,8 +8,8 @@
#ifndef __WIN32__
#include
-#else
-#define alloca(size) __builtin_alloca(size)
+//#else
+//#define alloca(size) __builtin_alloca(size)
#endif
//#ifndef uintptr_t
diff --git a/jni/memcpy_wrap.c b/jni/memcpy_wrap.c
new file mode 100644
index 00000000..70a3021c
--- /dev/null
+++ b/jni/memcpy_wrap.c
@@ -0,0 +1,18 @@
+#ifndef __ANDROID__
+#ifdef __linux__
+#ifdef __x86_64__
+
+#include
+#include
+#include
+
+__asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
+
+void *__wrap_memcpy(void * destination, const void * source, size_t num)
+{
+ return memcpy(destination, source, num);
+}
+
+#endif
+#endif
+#endif
\ No newline at end of file
diff --git a/vtm/jni/tessellate/LICENSE b/jni/tessellate/LICENSE
similarity index 100%
rename from vtm/jni/tessellate/LICENSE
rename to jni/tessellate/LICENSE
diff --git a/vtm/jni/tessellate/Makefile b/jni/tessellate/Makefile
similarity index 100%
rename from vtm/jni/tessellate/Makefile
rename to jni/tessellate/Makefile
diff --git a/vtm/jni/tessellate/README.md b/jni/tessellate/README.md
similarity index 100%
rename from vtm/jni/tessellate/README.md
rename to jni/tessellate/README.md
diff --git a/vtm/jni/tessellate/TessellateJni.c b/jni/tessellate/TessellateJni.c
similarity index 100%
rename from vtm/jni/tessellate/TessellateJni.c
rename to jni/tessellate/TessellateJni.c
diff --git a/vtm/jni/tessellate/dict-list.h b/jni/tessellate/dict-list.h
similarity index 100%
rename from vtm/jni/tessellate/dict-list.h
rename to jni/tessellate/dict-list.h
diff --git a/vtm/jni/tessellate/dict.c b/jni/tessellate/dict.c
similarity index 100%
rename from vtm/jni/tessellate/dict.c
rename to jni/tessellate/dict.c
diff --git a/vtm/jni/tessellate/dict.h b/jni/tessellate/dict.h
similarity index 100%
rename from vtm/jni/tessellate/dict.h
rename to jni/tessellate/dict.h
diff --git a/vtm/jni/tessellate/geom.c b/jni/tessellate/geom.c
similarity index 100%
rename from vtm/jni/tessellate/geom.c
rename to jni/tessellate/geom.c
diff --git a/vtm/jni/tessellate/geom.h b/jni/tessellate/geom.h
similarity index 100%
rename from vtm/jni/tessellate/geom.h
rename to jni/tessellate/geom.h
diff --git a/vtm/jni/tessellate/glu.h b/jni/tessellate/glu.h
similarity index 100%
rename from vtm/jni/tessellate/glu.h
rename to jni/tessellate/glu.h
diff --git a/vtm/jni/tessellate/gluos.h b/jni/tessellate/gluos.h
similarity index 100%
rename from vtm/jni/tessellate/gluos.h
rename to jni/tessellate/gluos.h
diff --git a/vtm/jni/tessellate/main.c b/jni/tessellate/main.c
similarity index 100%
rename from vtm/jni/tessellate/main.c
rename to jni/tessellate/main.c
diff --git a/vtm/jni/tessellate/memalloc.c b/jni/tessellate/memalloc.c
similarity index 100%
rename from vtm/jni/tessellate/memalloc.c
rename to jni/tessellate/memalloc.c
diff --git a/vtm/jni/tessellate/memalloc.h b/jni/tessellate/memalloc.h
similarity index 100%
rename from vtm/jni/tessellate/memalloc.h
rename to jni/tessellate/memalloc.h
diff --git a/vtm/jni/tessellate/mesh.c b/jni/tessellate/mesh.c
similarity index 100%
rename from vtm/jni/tessellate/mesh.c
rename to jni/tessellate/mesh.c
diff --git a/vtm/jni/tessellate/mesh.h b/jni/tessellate/mesh.h
similarity index 100%
rename from vtm/jni/tessellate/mesh.h
rename to jni/tessellate/mesh.h
diff --git a/vtm/jni/tessellate/normal.c b/jni/tessellate/normal.c
similarity index 100%
rename from vtm/jni/tessellate/normal.c
rename to jni/tessellate/normal.c
diff --git a/vtm/jni/tessellate/normal.h b/jni/tessellate/normal.h
similarity index 100%
rename from vtm/jni/tessellate/normal.h
rename to jni/tessellate/normal.h
diff --git a/vtm/jni/tessellate/priorityq-heap.c b/jni/tessellate/priorityq-heap.c
similarity index 100%
rename from vtm/jni/tessellate/priorityq-heap.c
rename to jni/tessellate/priorityq-heap.c
diff --git a/vtm/jni/tessellate/priorityq-heap.h b/jni/tessellate/priorityq-heap.h
similarity index 100%
rename from vtm/jni/tessellate/priorityq-heap.h
rename to jni/tessellate/priorityq-heap.h
diff --git a/vtm/jni/tessellate/priorityq-sort.h b/jni/tessellate/priorityq-sort.h
similarity index 100%
rename from vtm/jni/tessellate/priorityq-sort.h
rename to jni/tessellate/priorityq-sort.h
diff --git a/vtm/jni/tessellate/priorityq.c b/jni/tessellate/priorityq.c
similarity index 100%
rename from vtm/jni/tessellate/priorityq.c
rename to jni/tessellate/priorityq.c
diff --git a/vtm/jni/tessellate/priorityq.h b/jni/tessellate/priorityq.h
similarity index 100%
rename from vtm/jni/tessellate/priorityq.h
rename to jni/tessellate/priorityq.h
diff --git a/vtm/jni/tessellate/render.c b/jni/tessellate/render.c
similarity index 100%
rename from vtm/jni/tessellate/render.c
rename to jni/tessellate/render.c
diff --git a/vtm/jni/tessellate/render.h b/jni/tessellate/render.h
similarity index 100%
rename from vtm/jni/tessellate/render.h
rename to jni/tessellate/render.h
diff --git a/vtm/jni/tessellate/sweep.c b/jni/tessellate/sweep.c
similarity index 100%
rename from vtm/jni/tessellate/sweep.c
rename to jni/tessellate/sweep.c
diff --git a/vtm/jni/tessellate/sweep.h b/jni/tessellate/sweep.h
similarity index 100%
rename from vtm/jni/tessellate/sweep.h
rename to jni/tessellate/sweep.h
diff --git a/vtm/jni/tessellate/tess.c b/jni/tessellate/tess.c
similarity index 100%
rename from vtm/jni/tessellate/tess.c
rename to jni/tessellate/tess.c
diff --git a/vtm/jni/tessellate/tess.h b/jni/tessellate/tess.h
similarity index 100%
rename from vtm/jni/tessellate/tess.h
rename to jni/tessellate/tess.h
diff --git a/vtm/jni/tessellate/tessellate.c b/jni/tessellate/tessellate.c
similarity index 100%
rename from vtm/jni/tessellate/tessellate.c
rename to jni/tessellate/tessellate.c
diff --git a/vtm/jni/tessellate/tessellate.h b/jni/tessellate/tessellate.h
similarity index 100%
rename from vtm/jni/tessellate/tessellate.h
rename to jni/tessellate/tessellate.h
diff --git a/vtm/jni/tessellate/tessmono.c b/jni/tessellate/tessmono.c
similarity index 100%
rename from vtm/jni/tessellate/tessmono.c
rename to jni/tessellate/tessmono.c
diff --git a/vtm/jni/tessellate/tessmono.h b/jni/tessellate/tessmono.h
similarity index 100%
rename from vtm/jni/tessellate/tessmono.h
rename to jni/tessellate/tessmono.h