cc8a3f612a
Use Boost's own CMake configuration file instead of CMake's module
...
Otherwise, breaks builds with newer Boost versions. Also set policy CMP0167 to NEW and forcing CMake to use the Config package and not the built-in module. Will now require Boost 1.70, but this should be available everywhere.
2025-11-10 10:56:20 +01:00
e9572b3a44
Add missing <chrono> include in Playlist.cpp
2025-11-10 10:56:20 +01:00
976c70be10
Bump libprojectM version to 4.1.5
...
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net >
v4.1.5
2025-11-02 15:41:55 +01:00
e2b9cbc1ba
Update projectm-eval submodule to release 1.0.4
...
Fixes a small memory leak.
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net >
2025-11-02 15:41:55 +01:00
5a36fcaaa1
Fix values for bass/middle/treble/volume params for shaders
...
Since earlier projectM versions had values in these args which were way higher than they should've been, they were divided by 100. Since the audio processing refactor, this is no longer required, but these divisions were overlooked and thus shaders got only 1% of the actual magnitude expected.
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net >
2025-11-02 15:09:38 +01:00
0f026e0734
Add additional alternates for the mult() function with int as arguments
...
Required to propagate NaNs as SM3/DX9 does.
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net >
2025-11-02 15:09:38 +01:00
5912f74273
Convert HLSL array subscript operator operand to int
2025-10-28 17:54:02 +01:00
0a1a71fbd9
Add missing "distance" intrinsic to HLSLparser
...
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net >
2025-10-28 17:54:02 +01:00
8759956b52
Update projectm-eval to latest master
...
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net >
2025-10-28 17:54:02 +01:00
0fe550467f
Fix playlist shuffle, index upper bound off-by-one
...
This caused projectM to sometimes stop switching presets if the index chosen was the end of the given interval. Since the preset switch fails in this case, no additional switches will happen unless the user manually switches to a new preset.
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net >
2025-10-28 17:54:02 +01:00
e172adddb1
Fix Emscripten build check workflow
2025-10-28 17:54:02 +01:00
d0caed9554
Bump libprojectM version to 4.1.4
v4.1.4
2025-01-24 15:18:56 +01:00
9aa8bcb1fe
Hard-code internal noise texture format for GL Core profiles
...
glGetInternalformativ() also is an addition in OpenGL Core 4.2, which we don't officially support.
2025-01-20 11:26:46 +01:00
c30109fb75
Bump libprojectM version to 4.1.3
v4.1.3
2024-12-20 23:24:45 +01:00
327fad55e4
Add both long and short sampler names for random textures.
...
If a preset uses different long-form samplers for a single random slot, this will result in a failure, e.g. using both "sampler_rand00_something" and "sampler_rand00_else". As this also isn't supported by Milkdrop and would create a conflict situation, we don't care.
2024-12-16 17:52:51 +01:00
ca9af04704
Fix texture loading if casing mismatches filename
...
Always use lower-case unqualified names to find and cache the actual textures.
2024-12-16 17:52:51 +01:00
18c3ad764c
hlslparser: Add missing "faceforward" HLSL intrinsic.
2024-12-16 17:46:39 +01:00
4ad657c161
hlslparser: Add missing "ldexp" HLSL intrinsic.
...
Had to simulate it with the "x * exp2(exp)" expression in GLSL, as GLSL only supports integer types as exponents in its native ldexp implementation, while HLSL solely uses floats.
2024-12-16 17:46:36 +01:00
f251cae528
Fix wrong API exports definition in playlist build.
...
Mostly irrelevant on UNIX (except if visibility is set to hidden by default), but may cause issues on Windows as the dllexport declspec was missing.
2024-12-09 17:07:38 +01:00
db035da562
Improve vcpkg manifest, use features for build options.
...
Now pulling in the required vcpkg dependencies only if a certain build feature is requested.
v4.1.2
2024-08-07 18:02:09 +02:00
6d2097793c
Add option to use system projectm-eval (used in vcpkg)
2024-08-07 16:17:58 +02:00
7a449cc56c
Fixed variable using reserved word in vertex shader
...
OpenGL ES has a distance() function, and thus, the shader may fail to compile in some drivers, e.g. some Android releases.
2024-08-04 17:03:57 +02:00
9bc89af81f
Bump libprojectM version to 4.1.2
2024-07-12 14:23:52 +02:00
9c4b12d711
Properly check for uninitialized texture in CopyTexture class.
...
Before rendering the first frame, there is no output texture present in a preset, so we can't copy anything and should just skip that step.
2024-07-12 14:23:52 +02:00
03aa8a7ffd
Bump libprojectM version to 4.1.1
v4.1.1
2024-03-22 17:48:35 +01:00
7d40b96255
Fix bug that prevents composite shader from being loaded
...
Happens in the rare cases if a preset has no warp shader
2024-03-14 11:16:27 +01:00
876cadecf2
Fix include dirs in SOIL2 library
2024-03-14 11:16:27 +01:00
2576c7765e
Fix #if USE_GLES to #ifdef in SDL test UI
2024-03-14 11:16:26 +01:00
c697356834
Use CMakeLists.txt in GLM source dir
...
Also simplified it a bit, excluding the unnecessary source files and adding the interface library on the top level CMakeLists.txt.
2024-03-14 11:16:26 +01:00
2eb0a419f2
Add pthreads option for emscripten
2024-03-06 11:42:19 -06:00
b658cccf05
Release version 4.1
v4.1.0
2024-03-02 15:36:02 +01:00
03b4c071a2
Properly cast argument types when adding abs to shader functions
2024-02-28 17:03:37 +01:00
59efc54fe5
Fix emscripten options in CMakeLists.txt
2024-02-25 22:28:22 -06:00
861c36e41b
Scale and smooth samples for non-custom waveforms
2024-02-21 16:12:31 +01:00
07c9a8a660
Re-add native matrix multiplication
2024-02-21 14:36:35 +01:00
3aa48a3f99
Modify NaN propagation for multiplication
2024-02-21 14:36:35 +01:00
0c27e8164a
Mimic Milkdrop code when handling RGBA values outside [0.0, 1.0]
2024-02-21 14:12:33 +01:00
db89e54109
Add mat3x4 and mat4x3 indexing functions
2024-02-21 14:12:12 +01:00
04be6f40d0
Fix pow domain on some drivers
2024-02-21 14:11:37 +01:00
7d97baffcd
Match math function behavior to DX9 implementation
2024-02-21 14:11:37 +01:00
d6b6446ac9
Make sure easter egg value is >0.
...
Gaussian distribution requires the sigma value to be >0. If the value is too small, we just use the default 1.0 value.
2024-02-15 18:11:46 +01:00
1477664182
Move noise texture creation into MilkdropNoise class.
...
No need to create an instance of the class as all generators are static. Use std::vector instead of C-style pointers as pixel buffer.
2024-02-15 18:11:39 +01:00
c3830926b3
Fix image URLs in README.md
2024-02-13 08:57:44 +01:00
2eb1e41f5f
Pre-allocate vertex buffers for warp/comp meshes and borders
2024-02-12 16:39:18 +01:00
fcafa568cd
Improve performance with vertex buffer updates
...
In wave/shape drawing code, we now preallocate the vertex buffer once for the maximum number of sides and only update the existing buffer instead of reallocating it over and over again. Trades a few KB of additional RAM for a good amount of drawing performance.
In the motion vector grid code, we only reallocate the buffer if we draw more vertices than in the previous draw call.
Also changed the drawing hint to GL_STREAM_DRAW, which is slightly better suited for this kind of usage (update once, draw once, repeat).
These changes should hopefully improve performance, especially when large numbers of custom shapes are drawn.
2024-02-12 15:14:16 +01:00
f22cc42a61
Added requested revision
2024-02-11 22:40:11 +01:00
0067e82f7e
Fix various typos
...
Found via `codespell -q 3 -S "./vendor" -L ist`
2024-02-11 22:40:11 +01:00
d82c031671
Use PRJM_EVAL_F in ShapePerFrameContext
2024-02-09 20:30:42 -06:00
8897b9fe39
Only parse headers with doxygen
2024-02-09 19:15:38 -06:00
39c6bc98da
Tell sphinx about our export identifiers so it can parse function signatures
2024-02-09 16:55:16 -06:00