Commit Graph

2431 Commits

Author SHA1 Message Date
66380727b2 Create texture search path list in ProjectM class, pass it to TextureManager. 2022-09-09 00:45:58 +02:00
788a5ecaac Class Renderer: Store TextureManager instance as unique_ptr for easier memory management 2022-09-09 00:45:58 +02:00
6906d4ed60 Class Renderer: Renamed members, removed more unused ones. 2022-09-09 00:45:58 +02:00
33523ffe63 Class Renderer: Made internally used member private, removed a few unused members. 2022-09-09 00:45:58 +02:00
0e026ac7af Cleaned up TextureManager header, renamed members and fixed search path list usage. 2022-09-09 00:45:57 +02:00
3dab0dafc8 Quick fix: Cut off any text after end of shader's main() function
In a shader, the main function must be the last one declared. Everything following it isn't used and the HLSL compiler seems to simply ignore it. Some preset authors put credits after the closing bracket without //, which fails shader compilation in projectM. We'll now just cut off any text following the last closing bracket. One example preset is "martin - city lights.milk".
2022-07-25 12:05:46 +02:00
595a9a6cbf Disable line smoothing which is not supported in GLES, use different GL constants for other calls.
Using "GL_CLAMP_TO_EDGE" could in theory make textured shaped look weird, but the image should ideally be filling the shape completely, so users will in practice never see the actual texture border.
2022-07-11 14:26:57 +02:00
a6293f63c8 Fix function name casing causing an error with threads disabled. 2022-07-11 14:26:57 +02:00
edf06e9940 Disable OpenMP & multi threading on emscripten.
Doesn't give any real speed improvements either due to WebAssembly limitations, so we just drop it for now.
2022-07-11 14:26:57 +02:00
460a2dcd84 suggested change for float cast 2022-06-27 19:09:34 +02:00
e73917d32a did not mean to change float cast style 2022-06-27 19:09:34 +02:00
4ef7f44b8d projectm_pcm_add_float_1ch_data to projectm_pcm_add_float 2022-06-27 19:09:34 +02:00
73042a9fca Removed a filename that was added automatically to the wrong target by the IDE.
Had no build implications as it's an interface target.
2022-06-24 15:29:48 +02:00
4ad0242c60 Only search for system GLM library if user requests it.
Preferably (and by default) use the internal copy. There's rarely a need to use it from a system location, as it's just a header-only lib.
2022-06-09 10:49:14 +02:00
9298ae396c Remove unused RenderItem* files 2022-06-09 10:48:57 +02:00
39ceea422b Fix playlist loading check. 2022-06-06 18:50:50 +02:00
65a2496bfa Removed parameters from ProjectM initializer functions and set aspect correction earlier.
All parameters were just values from the internal settings struct, which is readily available - no need to pass them on the stack.
2022-06-06 18:50:50 +02:00
b28d3762ab Simplified ProjectM::RenderFrameOnlyPass2 2022-06-06 18:50:50 +02:00
828a0eb04a Moved comments for ProjectM::RenderFrameOnlyPass1 to header. 2022-06-06 18:50:50 +02:00
3dbf4ecb4b Instantiate PipelineContext directly.
The class has no real dependencies and sind we no longer need to hide internal dependencies we can just use it directly.
2022-06-06 18:50:50 +02:00
9dca6e7857 More cleanups in RenderFrame* methods. 2022-06-06 18:50:50 +02:00
f2e0b09bde Added a FIXME for later improvements of async preset loading. 2022-06-06 18:50:50 +02:00
7334c8085b A few cleanups in the RenderFrame functions. 2022-06-06 18:50:50 +02:00
1e25e2119c Removed unused "interface" enum. 2022-06-06 18:50:50 +02:00
03f202859b Moved inline implementations to ProjectM.cpp. 2022-06-06 18:50:50 +02:00
1af2b97e50 Remove ProjectM::DestroyPresetTools
Unique pointers are destroyed automatically during destruction of the class and the method isn't called from anywhere else.
2022-06-06 18:50:50 +02:00
0a271b8086 Remove unnecessary/dead code from ProjectM::InitializePresetTools.
Function is only called from constructors, so failing to initialize important subsystems would leave projectM unusable, and we can simply let the exception bubble up to the caller. Such exceptions are already being caught in the C wrapper.
2022-06-06 18:50:50 +02:00
576654d676 Build fix: rename a few missed instances of _settings to m_settings 2022-06-06 18:50:50 +02:00
2c2a830843 Reformatted ProjectM class code 2022-06-06 18:50:50 +02:00
5e104093b6 Add a space before trailing comments.
Comments being slammed right against the code looks weird.
2022-06-06 18:50:50 +02:00
db6959c3ab Cleaned up member function parameters. 2022-06-06 18:50:50 +02:00
60f93d7de1 Use trailing return types. 2022-06-06 18:50:50 +02:00
b7e3943cc2 Move methods only used internally into private section. 2022-06-06 18:50:50 +02:00
73c6d2793c Fixed member casing in ProjectM class. 2022-06-06 18:50:50 +02:00
5e5b35fdb8 Replaced behaviour FLAG_* constants with an enum. 2022-06-06 18:50:50 +02:00
27b1a57b82 Removed unimplemented members. 2022-06-06 18:50:50 +02:00
3cc3667347 Moved class members to bottom, replaced some types and added default initializers.
Mostly replaced raw pointers with std::unique_ptr for easier memory management. Probably not needed for many of those classes, but was the least intrusive change for now.
2022-06-06 18:50:50 +02:00
7488250cab Removed framerate limiting code from ProjectM class.
The library should not hold up any external render loop. Waiting for vsync or achieving a target FPS value should be done by the outside application after presenting the render result.
2022-06-06 18:50:50 +02:00
c9b8d5e76a Renamed ProjectM class members to have m_ prefix. 2022-06-06 18:50:50 +02:00
1385adb368 Cleaned up includes in ProjectM class. 2022-06-06 18:50:50 +02:00
f2b04480c0 Renamed projectM class to ProjectM 2022-06-06 18:50:50 +02:00
5da6ff1b29 Added missing OpenMP library in projectM_shared target.
Only required on macOS, but still important.
2022-05-29 15:49:52 +02:00
90bf1200bd Fix CMake configuration SDL2 version output for the test UI. 2022-05-29 15:49:52 +02:00
eb96d22a63 Use CMake's FindOpenMP module and link to the target if found.
Also export the target for linking the static libprojectM library in downstream projects. This is not required for the shared lib, and in this case, missing OpenMP compiler/linker support will not fail the build.
2022-05-29 15:49:52 +02:00
a78a43d112 Add comment for future change 2022-05-29 15:49:14 +02:00
628bf3dad9 Rename frequency spectrum variables 2022-05-29 15:49:14 +02:00
640023b805 Improve const/noexcept correctness 2022-05-29 15:49:14 +02:00
0d8bb362bc Move method definitions to .cpp 2022-05-29 15:49:14 +02:00
8be7f4589c Factor out more common structure 2022-05-29 15:49:14 +02:00
15d2aa61bc Remove unneeded isnan checks
These values would only be nan if the dft yielded nans.
This should never happen as long as the sound input isn't something
weird, like nan or +-inf.
2022-05-29 15:49:14 +02:00