Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Dec 07 16:00
    PerhapsSomeone review_requested #277
  • Dec 07 16:00
    PerhapsSomeone opened #277
  • Nov 08 15:23
    iprisj edited #276
  • Nov 08 12:48
    iprisj opened #276
  • Nov 08 08:29
    Sharparam closed #275
  • Nov 08 08:29
    Sharparam commented #275
  • Nov 08 00:20
    iprisj opened #275
  • Sep 27 12:48
    MasterR8 closed #273
  • Sep 05 16:31
    MasterR8 commented #273
  • Sep 05 16:23
    Sharparam commented #273
  • Sep 05 16:07
    MasterR8 commented #273
  • Sep 03 09:46
    Sharparam commented #273
  • Sep 03 09:44
    Sharparam edited #273
  • Sep 03 09:44
    Sharparam edited #273
  • Sep 03 09:43
    Sharparam milestoned #274
  • Sep 03 09:43
    Sharparam commented #274
  • Sep 03 09:42
    Sharparam labeled #274
  • Sep 03 09:06
    poveden edited #274
  • Sep 03 09:06
    poveden opened #274
  • Aug 15 16:13
    MasterR8 opened #273
Brandon Scott
@brandonscott
It should work every time you set it without doubt
there's no rate limiting
@Sharparam any thoughts?
Adrian
@WolfspiritM
Hm that's weird then. I even logged the request to setkeys and I'm pretty sure setkeys is called with the right color and key. But the Keyboard doesn't set the Color. A few calls later it finally does.
Adam Hellberg
@Sharparam
in WaM with frequent updates it would not always register every change (~250ms between changes). havent' checked with latest updates but if brandon could get 24fps working which is an update every ~41.67 seconds then anything down to at least that delay should work fine
milliseconds*
41.67 milliseconds
Adrian
@WolfspiritM
Sometimes there are updates every half a second for me and it seems to work with just a few keys. Just all Keys at once seem to be causing issues.
Adam Hellberg
@Sharparam
how are you performing the update when changing all keys
Adrian
@WolfspiritM
Multiple Chroma.Instance.Keyboard.SetKeys(new List<Key> { Key.W, Key.A, Key.S, Key.D }, Color1); for each color
Adam Hellberg
@Sharparam
a cache of some sort might be more performant in reducing the number of created objects on the heap, but it shouldn't be related to the issue. it should just change the speed of updates if there are a lot of such new object creations
is this single- or multithreaded app?
Adrian
@WolfspiritM
It's Multithreaded...using Tasks
Adam Hellberg
@Sharparam
@brandonscott are your updates in your apps handled by their own threads separate from main thread?
Brandon Scott
@brandonscott
No
And I haven't tried the thread safe implementation you've done across multiple threads
But no, all of my keyboard updates are from the main thread normally
Adrian
@WolfspiritM
Could be a problem with the Taskhandling then. Maybe it only works on the first Thread that calls Chroma while other Tasks under load might be opened on another thread in the threadpool
Adam Hellberg
@Sharparam
isn't EA using a separate thread for updates
@WolfspiritM it could be worth making a test having only one thread handle keyboard updates, and see if it experiences the issue
i'm taking it you're firing of several one-off threads (tasks) that do one update and die?
Brandon Scott
@brandonscott
No it's not @Sharparam as we hadn't implemented the thread safety at that point
So it was all using dispatcher timer
Adam Hellberg
@Sharparam
dispatcher-timer does the tick on a separate thread doesn't it
Brandon Scott
@brandonscott
Yes but it's intrinsically linked to the UI
But yes you are rigbt
Rigbt
Adam Hellberg
@Sharparam
hence why you need to make use of the invoker if doing UI updates from a dispatchertimer tick since it's not running on UI thread
Brandon Scott
@brandonscott
*right
Correct to some extent, you can make a dispatcher timer run on the UI thread though
It's one of the unique features for it
Adrian
@WolfspiritM
I'm handling some Network Stuff in different Tasks then fire the update with an event which should still be in the same Task and Thread.
Will try to sync them back to the UI Thread
Adam Hellberg
@Sharparam
not entirely sure how C#/.NET handles event threads
firing an event will run the event handler in its own thread, but how those threads are managed and if they are re-used i'm not sure
maybe we should get jon skeet in here lol
@brandonscott make it happen
Adrian
@WolfspiritM
According to System.Threading.Thread.CurrentThread.ManagedThreadId right before SetKeys it's always the same Thread.
However...I will try a few more things tomorrow. For now I need to go. Thanks for the help! :-)
Adam Hellberg
@Sharparam
always
Adrian
@WolfspiritM
Okay. I tried one last thing...making my color changes in a simple winforms app. I have the same problem there including a repro. That seems to be an issue somewhere deeper. Not sure if in Corale or even deeper in the SDK. Here is my repo: http://pastebin.com/X935yS6E
The funny thing is if you remove or add one Key somewhere...it works again
but as it is there...it only displays parts
Adrian
@WolfspiritM
Okay I fixed it with a change in Colore. I just changed the foreach...SetKey(key, color); in the SetKeys method to foreach..._grid[key] = color; and at the end I'm calling SetGuid(NativeWrapper.CreateKeyboardEffect(_grid)); in the SetKeys method. Prevents creating Effects for every Keychange. Seems like the SDK has troubles creathing effects for every key in some cases.
Bart van Vliet
@Kapulara
Nico
@njbmartin
@Kapulara Can you explain what it is?
Dariusz Niemczyk
@Palid
@Sharparam please opensource your whackamole, same goes for @brandonscott's snake. It would really help everyone using your library, as you lack docs. ;)
Adam Hellberg
@Sharparam
Brandon Scott
@brandonscott
The docs really aren't lacking
They're very good compared to the average