-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spout Integration #3
Comments
Maybe I will download the Original BeatDrop for Spout source code, adding the same new features and I will upload it. |
I asked the owner of Spout if the Spout version of BeatDrop can be compiled using Visual Studio 2019. This answer can be found here: milkdrop2077/MilkDrop3#3 (comment) |
I have managed to compile the leadedge's BeatDrop SpoutDX, but it does have some cons for it:
Here is the file what I have modified: Next I can try to compile the Spout OpenGL Version of BeatDrop. I already tested this and it works as my improvement one! Wish me luck! (I give up due to a plugin.cpp problem that we're solved.) Every Resolume Arena users wants a retrospective music visualization right now! |
Ok. Now leadedge (Lynn Jarvis) fixed the navigation keys, also a preset compatibility! You can check out this commit here. The Spout Integration is ALMOST done! We have to add some of my BeatDrop features and it's done! |
Yeah. The one issue is: BeatDropSpoutReenablingIssue.mp4...and if I change the SpoutWidth and SpoutHeight below 1920, respectively below 1080, it won't let me share this visualization to Spout. |
Hey! I have finished the Spout Integration, but if I change the window, the sender doesn't change the resolution. We recommend to reenable it. Now the Spout output now works after reenabling. Afaik, it remains as a BETA. BeatDropSpoutIntegrationFinished.mp4Thank you, leadedge (a.k.a Lynn Jarvis) for help! ;) |
Fix: BeatDrop Window now syncs to the Spout Sender resolution instead of the fixed size. BeatDropSpoutWindowSyncTest.mp4So, it's OFFICIALLY FINISHED! |
Hey, @leadedge! Sadly, BeatDrop uses XRGB which isn't supportable for NestDrop of invoking a Spout Sprite. Can you please make this visualizer to share ARGB texture for wide compatibility? |
I have limited time at the moment due to other commitments. I would suggest to try forcing the backbuffer format to D3DFMT_A8R8G8B8. This should be done when DirectX is initialized.
The received format is detected as D3DFMT_A8R8G8B8 and might solve the problem so it's worth a try. |
Oh! Thank you very much! That solved a problem instead of using D3DFMT_UNKNOWN. I might tag it in a commit! ;) |
I did all the steps above, but sadly, some MilkDrop 1 effects, such as invert and solarize affected the BeatDrop's Spout Sender, except video echo, brighten and darken. Any way to fix, @leadedge? Both Invert and Solarize enabled didn't affect it. I wonder why? EDIT: One more issue. When doing a soft cut transition, the old preset stays black and the new preset fades in (it depends on Comp Shader presets you are using). |
Well it was worth a try and it mainly works. |
Probably it's because alpha blending. EDIT: I know that it's designed for XRGB, but looking forward to make the ARGB renderer very stable for the BeatDrop's Spout Sender by not affecting it by MilkDrop 1 effects and some transitions that has a Comp Shader in the old state. |
You would have to examine milkdropfps.cpp, but there are a lot of references to blending and it's complicated. I suggest another way. Remove the changes in the BeatDrop code to force D3DFMT_A8R8G8B8 and make the change in SpoutDX9.cpp instead -
The texture format is determined from the surface description.
In this case we know that D3DFMT_A8R8G8B8 works, so here it can be changed to a fixed value.
A shared texture of that format is then created, the surface is copied to it and receivers see ARGB. It is received OK as far as I can see. |
Hey! I have added EDIT: Here's what it looks like with the tweaked Spout Code of BeatDrop Source Code: https://mega.nz/file/wJZWAarL#xj5-WMG8Gy-EPY7d7DHUv-6cM7wwrl8d_W1rzZa3IQQ (video link) |
That's good. It turned out to be a simple solution and it seems to work OK. |
Because of too many errors or unresolved externals using VS2019, I can't integrate Spout. Can you please help me?
The text was updated successfully, but these errors were encountered: