[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47798] trunk/lib/android/armv7-a_9/ aghosty-sdl: Adding support for android:

Alexander Kuznetsov kuzsasha at gmail.com
Tue Jun 12 22:02:00 CEST 2012


Revision: 47798
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47798
Author:   alexk
Date:     2012-06-12 20:01:54 +0000 (Tue, 12 Jun 2012)
Log Message:
-----------
Adding support for android:
* For not rooted phones/tablets
** Libs are copied to /sdcard/nucleusbridge/lib/ and from there they are copied to App directory by application itself
* Solve rotation issue
* Independent Screen Size

Modified Paths:
--------------
    trunk/lib/android/armv7-a_9/aghosty-sdl/AndroidManifest.xml
    trunk/lib/android/armv7-a_9/aghosty-sdl/createnb.txt
    trunk/lib/android/armv7-a_9/aghosty-sdl/deploy.sh
    trunk/lib/android/armv7-a_9/aghosty-sdl/jni/src/main.c
    trunk/lib/android/armv7-a_9/aghosty-sdl/pushlibs.sh
    trunk/lib/android/armv7-a_9/aghosty-sdl/updateblender.sh

Modified: trunk/lib/android/armv7-a_9/aghosty-sdl/AndroidManifest.xml
===================================================================
--- trunk/lib/android/armv7-a_9/aghosty-sdl/AndroidManifest.xml	2012-06-12 19:37:30 UTC (rev 47797)
+++ trunk/lib/android/armv7-a_9/aghosty-sdl/AndroidManifest.xml	2012-06-12 20:01:54 UTC (rev 47798)
@@ -3,9 +3,13 @@
       package="org.blender.app"
       android:versionCode="1"
       android:versionName="1.0">
-    <application android:label="@string/app_name" android:icon="@drawable/icon">
+    <application android:label="@string/app_name" android:icon="@drawable/icon"
+    android:debuggable="true">
         <activity android:name="SDLActivity"
-                  android:label="@string/app_name">
+                  android:label="@string/app_name"
+		  android:configChanges="orientation"
+		  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
+		  >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
@@ -14,4 +18,7 @@
     </application>
     
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <supports-screens android:resizeable="true"
+        android:largeScreens="true" android:normalScreens="true"
+        android:anyDensity="true"></supports-screens>
 </manifest> 

Modified: trunk/lib/android/armv7-a_9/aghosty-sdl/createnb.txt
===================================================================
--- trunk/lib/android/armv7-a_9/aghosty-sdl/createnb.txt	2012-06-12 19:37:30 UTC (rev 47797)
+++ trunk/lib/android/armv7-a_9/aghosty-sdl/createnb.txt	2012-06-12 20:01:54 UTC (rev 47798)
@@ -3,5 +3,5 @@
 cd nucleusbridge
 mkdir dna
 mkdir rna
-
+mkdir lib
 exit

Modified: trunk/lib/android/armv7-a_9/aghosty-sdl/deploy.sh
===================================================================
--- trunk/lib/android/armv7-a_9/aghosty-sdl/deploy.sh	2012-06-12 19:37:30 UTC (rev 47797)
+++ trunk/lib/android/armv7-a_9/aghosty-sdl/deploy.sh	2012-06-12 20:01:54 UTC (rev 47798)
@@ -5,4 +5,4 @@
 fi
 ant clean
 ant debug install
-adb shell am start -a android.intent.action.MAIN -n org.blender.app/android.app.NativeActivity
\ No newline at end of file
+adb shell am start -a android.intent.action.MAIN -n org.blender.app/.SDLActivity
\ No newline at end of file

Modified: trunk/lib/android/armv7-a_9/aghosty-sdl/jni/src/main.c
===================================================================
--- trunk/lib/android/armv7-a_9/aghosty-sdl/jni/src/main.c	2012-06-12 19:37:30 UTC (rev 47797)
+++ trunk/lib/android/armv7-a_9/aghosty-sdl/jni/src/main.c	2012-06-12 20:01:54 UTC (rev 47798)
@@ -44,6 +44,8 @@
 
 #include <dlfcn.h>
 
