realXtend / tundra

realXtend Tundra SDK, a 3D virtual world application platform.
www.realxtend.org
Apache License 2.0
84 stars 70 forks source link

Research replacing Qt's signal-slot mechanism with more efficient and script-friendly (possible to use from other languages than QtScript ) mechanism #623

Open Stinkfist0 opened 11 years ago

Stinkfist0 commented 11 years ago

F.ex. https://github.com/pbhogan/Signals seems very promising. It also has identical semantics to the Qt's signal-slot mechanism. Retrieval of sender is something that at least would need to be added to this particular implementation.

cadaver commented 11 years ago

Note that Signals is based on FastDelegates, which generates ASM code. It has to be investigated whether it supports all Tundra platforms, including Android.

peterclemenko commented 11 years ago

I think that can probably be replaced with bitsquid foundation (which has no platform specifics).

cadaver notifications@github.com wrote:

Note that Signals is based on FastDelegates, which generates ASM code. It has to be investigated whether it supports all Tundra platforms, including Android.


Reply to this email directly or view it on GitHub: https://github.com/realXtend/naali/issues/623#issuecomment-14438191

Sent from my Android phone with K-9 Mail. Please excuse my brevity.

peterclemenko commented 11 years ago

Yeah, I was looking at that one as well. I was considering combining it with cpptask and bitsquid foundation to create a more lightweight alternative to some of the existing implementation.

"Ali Kämäräinen" notifications@github.com wrote:

F.ex. https://github.com/pbhogan/Signals seems very promising. It also has identical semantics to the Qt's signal-slot mechanism. Retrieval of sender is something that at least would need to be added to this particular implementation.


Reply to this email directly or view it on GitHub: https://github.com/realXtend/naali/issues/623

Sent from my Android phone with K-9 Mail. Please excuse my brevity.

peterclemenko commented 11 years ago

http://bitsquid.blogspot.com/2011/02/managing-decoupling-part-2-polling.html This may be useful.

peterclemenko commented 11 years ago

http://codereview.stackexchange.com/questions/14730/impossibly-fast-delegate-in-c11 FastDelegate without the preprocessor stuff in C++11.

peterclemenko commented 11 years ago

I found a pure C++ 11 sig/slot option: https://code.google.com/p/nano-signal-slot/

Stinkfist0 commented 11 years ago

To clear up possible confusion, the Signals implementation doesn't contain any inline x86 assembly. Also, now that taking a bit closer look, I'd guess that sender could be simply passed always as the first parameter of the Signal, so no extra work would be required for that.