Explorar o código

Merge branch 'dev' into indexbuffer

dmuratshin %!s(int64=9) %!d(string=hai) anos
pai
achega
919032a2f8
Modificáronse 45 ficheiros con 164 adicións e 50 borrados
  1. 2 0
      .gitignore
  2. 5 5
      examples/Demo/proj.android/AndroidManifest.xml
  3. 2 0
      examples/Demo/proj.cmake/build_emsc.bat
  4. 2 0
      examples/Demo/proj.cmake/build_emsc_release.bat
  5. 5 1
      examples/DemoBox2D/proj.android/AndroidManifest.xml
  6. 2 0
      examples/DemoBox2D/proj.cmake/build_emsc.bat
  7. 2 0
      examples/DemoBox2D/proj.cmake/build_emsc_release.bat
  8. 5 1
      examples/Game/part1/proj.android/AndroidManifest.xml
  9. 2 0
      examples/Game/part1/proj.cmake/build_emsc.bat
  10. 2 0
      examples/Game/part1/proj.cmake/build_emsc_release.bat
  11. 5 1
      examples/Game/part2/proj.android/AndroidManifest.xml
  12. 2 0
      examples/Game/part2/proj.cmake/build_emsc.bat
  13. 2 0
      examples/Game/part2/proj.cmake/build_emsc_release.bat
  14. 5 1
      examples/Game/part3/proj.android/AndroidManifest.xml
  15. 2 0
      examples/Game/part3/proj.cmake/build_emsc.bat
  16. 2 0
      examples/Game/part3/proj.cmake/build_emsc_release.bat
  17. 5 1
      examples/Game/part4/proj.android/AndroidManifest.xml
  18. 2 0
      examples/Game/part4/proj.cmake/build_emsc.bat
  19. 2 0
      examples/Game/part4/proj.cmake/build_emsc_release.bat
  20. 5 1
      examples/Game/part5/proj.android/AndroidManifest.xml
  21. 2 0
      examples/Game/part5/proj.cmake/build_emsc.bat
  22. 2 0
      examples/Game/part5/proj.cmake/build_emsc_release.bat
  23. 5 1
      examples/HelloWorld/proj.android/AndroidManifest.xml
  24. 2 0
      examples/HelloWorld/proj.cmake/build_emsc.bat
  25. 2 0
      examples/HelloWorld/proj.cmake/build_emsc_release.bat
  26. 5 1
      examples/Match3/proj.android/AndroidManifest.xml
  27. 2 0
      examples/Match3/proj.cmake/build_emsc.bat
  28. 2 0
      examples/Match3/proj.cmake/build_emsc_release.bat
  29. 3 3
      oxygine/SDL/android/extension/build.gradle
  30. 7 7
      oxygine/SDL/android/lib/build.gradle
  31. 18 12
      oxygine/src/DebugActor.cpp
  32. 2 1
      oxygine/src/DebugActor.h
  33. 8 0
      oxygine/src/Image.cpp
  34. 1 0
      oxygine/src/Image.h
  35. 1 0
      oxygine/src/WebImage.cpp
  36. 3 1
      oxygine/src/core/ThreadDispatcher.cpp
  37. 1 1
      oxygine/src/core/ThreadDispatcher.h
  38. 1 1
      oxygine/src/core/ZipFileSystem.cpp
  39. 2 1
      oxygine/src/core/gl/NativeTextureGLES.cpp
  40. 21 3
      oxygine/src/core/oxygine.cpp
  41. 2 2
      oxygine/src/dev_tools/TexturesInspector.cpp
  42. 2 4
      readme/emscripten.txt
  43. 5 1
      tools/templates/proj.android/AndroidManifest.xml
  44. 2 0
      tools/templates/proj.cmake/build_emsc.bat
  45. 2 0
      tools/templates/proj.cmake/build_emsc_release.bat

+ 2 - 0
.gitignore