+#include <dirent.h>
+
 //#include <jconfig.h>
 //#include <jpeglib.h>
 
@@ -85,10 +87,10 @@
 	    }
 
 	    fclose(fsrc);
-    } else r=3;
+    } else r=0;
 
 	fclose(fsrc);
-    } else r=4;
+    } else r=0;
 
     printd("%s %s %i",src,dst,r);
 
@@ -99,6 +101,9 @@
 const char * libstatic = "/data/data/org.blender.app/lib/lib";
 const char * libsdcard = "/sdcard/nucleusbridge/lib";
 
+const char * libloadeddir = "/data/data/org.blender.app/";
+const char * libsdcarddir = "/sdcard/nucleusbridge/lib/";
+
 static char * getpathlib(const char * base, const char * suffix, int version, int mustexist)
 {
     size_t basesize = strlen(base);
@@ -129,6 +134,57 @@
     return path;
 }
 
+static char * mergepath(const char * base, const char * suffix)
+{
+    size_t basesize = strlen(base);
+    size_t suffixsize = strlen(suffix);
+    
+    char * path = malloc(basesize+suffixsize+2);
+    
+    memcpy(path, base, basesize);
+    memcpy(path+basesize, suffix, suffixsize+1);
+  return path;
+}
+
+
+
+
+static void loadallfiles(const char * dirfrom, const char *dirto)
+{
+  
+  DIR * dir;
+  struct dirent *fileobj;
+  if(!(dir = opendir(dirfrom)))
+  {
+   printf("No %s folder\n", dirfrom);
+   return;
+  }
+  
+  while((fileobj=readdir(dir)))
+  {
+    char *filefrom, *fileto;
+    struct stat filestat;
+    if(fileobj->d_name[0] == '.')
+      continue;
+    
+    filefrom = mergepath(dirfrom, fileobj->d_name);
+    fileto = mergepath(dirto, fileobj->d_name);
+    copyfile(filefrom, fileto);
+    printf("%s -> %s\n", filefrom, fileto);
+    
+    remove(filefrom);
+    
+    free(filefrom);
+    free(fileto);
+    
+  }
+  
+  
+  
+  closedir(dir);
+}
+
+
 void * loadownlib(const char * libname, int version)
 {
 
@@ -210,7 +266,7 @@
         printf("%i\n", mainfunc(argc,argv));
         return 1;
     }
-
+    exit(0);
     return 0;
 }
 
@@ -253,14 +309,14 @@
  LOGW("%p",boo);
  boo();
  LOGW("%p",boo());*/
-
+//sleep(10);
     freopen("/sdcard/out.txt","w",stdout);
     freopen("/sdcard/err.txt","w",stderr);
-   SDL_SetVideoMode(640, 480, 16, SDL_DOUBLEBUF|SDL_FULLSCREEN);
-    glClearColor(1.0f, 1.0f, 0.0f, 0.5f);
-    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+   //SDL_SetVideoMode(640, 480, 16, SDL_DOUBLEBUF|SDL_FULLSCREEN);
+   // glClearColor(1.0f, 1.0f, 0.0f, 0.5f);
+    //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     //SwapBuffers();
-    SDL_GL_SwapBuffers();
+   // SDL_GL_SwapBuffers();
    // loadownlib("jpen", 8);
     if(taskfile = fopen("/sdcard/nucleusbridge/task.txt","r"))
     {
@@ -332,6 +388,9 @@
 
 	fclose(taskfile);
     } else LOGW("Couldn't open file");
+    
+    
+    loadallfiles(libsdcarddir, libloadeddir);
 
     loadownlib("jpeg", 8);
     loadownlib("freetype", 6);
@@ -354,9 +413,9 @@
 	int i;
     void *blendlibh;
     //char *cmd[] = {"blender","-h"};
