* Fixes issue projectM-visualizer/projectm#130
Adds functionality of writing a rendered frame to file
as requested by the issue https://github.com/projectM-visualizer/projectm/issues/130.
Keyhandler.cpp has been updated to handle the keydown of 'd',
which triggers writeNextFrameToFile to be set to true, which means
at the end of Renderer::FinishPass1 we write the texture contents to file.
Renderer::debugWriteMainTextureToFile() const contains the functionality
of writing the contents of the main texture.
* Addition to commit that fixesprojectM-visualizer/projectm#130
Safe file write, making sure we don't overflow while creating
the filename. If c++20 features was enabled, this could
look so, so much better.
* Added keybinding to README doc
* Formatting
Fixed snake_case to camelCase
Changed delete to delete[]
Turned magic constant to a named variable
* Noise not needed - F4 shows if shaders are compiled.
* Don't compile native presets by default in Visual Studio
* Debug / duplicate info
* Missed a debug native preset.
* Make texture errors more clear - we failed looking for multiple extensions.
* Move images from presets folder to textures folder
* Documented missing textures.
* Undo Visual Studio version bump.
* Renable NativePresetFactory (but the example native presets remain disabled)
* Comment
* Fixes / updates to audio device toggling.
* Stop crashing if there is no input microphone. Make fake audio dynamic so it can be enabled if there is no mic.
* Remove debug output.
* Document VC++ redist requirement.
* F4 missing from SDL help menu.
* Windows app instead of Console (no more cmd.exe pop-up when launching).
* Fullscreen for built-in settings.
* New icon (based on github and idle preset and consistent with Steam)
* Change language for loopback / audio changing.
* default fullscreen for built-in settings.
* Revert "Fullscreen for built-in settings."
This reverts commit b1936e76ab.
* Revert "default fullscreen for built-in settings."
This reverts commit ea89584174.
* Revert "9a9151b9"
* 9a9151b9
* fake_audio to fakeAudio
* Beat detect sensitivity fix.
* Default: 1.0
* ReadMe beat sensitivity min/max.
* Beat sensitivity from config or settings isn't initialized.
* Smarter position.
* Make PCMScale (vol_history) also impacted by beat_sensitivity.
* Enhance and clarify Hard Cuts and better separate beat sensitivity.
* Forgot one config.
* Consistency with defaults.
* Even more clear about the default for Beat Sensitivity.
* Supports Multiple pass2 renderings.
My application (Silent Radiance) added projectM visualizers, but I needed support for VR.
So I added Renderer::RenderFrameOnlyPass1 and Renderer::RenderFrameOnlyPass2
This allows an offset in the screen output so the same image can be rendered twice very quickly.
I could have rendered to a buffer externally.
This is fed into the Raylib VR in my application to add the fisheye effect.
* Added an example of the VR
* Added multiple screen renderings for VR
Added a new way of rendering that allows multiple pass2's to be done: one per screen.
This allows for a second screen output, and VR. In fact I am using this for VR where I need a left and right eye on the same screen.
In order to do this, I sometimes have to set the viewport not starting at the upper left of the screen.
Added renderFrameOnlyPass2 - and an optional pipeline can be passed - this would be a pipeline when there is a transition from one visual to another. This can be called once per eye.
Finally, renderFrameEndOnSeparatePasses cleans up, does the fps control, statistics, etc.
This alternate rendering is as possible:
Pipeline pipeline;
Pipeline *comboPipeline;
comboPipeline = renderFrameOnlyPass1(&pipeline);
for each eye:
renderFrameOnlyPass2(comboPipeline,xoffset,yoffset,eye);
Then
renderFrameEndOnSeparatePasses(comboPipeline);
for the accounting and releasing the mutex
* Removed the duplication of code for VR.
* Removed the duplication of code for VR.