@@ -62,3 +62,5 @@ build
 /examples/Demo/proj.cmake/mingw
 **/proj.marmalade/build_demo_vc*
 .DS_Store
+*.VC.db
+*.VC.VC.opendb

+ 5 - 5
examples/Demo/proj.android/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity android:name="org.oxygine.Demo.MainActivity"
                   android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:configChanges="locale|orientation|keyboardHidden|screenSize" 
                   android:screenOrientation="landscape">
 
             <intent-filter>
@@ -23,13 +23,13 @@
             </intent-filter>
         </activity>
     </application>
-   
-    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests demo-->    
-    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests demo (downloading files)-->
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
 
     <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
 
+    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests-->    
+    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests (downloading files)-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
+
     <!-- OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" /> 
 

+ 2 - 0
examples/Demo/proj.cmake/build_emsc.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc

+ 2 - 0
examples/Demo/proj.cmake/build_emsc_release.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc_release

+ 5 - 1
examples/DemoBox2D/proj.android/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity android:name="org.oxygine.DemoBox2D.MainActivity"
                   android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:configChanges="locale|orientation|keyboardHidden|screenSize" 
                   android:screenOrientation="landscape">
 
             <intent-filter>
@@ -26,6 +26,10 @@
 
     <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
 
+    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests-->    
+    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests (downloading files)-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
+
     <!-- OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" /> 
 

+ 2 - 0
examples/DemoBox2D/proj.cmake/build_emsc.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc

+ 2 - 0
examples/DemoBox2D/proj.cmake/build_emsc_release.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc_release

+ 5 - 1
examples/Game/part1/proj.android/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity android:name="org.oxygine.GamePart1.MainActivity"
                   android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:configChanges="locale|orientation|keyboardHidden|screenSize" 
                   android:screenOrientation="landscape">
 
             <intent-filter>
@@ -26,6 +26,10 @@
 
     <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
 
+    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests-->    
+    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests (downloading files)-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
+
     <!-- OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" /> 
 

+ 2 - 0
examples/Game/part1/proj.cmake/build_emsc.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc

+ 2 - 0
examples/Game/part1/proj.cmake/build_emsc_release.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc_release

+ 5 - 1
examples/Game/part2/proj.android/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity android:name="org.oxygine.GamePart2.MainActivity"
                   android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:configChanges="locale|orientation|keyboardHidden|screenSize" 
                   android:screenOrientation="landscape">
 
             <intent-filter>
@@ -26,6 +26,10 @@
 
     <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
 
+    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests-->    
+    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests (downloading files)-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
+
     <!-- OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" /> 
 

+ 2 - 0
examples/Game/part2/proj.cmake/build_emsc.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc

+ 2 - 0
examples/Game/part2/proj.cmake/build_emsc_release.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc_release

+ 5 - 1
examples/Game/part3/proj.android/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity android:name="org.oxygine.GamePart3.MainActivity"
                   android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:configChanges="locale|orientation|keyboardHidden|screenSize" 
                   android:screenOrientation="landscape">
 
             <intent-filter>
@@ -26,6 +26,10 @@
 
     <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
 
+    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests-->    
+    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests (downloading files)-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
+
     <!-- OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" /> 
 

+ 2 - 0
examples/Game/part3/proj.cmake/build_emsc.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc

+ 2 - 0
examples/Game/part3/proj.cmake/build_emsc_release.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc_release

+ 5 - 1
examples/Game/part4/proj.android/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity android:name="org.oxygine.GamePart4.MainActivity"
                   android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:configChanges="locale|orientation|keyboardHidden|screenSize" 
                   android:screenOrientation="landscape">
 
             <intent-filter>
@@ -26,6 +26,10 @@
 
     <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
 
+    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests-->    
+    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests (downloading files)-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
+
     <!-- OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" /> 
 

+ 2 - 0
examples/Game/part4/proj.cmake/build_emsc.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc

+ 2 - 0
examples/Game/part4/proj.cmake/build_emsc_release.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc_release

+ 5 - 1
examples/Game/part5/proj.android/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity android:name="org.oxygine.GamePart5.MainActivity"
                   android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:configChanges="locale|orientation|keyboardHidden|screenSize" 
                   android:screenOrientation="landscape">
 
             <intent-filter>
@@ -26,6 +26,10 @@
 
     <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
 
+    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests-->    
+    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests (downloading files)-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
+
     <!-- OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" /> 
 

+ 2 - 0
examples/Game/part5/proj.cmake/build_emsc.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc

+ 2 - 0
examples/Game/part5/proj.cmake/build_emsc_release.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc_release

+ 5 - 1
examples/HelloWorld/proj.android/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity android:name="org.oxygine.HelloWorld.MainActivity"
                   android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:configChanges="locale|orientation|keyboardHidden|screenSize" 
                   android:screenOrientation="landscape">
 
             <intent-filter>
@@ -26,6 +26,10 @@
 
     <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
 
+    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests-->    
+    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests (downloading files)-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
+
     <!-- OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" /> 
 

+ 2 - 0
examples/HelloWorld/proj.cmake/build_emsc.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc

+ 2 - 0
examples/HelloWorld/proj.cmake/build_emsc_release.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc_release

+ 5 - 1
examples/Match3/proj.android/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity android:name="org.oxygine.Match3.MainActivity"
                   android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:configChanges="locale|orientation|keyboardHidden|screenSize" 
                   android:screenOrientation="landscape">
 
             <intent-filter>
@@ -26,6 +26,10 @@
 
     <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
 
+    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests-->    
+    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests (downloading files)-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
+
     <!-- OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" /> 
 

+ 2 - 0
examples/Match3/proj.cmake/build_emsc.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc

+ 2 - 0
examples/Match3/proj.cmake/build_emsc_release.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ../../..//tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc_release

+ 3 - 3
oxygine/SDL/android/extension/build.gradle

@@ -10,9 +10,9 @@ buildscript {
 apply plugin: 'com.android.library'
 
 android {
-        compileSdkVersion 23
-  		buildToolsVersion '23.0.3'
-
+        compileSdkVersion rootProject.android.compileSdkVersion
+        buildToolsVersion rootProject.android.buildToolsVersion
+        
         sourceSets {
             main {
                 manifest.srcFile 'AndroidManifest.xml'

+ 7 - 7
oxygine/SDL/android/lib/build.gradle

@@ -11,17 +11,17 @@ apply plugin: 'com.android.library'
 
 dependencies {
         compile project(':oxygine-extension')
-    }
+}
 
 android {
-		lintOptions {
-        	abortOnError false
-    	}
+        lintOptions {
+            abortOnError false
+        }
 
-        compileSdkVersion 23
-  		buildToolsVersion '23.0.2'
+        compileSdkVersion rootProject.android.compileSdkVersion
+        buildToolsVersion rootProject.android.buildToolsVersion
 
-  		sourceSets {
+        sourceSets {
             main {
                 manifest.srcFile 'AndroidManifest.xml'
                 java.srcDirs = ['src']

+ 18 - 12
oxygine/src/DebugActor.cpp

@@ -37,12 +37,17 @@
 #include "core/ios/ios.h"
 #endif
 
+#ifndef __S3E__
+#include "SDL_video.h"
+#endif
+
 namespace oxygine
 {
     Resources* DebugActor::resSystem = 0;
     file::ZipFileSystem zp;
 
     spDebugActor DebugActor::instance;
+    int _corner = 0;
 
     void DebugActor::initialize()
     {
@@ -54,7 +59,6 @@ namespace oxygine
         zp.setPrefix("system/");
         zp.add(system_data, system_size);
 
-        //file::ZipFileSystem zp;
         file::mount(&zp);
         resSystem = new Resources;
         resSystem->loadXML("system/res.xml", ResourcesLoadOptions().prebuiltFolder("system"));
@@ -92,8 +96,7 @@ namespace oxygine
 
     void DebugActor::setCorner(int corner)
     {
-        if (DebugActor::instance)
-            DebugActor::instance->setCornerPosition(corner);
+        _corner = corner;
     }
 
     void DebugActor::release()
@@ -107,7 +110,7 @@ namespace oxygine
 
     void DebugActor::setCornerPosition(int corner)
     {
-        _corner = corner;
+        setCorner(corner);
     }
 
     void DebugActor::addButton(float& x, const char* name, const char* anim)
@@ -123,7 +126,7 @@ namespace oxygine
         btn->addEventListener(TouchEvent::CLICK, CLOSURE(this, &DebugActor::_btnClicked));
     }
 
-    DebugActor::DebugActor(): _frames(0), _startTime(0), _corner(0), _showTexel2PixelErrors(false), _showTouchedActor(false)
+    DebugActor::DebugActor(): _frames(0), _startTime(0), _showTexel2PixelErrors(false), _showTouchedActor(false)
     {
         DebugActor::initialize();
 
@@ -183,6 +186,16 @@ namespace oxygine
 
 
         instance = this;
+        /*
+
+        float dpi = 0;
+        float dpi1 = 0;
+        float dpi2 = 0;
+        int ret = SDL_GetDisplayDPI(0, &dpi, &dpi1, &dpi2);
+        {
+            log::messageln("dpi>>>>> %d %f %f %f", ret, dpi, dpi1, dpi2);
+        }
+        */
     }
 
     void DebugActor::onAdded2Stage()
@@ -195,13 +208,6 @@ namespace oxygine
         _stage->removeEventListeners(this);
     }
 
-    /*
-    void DebugActor::addDebugString(const string &str)
-    {
-        _debugText += str;
-    }
-    */
-
     void DebugActor::addDebugString(const char* format, ...)
     {
         char buff[1024] = "";

+ 2 - 1
oxygine/src/DebugActor.h

@@ -33,6 +33,7 @@ namespace oxygine
         ~DebugActor();
 
         /**where to display DebugActor. 0 - top left, 1 - top right, 2 - bottom right, 3 - bottom left corner*/
+        OXYGINE_DEPRECATED
         void setCornerPosition(int corner);
         //void addDebugString(const string &str);
 
@@ -57,7 +58,7 @@ namespace oxygine
         std::string _debugText;
         int _frames;
         timeMS _startTime;
-        int _corner;
+
 
         bool _showTouchedActor;
         bool _showTexel2PixelErrors;

+ 8 - 0
oxygine/src/Image.cpp

@@ -810,6 +810,14 @@ namespace oxygine
 
     }
 
+    void Image::toPOT(Image& dest)
+    {
+        OX_ASSERT(this != &dest);
+        dest.init(nextPOT(_image.w), nextPOT(_image.h), _image.format);
+        dest.fill_zero();
+        dest.updateRegion(0, 0, _image);
+    }
+
     void Image::updateRegion(int x, int y, const ImageData& src)
     {
         Rect r(x, y, src.w, src.h);

+ 1 - 0
oxygine/src/Image.h

@@ -47,6 +47,7 @@ namespace oxygine
         ImageData   lock(const Rect* pRect);
         ImageData   lock(const Rect& pRect);
         void        unlock();
+        void        toPOT(Image& dest);
 
         void        updateRegion(int x, int y, const ImageData& data);
         void        apply(const Rect*);

+ 1 - 0
oxygine/src/WebImage.cpp

@@ -20,6 +20,7 @@ namespace oxygine
         setSize(64, 64);
         _image = new Sprite;
         _image->setName("_child_");
+        _image->setTouchEnabled(false);
         addChild(_image);
     }
 

+ 3 - 1
oxygine/src/core/ThreadDispatcher.cpp

@@ -278,7 +278,7 @@ namespace oxygine
         return _result;
     }
 
-    void ThreadDispatcher::sendCallback(void* arg1, void* arg2, callback cb, void* cbData, bool highPriority)
+    void* ThreadDispatcher::sendCallback(void* arg1, void* arg2, callback cb, void* cbData, bool highPriority)
     {
         message ev;
         ev.arg1 = arg1;
@@ -290,6 +290,8 @@ namespace oxygine
         MutexPthreadLock lock(_mutex);
 #endif
         _pushMessageWaitReply(ev, highPriority);
+
+        return _result;
     }
 
     void ThreadDispatcher::_pushMessageWaitReply(message& msg, bool highPriority)

+ 1 - 1
oxygine/src/core/ThreadDispatcher.h

@@ -91,7 +91,7 @@ namespace oxygine
         //blocking, sends message and waiting reply from other thread
         void* send(int msgid, void* arg1, void* arg2);
         //blocking, sends callback and waiting until it is done
-        void sendCallback(void* arg1, void* arg2, callback cb, void* cbData, bool highPriority = false);
+        void* sendCallback(void* arg1, void* arg2, callback cb, void* cbData, bool highPriority = false);
 #ifndef __S3E__
         //blocking, sends callback and waiting until it is done
         void sendCallback(const std::function<void()>&);

+ 1 - 1
oxygine/src/core/ZipFileSystem.cpp

@@ -195,7 +195,7 @@ namespace oxygine
         {
             std::sort(_files.begin(), _files.end(), sortFiles);
 #ifdef OX_DEBUG
-            for (size_t i = 0; i < _files.size() - 1; ++i)
+            for (int i = 0; i < (int)_files.size() - 1; ++i)
             {
                 OX_ASSERT(strcmp(_files[i].name, _files[i + 1].name) != 0);
             }

+ 2 - 1
oxygine/src/core/gl/NativeTextureGLES.cpp

@@ -226,6 +226,7 @@ namespace oxygine
             NativeTextureGLES::created--;
             glDeleteTextures(1, (GLuint*)&_id);
             _id = 0;
+            CHECKGL();
         }
 
 
@@ -233,10 +234,10 @@ namespace oxygine
         {
             oxglDeleteFramebuffers(1, (GLuint*)&_fbo);
             _fbo = 0;
+            CHECKGL();
         }
 
         unreg();
-        CHECKGL();
     }
 
 

+ 21 - 3
oxygine/src/core/oxygine.cpp

@@ -70,11 +70,11 @@ extern "C"
 
 
 #if EMSCRIPTEN
-#define HANDLE_FOCUS_LOST 0
+#   define HANDLE_FOCUS_LOST 0
 #elif !SDL_VIDEO_OPENGL
-#define HANDLE_FOCUS_LOST 1
+#   define HANDLE_FOCUS_LOST 1
 #else
-#define HANDLE_FOCUS_LOST 0
+#   define HANDLE_FOCUS_LOST 0
 #endif
 
 #define LOST_RESET_CONTEXT 0
@@ -534,7 +534,10 @@ namespace oxygine
             if (!wnd)
             {
                 if (!focus)
+                {
+                    log::messageln("!focus");
                     return false;
+                }
 
                 wnd = _window;
             }
@@ -549,6 +552,10 @@ namespace oxygine
                 IVideoDriver::_stats.start = getTimeMS();
                 updatePortProcessItems();
             }
+            else
+            {
+                log::messageln("!ready");
+            }
 
             return ready;
         }
@@ -606,6 +613,7 @@ namespace oxygine
                 switch (event.type)
                 {
                     case SDL_QUIT:
+                        log::messageln("SDL_QUIT");
                         done = true;
                         break;
                     case SDL_WINDOWEVENT:
@@ -617,6 +625,8 @@ namespace oxygine
                         active = true;
                         */
 
+                        log::messageln("SDL_WINDOWEVENT %d", (int)event.window.event);
+
                         if (event.window.event == SDL_WINDOWEVENT_MINIMIZED)
                             active = false;
                         if (event.window.event == SDL_WINDOWEVENT_RESTORED)
@@ -627,6 +637,11 @@ namespace oxygine
                             newFocus = false;
                         if (event.window.event == SDL_WINDOWEVENT_FOCUS_GAINED)
                             newFocus = true;
+#ifdef __ANDROID__
+                        //if (event.window.event == SDL_WINDOWEVENT_ENTER)
+                        //   newFocus = true;
+#endif
+
                         if (focus != newFocus)
                         {
 #if HANDLE_FOCUS_LOST
@@ -772,6 +787,8 @@ namespace oxygine
 
         void release()
         {
+            log::messageln("core::release");
+
             _threadMessages.clear();
             _uiMessages.clear();
 
@@ -845,6 +862,7 @@ namespace oxygine
 
         void requestQuit()
         {
+            log::messageln("requestQuit");
 #ifdef __S3E__
             s3eDeviceRequestQuit();
 #elif OXYGINE_SDL

+ 2 - 2
oxygine/src/dev_tools/TexturesInspector.cpp

@@ -48,10 +48,10 @@ namespace oxygine
             path::normalize(t->getName().c_str(), path);
 
             char txt[255];
-            safe_sprintf(txt, "%s\n<div c=\"FF0000\">%s</div>-<div c=\"0000ff\">%dx%d</div>\nid: %d",
+            safe_sprintf(txt, "%s\n<div c=\"FF0000\">%s</div>-<div c=\"0000ff\">%dx%d</div>\nid: %d tid: %d",
                          path,
                          textureFormat2String(t->getFormat()),
-                         t->getWidth(), t->getHeight(), t->getObjectID());
+                         t->getWidth(), t->getHeight(), t->getObjectID(), (int)(size_t)t->getHandle());
 
             spTextField text = initActor(new TextField,
                                          arg_color = Color::Black,

+ 2 - 4
readme/emscripten.txt

@@ -12,14 +12,12 @@ How to build. Steps:
 
 
 - Configure environment variables properly:
-  EMSCRIPTEN points to Emscripten SDK folder with emcc
-  	example: d:\Emscripten\emscripten\1.35.0\
   JAVA_HOME points to JDK 
   	example: c:\Program Files (x86)\Java\jdk1.6.0_26\
 
 - Add necessary paths to environment variable PATH:
-  EMSCRIPTEN
-  	example: d:\Emscripten\emscripten\1.35.0\
+  Emscripten
+  	example: d:\Emscripten\
   JDK 
   	example: "c:\Program Files (x86)\Java\jdk1.6.0_26\bin\"
 

+ 5 - 1
tools/templates/proj.android/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity android:name="org.oxygine.${PROJECT}.MainActivity"
                   android:label="@string/app_name"
                   android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-                  android:configChanges="locale|orientation|keyboardHidden" 
+                  android:configChanges="locale|orientation|keyboardHidden|screenSize" 
                   android:screenOrientation="landscape">
 
             <intent-filter>
@@ -26,6 +26,10 @@
 
     <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
 
+    <uses-permission android:name="android.permission.INTERNET" /> <!--used for http requests-->    
+    <uses-permission android:name="android.permission.WAKE_LOCK" /><!--used for http requests (downloading files)-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--used for Proxy detection, could be disabled-->  
+
     <!-- OpenGL ES 2.0 -->
     <uses-feature android:glEsVersion="0x00020000" /> 
 

+ 2 - 0
tools/templates/proj.cmake/build_emsc.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ${OXYGINE}/tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc

+ 2 - 0
tools/templates/proj.cmake/build_emsc_release.bat

@@ -1,3 +1,5 @@
+call emsdk activate
+
 python ${OXYGINE}/tools/others/embed_folder_js.py -s ../data
 
 mkdir build_emsc_release