-    char *cmd[] = {"blender", "-b", "/sdcard/test.blend", "-o", "//render_",  "-F" ,"JPEG", "-x" ,"1" ,"-f" ,"1"};
-    blendlibh = loadownlib("blender",0);
-    startlibmainfunc(blendlibh,11,cmd);
+    char *cmd[] = {"blenderplayer" , "/sdcard/test.blend"};//,  "/sdcard/test.blend", "-o", "//render_",  "-F" ,"JPEG", "-x" ,"1" ,"-f" ,"1"};//"-b",
+    blendlibh = loadownlib("blenderplayer",0);
+    startlibmainfunc(blendlibh,2,cmd);//11
 
 
 
@@ -364,7 +423,7 @@
 
 
     }
-    exit(34);
+    exit(0);
   
 }
 //END_INCLUDE(all)

Modified: trunk/lib/android/armv7-a_9/aghosty-sdl/pushlibs.sh
===================================================================
--- trunk/lib/android/armv7-a_9/aghosty-sdl/pushlibs.sh	2012-06-12 19:37:30 UTC (rev 47797)
+++ trunk/lib/android/armv7-a_9/aghosty-sdl/pushlibs.sh	2012-06-12 20:01:54 UTC (rev 47798)
@@ -1,8 +1,10 @@
-adb push ../jpeg/lib/libjpeg.so /data/data/org.blender.app/libjpeg.so.8
-adb push ../png/lib/libpng15.so.15.9.0 /data/data/org.blender.app/libpng15.so.15
-adb push ../freetype/lib/libfreetype.so.6 /data/data/org.blender.app/libfreetype.so.6
-adb push ../zlib/lib/libz.so.1 /data/data/org.blender.app/libz.so.1
-adb push ../python/lib/libpython3.2m.so.1.0 /data/data/org.blender.app/libpython3.2m.so.1.0
-#adb push /home/alex/android/lib/libGL.so /data/data/org.blender.app/libGL.so
-adb push ../fakeGL/libGLarm.so /data/data/org.blender.app/libGLarm.so
-adb push ../fakeGL/libGLUarm.so /data/data/org.blender.app/libGLUarm.so
+adb shell < createnb.txt
+adb push ../jpeg/lib/libjpeg.so /sdcard/nucleusbridge/lib/libjpeg.so.8
+adb push ../png/lib/libpng15.so.15.9.0 /sdcard/nucleusbridge/lib/libpng15.so.15
+adb push ../freetype/lib/libfreetype.so.6 /sdcard/nucleusbridge/lib/libfreetype.so.6
+adb push ../zlib/lib/libz.so.1 /sdcard/nucleusbridge/lib/libz.so.1
+adb push ../python/lib/libpython3.2m.so.1.0 /sdcard/nucleusbridge/lib/libpython3.2m.so.1.0
+#adb push /home/alex/android/lib/libGL.so /sdcard/nucleusbridge/lib/libGL.so
+adb push ../fakeGL/libGLarm.so /sdcard/nucleusbridge/lib/libGLarm.so
+adb push ../fakeGL/libGLUarm.so /sdcard/nucleusbridge/lib/libGLUarm.so
+adb shell am start -a android.intent.action.MAIN -n org.blender.app/.SDLActivity
\ No newline at end of file

Modified: trunk/lib/android/armv7-a_9/aghosty-sdl/updateblender.sh
===================================================================
--- trunk/lib/android/armv7-a_9/aghosty-sdl/updateblender.sh	2012-06-12 19:37:30 UTC (rev 47797)
+++ trunk/lib/android/armv7-a_9/aghosty-sdl/updateblender.sh	2012-06-12 20:01:54 UTC (rev 47798)
@@ -1 +1,3 @@
-adb push /home/alex/blender-small/build/android5/lib/libblender.so /data/data/org.libsdl.app/files/libblender.so
\ No newline at end of file
+adb shell < createnb.txt
+adb push lib/libblenderplayer.so /sdcard/nucleusbridge/lib/libblenderplayer.so
+adb shell am start -a android.intent.action.MAIN -n org.blender.app/.SDLActivity
\ No newline at end of file




More information about the Bf-blender-cvs mailing list