vvvv / VL.StandardLibs

A collection of standard libraries for vvvv including VL.Stride, VL.Skia, VL.ImGui, msgpack.org[VL]
https://visualprogramming.net
GNU Lesser General Public License v3.0
40 stars 15 forks source link

make convenient mouse/keyboar/touch nodes #470

Open joreg opened 4 years ago

joreg commented 4 years ago

input could be windowinputsource, entity or layer in order to fetch the right device for the window in question. output: mousedevice and position, delta, buttons, while

joreg commented 4 years ago

see also vvvv/VL.StandardLibs#455

tebjan commented 4 years ago

Mouse Keyboard Touch nodes as entities. provide position in UV, hecto pixel top left, DIP? is Y up or down?

azeno commented 4 years ago

TextInput of SDL window not working because of mix of WinForms and SDL. I tested with a little example and once both run in the same thread the text input doesn't work anymore. So we have two options to proceed here:

UPDATE finally figured out how to properly bridge win forms and SDL, gives us some pause here at lease, see ae36b346cf552ff57cd1c0fb0edc909e93fad9a0

tebjan commented 4 years ago

This evaluation only focuses on text events but doesn't include other event sources like touch. The reason we used SDL in the first place is to have touch events, which is one of the first things requested by many users. This appears to be a more important event source compared to text input for testing and evaluating stride for starters and beginners at node.

It doesn't appear to be a wise decision to roll that back on the basis of an arguably less important issue. Also, Winforms is untested with our current multi-window renderers.

In general, the best solution is of course getting rid of Winforms, but it will also take more time than we have before node. So, I would postpone this for now and add it to the known bugs since it takes up precious developer time and we currently have more critical issues than text events.

The root of this problem is of course that we have one runtime thread for all running applications in the HDE. As soon as we have one thread or process per app, every app can have whatever event loop they want, as you would expect it from a developer perspective. This would make all this a non-issue.

We should also look into raw input and the custom message loop implementations in the Stride repo, before moving on.

azeno commented 3 years ago

Just for reference - this would be a nice approach maybe: image

gregsn commented 3 years ago
gregsn commented 2 years ago

We should reevaluate if we really want to have SceneWindow, TextureWindow and RenderWindow, that share

Nothing fits together and when you are done designing the nodes for the entity world, you need to start over for the next system.

However, if we just tear everything apart we don't end up with this mess: grafik In this sketch we have nodes for different tasks, that play well together: