Commit Graph

2740 Commits

Author SHA1 Message Date
3158ee615e Bump libprojectM version to 4.1.6 v4.1.6 2025-11-24 10:59:23 +01:00
3371d864c8 Update vcpkg repo baseline commit to include projectm-eval 1.0.5 2025-11-24 10:59:23 +01:00
66b0b47f2f Bump projectm-eval submodule version to 1.0.5 2025-11-24 10:59:23 +01:00
c700dba616 Add workflow configurations to test boost-filesystem and more platforms/archs 2025-11-24 10:59:23 +01:00
7b299dec57 Keep references to textures and samplers in descriptors
Previously, if the TextureManager was recreated, e.g. when changing the texture paths, all loaded textures were deleted, even if currently in use by a preset. Storing textures and samplers as shared pointers instead of weak pointers will make sure the objects are kept alive until the preset is unloaded.

Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-24 10:59:23 +01:00
19e945c733 Apply possible HLSL compiler optimization for pow() function with literal 1 as exponent
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-20 10:57:11 +01:00
f55d4a97f4 Fix wrong type used in PCM smoothing in custom waves.
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-19 13:04:34 +01:00
0ac5c24792 Place shader "PS" function into its own line and wrap arguments for readability.
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-19 13:04:34 +01:00
fdd9428927 Fix a constant's type in float acos(float) overload in HLSL transpiler
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-19 13:04:33 +01:00
ae4246c8b7 Add missing "fwidth" intrinsic in HLSL transpiler
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-19 13:04:33 +01:00
082f3b7a45 Remove warp texel offset, introduced drift in warp shader.
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-19 11:54:02 +01:00
961ed473b6 Add additional row-access functions for matrices in HLSL transpiler
Fixes "martin - mayday (shifters escape retouched).milk" and probably some others.

Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-19 11:54:02 +01:00
f8fe003416 fixed an issue with sep attribute mngt / per pixel
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-19 11:54:02 +01:00
406e5c9c20 Remove decay value fix for 16-bit GPUs, as it capped decay to 0.9375. 2025-11-12 10:01:25 +01:00
82b71e2161 Fix some default waveform rendering bugs
All waves were rendered upside-down, breaking presets requiring the wave to be at the top or bottom due to warp movement. Using the flipped transformation matrix for drawing will take care of this globally.

Also fixed two small mistakes regarding operators.

Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-12 10:01:24 +01:00
7e5f84bda6 Set vertex_point_size uniform for all uses of the untextured vertex shader
Only custom waves set the point size to 2, default waveforms still render the 2x2 pattern when using dots. Other draw calls aren't affected as they only draw lines/triangles, but it's good practice to not leave the uniform in an undefined state.

Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-12 10:01:24 +01:00
e3f19db745 Use previous frame's image (plus motion vectors) in blur textures
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-11-10 12:27:45 +01:00
e3a4ddf04d Silence CMake warning if projectM-Eval is not found externally.
Also output additional information in both cases (found/not found).
2025-11-10 12:24:54 +01:00
ddf8f98cef Force use of Boost's config package in projectM's installed CMake config 2025-11-10 12:24:54 +01:00
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