Răsfoiți Sursa

Merge remote-tracking branch 'origin/dev' into new-render

# Conflicts:
#	oxygine/src/oxygine/AsyncTask.cpp
#	oxygine/src/oxygine/core/system_data.cpp
#	oxygine/system_data/original/system/shader.glsl
[email protected] 8 ani în urmă
părinte
comite
2bf1b9e670

+ 14 - 7
oxygine/src/oxygine/AsyncTask.cpp

@@ -3,15 +3,16 @@
 #include <typeinfo>
 #include <typeinfo>
 namespace oxygine
 namespace oxygine
 {
 {
+#define LOGD(arg) (log::messageln("at: %s (%d) %s", getName().c_str(), getObjectID(), arg))
 
 
     AsyncTask::AsyncTask() : _status(status_not_started), _mainThreadSync(false)
     AsyncTask::AsyncTask() : _status(status_not_started), _mainThreadSync(false)
     {
     {
-
+        setName("AsyncTask");
     }
     }
 
 
     AsyncTask::~AsyncTask()
     AsyncTask::~AsyncTask()
     {
     {
-
+        LOGD("~");
     }
     }
 
 
     void AsyncTask::sync(const std::function< void()>& f)
     void AsyncTask::sync(const std::function< void()>& f)
@@ -29,8 +30,15 @@ namespace oxygine
         OX_ASSERT(_status == status_not_started);
         OX_ASSERT(_status == status_not_started);
         _status = status_inprogress;
         _status = status_inprogress;
 
 
+        LOGD("run");
+
         bool ok = _prerun();
         bool ok = _prerun();
-        log::messageln("AsyncTask::run %d - %s", getObjectID(), typeid(*this).name());
+
+        if (!ok)
+        {
+            LOGD("_prerun not ok");
+        }
+
 
 
         sync([ = ]()
         sync([ = ]()
         {
         {
@@ -43,8 +51,7 @@ namespace oxygine
 
 
     void AsyncTask::_complete()
     void AsyncTask::_complete()
     {
     {
-        OX_ASSERT(core::isMainThread());
-        log::messageln("AsyncTask::_complete %d - %s", getObjectID(), typeid(*this).name());
+        LOGD("_complete");
 
 
         _status = status_completed;
         _status = status_completed;
         _onFinal(false);
         _onFinal(false);
@@ -63,8 +70,8 @@ namespace oxygine
 
 
     void AsyncTask::_error()
     void AsyncTask::_error()
     {
     {
-        OX_ASSERT(core::isMainThread());
-        log::messageln("AsyncTask::_error %d - %s", getObjectID(), typeid(*this).name());
+        LOGD("_error");
+
 
 
         _status = status_failed;
         _status = status_failed;
         _onFinal(true);
         _onFinal(true);

+ 6 - 2
oxygine/src/oxygine/AsyncTask.h

@@ -76,6 +76,10 @@ namespace oxygine
                 if (addref)
                 if (addref)
                 {
                 {
                     addRef();
                     addRef();
+                    if (!core::isMainThread())
+                        sleep(10);
+
+
                     core::getMainThreadDispatcher().postCallback([ = ]()
                     core::getMainThreadDispatcher().postCallback([ = ]()
                     {
                     {
                         f();
                         f();
@@ -92,9 +96,9 @@ namespace oxygine
             f();
             f();
         }
         }
 
 
-    private:
-
         void _complete();
         void _complete();
         void _error();
         void _error();
+
+    private:
     };
     };
 }
 }

+ 8 - 8
oxygine/src/oxygine/HttpRequestTask.cpp

@@ -42,13 +42,13 @@ namespace oxygine
         _suitableResponse(false),
         _suitableResponse(false),
         _responseCodeChecker(_defaultChecker200)
         _responseCodeChecker(_defaultChecker200)
     {
     {
-        _mainThreadSync = true;
+        setName("HttpRequestTask");
 
 
+        _mainThreadSync = true;
     }
     }
 
 
     HttpRequestTask::~HttpRequestTask()
     HttpRequestTask::~HttpRequestTask()
     {
     {
-        log::messageln("~HttpRequestTask");
         if (_fhandle)
         if (_fhandle)
             file::close(_fhandle);
             file::close(_fhandle);
     }
     }
@@ -156,13 +156,13 @@ namespace oxygine
         return true;
         return true;
     }
     }
 
 
-    void HttpRequestTask::dispatchProgress(int delta, int loaded, int total)
+    void HttpRequestTask::dispatchProgress(size_t delta, size_t loaded, size_t total)
     {
     {
         ProgressEvent event(delta, loaded, total);
         ProgressEvent event(delta, loaded, total);
         dispatchEvent(&event);
         dispatchEvent(&event);
     }
     }
 
 
-    void HttpRequestTask::asyncProgress(int delta, int loaded, int total)
+    void HttpRequestTask::asyncProgress(size_t delta, size_t loaded, size_t total)
     {
     {
         if (_progressDispatched && loaded != total)//dispatch progress only once per frame
         if (_progressDispatched && loaded != total)//dispatch progress only once per frame
         {
         {
@@ -181,7 +181,7 @@ namespace oxygine
 
 
     void HttpRequestTask::_onError()
     void HttpRequestTask::_onError()
     {
     {
-        log::warning("http request error: %s", _url.c_str());
+        log::warning("http request error (%d): %s", _responseCode , _url.c_str());
     }
     }
 
 
     void HttpRequestTask::_onComplete()
     void HttpRequestTask::_onComplete()
@@ -219,15 +219,15 @@ namespace oxygine
             asyncProgress(_receivedContentSize, _receivedContentSize, _expectedContentSize);
             asyncProgress(_receivedContentSize, _receivedContentSize, _expectedContentSize);
     }
     }
 
 
-    void HttpRequestTask::write(const void* data, unsigned int size)
+    void HttpRequestTask::write(const void* data, size_t size)
     {
     {
         if (!_suitableResponse)
         if (!_suitableResponse)
             return;
             return;
 
 
 
 
         if (_fhandle)
         if (_fhandle)
-        {
-            unsigned int written = file::write(_fhandle, data, size);
+        { 
+            unsigned int written = file::write(_fhandle, data, (unsigned int)size);
             if (written != size)
             if (written != size)
             {
             {
                 log::messageln("WRITE FILE ERROR %d %d", written, size);
                 log::messageln("WRITE FILE ERROR %d %d", written, size);

+ 7 - 7
oxygine/src/oxygine/HttpRequestTask.h

@@ -31,11 +31,11 @@ namespace oxygine
         {
         {
         public:
         public:
             enum {EVENT = PROGRESS};
             enum {EVENT = PROGRESS};
-            ProgressEvent(int Delta, int Loaded, int Total) : Event(PROGRESS), delta(Delta), loaded(Loaded), total(Total) {};
+            ProgressEvent(size_t Delta, size_t Loaded, size_t Total) : Event(PROGRESS), delta(Delta), loaded(Loaded), total(Total) {};
 
 
-            int delta;
-            int loaded;
-            int total;
+            size_t delta;
+            size_t loaded;
+            size_t total;
         };
         };
 
 
         HttpRequestTask();
         HttpRequestTask();
@@ -70,12 +70,12 @@ namespace oxygine
         void _finalize(bool error) override;
         void _finalize(bool error) override;
 
 
         void gotHeaders();
         void gotHeaders();
-        void write(const void* data, unsigned int size);
+        void write(const void* data, size_t size);
 
 
         //async
         //async
-        void asyncProgress(int delta, int loaded, int total);
+        void asyncProgress(size_t delta, size_t loaded, size_t total);
 
 
-        void dispatchProgress(int delta, int loaded, int total);
+        void dispatchProgress(size_t delta, size_t loaded, size_t total);
 
 
         virtual void _setFileName(const std::string& name) {}
         virtual void _setFileName(const std::string& name) {}
         virtual void _setUrl(const std::string& url) {}
         virtual void _setUrl(const std::string& url) {}

+ 12 - 0
oxygine/src/oxygine/actor/Actor.cpp

@@ -1418,6 +1418,18 @@ namespace oxygine
         return t;
         return t;
     }
     }
 
 
+
+
+    spTween setTimeout(timeMS dur, const EventCallback& cb, spActor root)
+    {
+        if (!root)
+            root = getStage();
+        dur = std::max(dur, 1);
+        spTween t = root->addTween(TweenDummy(), dur);
+        t->setDoneCallback(cb);
+        return t;
+    }
+
     Transform getGlobalTransform2(spActor child, Actor* parent)
     Transform getGlobalTransform2(spActor child, Actor* parent)
     {
     {
         Transform t;
         Transform t;

+ 5 - 0
oxygine/src/oxygine/actor/Actor.h

@@ -383,6 +383,11 @@ namespace oxygine
         short   _zOrder;
         short   _zOrder;
     };
     };
 
 
+
+
+    /*Runs callback in time ms.Stage used as default actor*/
+    spTween setTimeout(timeMS dur, const EventCallback& cb, spActor root = 0);
+
     Vector2 convert_local2stage(spActor child, const Vector2& pos, spActor root = 0);
     Vector2 convert_local2stage(spActor child, const Vector2& pos, spActor root = 0);
     Vector2 convert_local2stage(const Actor* child, const Vector2& pos, const Actor* root = 0);
     Vector2 convert_local2stage(const Actor* child, const Vector2& pos, const Actor* root = 0);
     Vector2 convert_stage2local(spActor child, const Vector2& pos, spActor root = 0);
     Vector2 convert_stage2local(spActor child, const Vector2& pos, spActor root = 0);

+ 10 - 6
oxygine/src/oxygine/core/android/HttpRequestJavaTask.cpp

@@ -48,12 +48,10 @@ namespace oxygine
 
 
     HttpRequestJavaTask::HttpRequestJavaTask(): _handle(0)
     HttpRequestJavaTask::HttpRequestJavaTask(): _handle(0)
     {
     {
-        log::messageln("HttpRequestJavaTask %x", this);
     }
     }
 
 
     HttpRequestJavaTask::~HttpRequestJavaTask()
     HttpRequestJavaTask::~HttpRequestJavaTask()
     {
     {
-        log::messageln("~HttpRequestJavaTask %x", this);
     }
     }
 
 
     void HttpRequestJavaTask::_run()
     void HttpRequestJavaTask::_run()
@@ -90,8 +88,11 @@ namespace oxygine
 
 
     void HttpRequestJavaTask::error_()
     void HttpRequestJavaTask::error_()
     {
     {
-        onError();
-        releaseRef();
+        core::getMainThreadDispatcher().postCallback([ = ]()
+        {
+            _error();
+            releaseRef();
+        });
     }
     }
 
 
     void HttpRequestJavaTask::gotHeader_(int respCode, int contentLen)
     void HttpRequestJavaTask::gotHeader_(int respCode, int contentLen)
@@ -113,8 +114,11 @@ namespace oxygine
 
 
     void HttpRequestJavaTask::complete_()
     void HttpRequestJavaTask::complete_()
     {
     {
-        onComplete();
-        releaseRef();
+        core::getMainThreadDispatcher().postCallback([ = ]()
+        {
+            _complete();
+            releaseRef();
+        });
     }
     }
 
 
     void HttpRequestJavaTask::_finaliaze(bool)
     void HttpRequestJavaTask::_finaliaze(bool)

+ 2 - 5
oxygine/src/oxygine/core/android/jniHelper.cpp

@@ -32,12 +32,9 @@ namespace oxygine
 
 
         for (size_t i = 0; i < sz; ++i)
         for (size_t i = 0; i < sz; ++i)
         {
         {
-            jstring obj = (jstring)env->GetObjectArrayElement(jarray, i);
-            const char* str = env->GetStringUTFChars(obj, 0);
-
+            jstring jstr = (jstring)env->GetObjectArrayElement(jarray, i);
+            std::string str = jniGetString(env, jstr);
             res.emplace_back(str);
             res.emplace_back(str);
-
-            env->ReleaseStringUTFChars(obj, str);
         }
         }
     }
     }
 }
 }

+ 0 - 1
oxygine/src/oxygine/core/curl/HttpRequestCurlTask.cpp

@@ -203,7 +203,6 @@ namespace oxygine
 
 
     HttpRequestTaskCURL::~HttpRequestTaskCURL()
     HttpRequestTaskCURL::~HttpRequestTaskCURL()
     {
     {
-        log::messageln("~HttpRequestTaskCURL");
         if (_easy)
         if (_easy)
             curl_easy_cleanup(_easy);
             curl_easy_cleanup(_easy);
         _easy = 0;
         _easy = 0;

+ 4 - 8
oxygine/src/oxygine/core/emscripten/HttpRequestEmscriptenTask.cpp

@@ -21,19 +21,16 @@ namespace oxygine
 
 
     void HttpRequestEmscriptenTask::_onload(void* data, unsigned size)
     void HttpRequestEmscriptenTask::_onload(void* data, unsigned size)
     {
     {
-        log::messageln("HttpRequestEmscriptenTask::_onload");
-        _response.assign((char*)data, (char*)data + size);
-        if (!_fname.empty())
-        {
-            file::write(_fname.c_str(), data, size);
-        }
+        _responseCode = 200;
+        gotHeaders();
+        write(data, size);
+
         onComplete();
         onComplete();
         releaseRef();
         releaseRef();
     }
     }
 
 
     void HttpRequestEmscriptenTask::_onerror(int, const char*)
     void HttpRequestEmscriptenTask::_onerror(int, const char*)
     {
     {
-        log::messageln("HttpRequestEmscriptenTask::_onerror");
         onError();
         onError();
         releaseRef();
         releaseRef();
     }
     }
@@ -48,7 +45,6 @@ namespace oxygine
     {
     {
         addRef();
         addRef();
 
 
-        log::messageln("HttpRequestEmscriptenTask::_run %s", _url.c_str());
         const char* method = _postData.empty() ? "GET" : "POST";
         const char* method = _postData.empty() ? "GET" : "POST";
         if (!_postData.empty())
         if (!_postData.empty())
             _postData.push_back(0);
             _postData.push_back(0);

+ 2 - 2
oxygine/src/oxygine/core/ios/HttpRequestCocoaTask.mm

@@ -77,7 +77,7 @@ didReceiveResponse:(NSURLResponse *)response
     {
     {
         NSHTTPURLResponse *httpResponse = ((NSHTTPURLResponse *)response);
         NSHTTPURLResponse *httpResponse = ((NSHTTPURLResponse *)response);
         
         
-        long long size = [httpResponse expectedContentLength];
+        size_t size = size_t([httpResponse expectedContentLength]);
         
         
         int resp = (int)httpResponse.statusCode;
         int resp = (int)httpResponse.statusCode;
         
         
@@ -172,7 +172,7 @@ namespace oxygine
     void HttpRequestCocoaTask::write(NSData *data)
     void HttpRequestCocoaTask::write(NSData *data)
     {
     {
         const void *ptr = [data bytes];
         const void *ptr = [data bytes];
-        unsigned int len = [data length];
+        size_t len = [data length];
         HttpRequestTask::write(ptr, len);
         HttpRequestTask::write(ptr, len);
     }
     }
     
     

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

@@ -43,7 +43,7 @@ namespace oxygine
         int getTime()
         int getTime()
         {
         {
             static int64 startTime = getTimeUTCMS();
             static int64 startTime = getTimeUTCMS();
-            return getTimeUTCMS() - startTime;
+            return (int)(getTimeUTCMS() - startTime);
         }
         }
 
 
         void enable()
         void enable()

Fișier diff suprimat deoarece este prea mare
+ 0 - 1
oxygine/src/oxygine/core/system_data.cpp


+ 18 - 5
oxygine/system_data/original/system/shader.glsl

@@ -65,8 +65,17 @@ lowp vec4 get_base()
 
 
 	return base;
 	return base;
 }
 }
-
-lowp vec4 get_color()
+lowp vec2 my_step(lowp vec2 a, lowp vec2 b)
+{
+#ifdef ANDROID
+	lowp vec2 r;
+	r.x = a.x < b.x  ? 1.0 : 0.0;
+	r.y = a.y < b.y  ? 1.0 : 0.0;
+	return r;
+#else
+	return step(a, b);
+#endif
+}
 {
 {
 
 
 #ifdef REPLACED_GET_BASE
 #ifdef REPLACED_GET_BASE
@@ -78,8 +87,8 @@ lowp vec4 get_color()
 
 
 
 
 #ifdef MASK
 #ifdef MASK
-	mediump vec2 uv2 = clamp(result_uv2, clip_mask.xy, clip_mask.zw);
-	lowp vec4 mask = texture2D(mask_texture, uv2);
+	//mediump vec2 uv2 = clamp(result_uv2, clip_mask.xy, clip_mask.zw);
+	lowp vec4 mask = texture2D(mask_texture, result_uv2);
 
 
 #ifdef MASK_R_CHANNEL
 #ifdef MASK_R_CHANNEL
 	lowp float mask_alpha = mask.r + 0.001;	
 	lowp float mask_alpha = mask.r + 0.001;	
@@ -87,7 +96,11 @@ lowp vec4 get_color()
 	lowp float mask_alpha = mask.a + 0.001;
 	lowp float mask_alpha = mask.a + 0.001;
 #endif
 #endif
 
 
-	base = base * mask_alpha;
+	lowp vec2 sc1 = my_step(clip_mask.xy, result_uv2.xy);
+	lowp vec2 sc2 = my_step(result_uv2.xy, clip_mask.zw);
+	lowp float m = mask_alpha * sc1.x * sc1.y * sc2.x * sc2.y;
+
+	base = base * m;
 #endif
 #endif
 
 
 #ifdef DONT_MULT_BY_RESULT_COLOR
 #ifdef DONT_MULT_BY_RESULT_COLOR

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff