Hey!
I've been tinkering with a Vis for a while and a few questions popped up lately, maybe someone with C++ knowledge can help me? (Ian?)
Performance
My vis draws to each pixel of the Video array once per frame, in order to fill it with a color. This works reasonably for lower resolutions, but as soon as I cross the FullHD border on my 4K screen, the framerate drops dramatically. I'm not really familiar with C/C++, is there maybe some kind of memory trick that could accelerate filling the entire array with the same value?
I'm using this code currently:
unsigned long rgbVal = RGB(bVal, gVal, rVal);
int len = width*height;
for(i=0;i<len;i++) {
Video[i] = Video[i]|rgbVal;
}
(In before "buy a new PC, hurr hurr")
Resolution restriction by XMPlay
To overcome the performance issue, I'm currently using the "Restrict vis size" setting, but I noticed it doesn't go above 999 in width or height. You've probably guessed it - I'd like to restrict it to 1920x1080 to have perfect pixel doubling for the vis, but I had to settle for 960x540...
Song change/skip detection
I also want to reset a couple of variables when a song change or skip is happening. Is there a way for the vis to query this? I think the QueryInterface is the right thing to use, but I haven't seen code examples for this yet (and I'm not primarily a coder). Can someone help me with this?
Thanks in advance!
Many greets,
Thomas