Commit Graph

2761 Commits

Author SHA1 Message Date
ec00a950b7 Use Mesh class in User Sprites 2025-10-27 19:29:00 +01:00
d4404b1c58 Use Mesh class in PresetTransition class 2025-10-27 19:29:00 +01:00
04e1f2ccfa Use Mesh class in CopyTexture class 2025-10-27 19:29:00 +01:00
11d93e1633 Use Mesh class in classic post-processing effects 2025-10-27 19:28:59 +01:00
bfd11fa3bf Use Mesh class in Waveform effect 2025-10-27 19:28:59 +01:00
ea5dffa275 Use Mesh class in Video Echo effect 2025-10-27 19:28:59 +01:00
d8ba9a31cb Use Mesh class in Warp effect
Now using the generated grid vertices and indices directly, drawing the warp mesh in a single draw call. This will increase the number of drawn vertices, but all GPUs made in the past decade can easily deal with 100K triangles or more.
2025-10-27 19:28:59 +01:00
95001a7e77 Use Mesh class in Motion Vector effect
Also get rid of the additional index attribute array, as gl_VertexID contains the same information and is free.
2025-10-27 19:28:59 +01:00
a20fba8d98 Use Mesh class in Final Composite effect 2025-10-27 19:28:59 +01:00
f9a1d97f0e Use Mesh class in Darken Center effect 2025-10-27 19:28:59 +01:00
a7df3680d9 Use Mesh class in Border effect
Reduced draw calls from 4/8 to 1/2 by specifying 8 vertices accessed via indices to draw each border in a single call.
2025-10-27 19:28:59 +01:00
f5d9546e83 Use Mesh class in Blur effect 2025-10-27 19:28:59 +01:00
6095f32283 Use Mesh class in Custom Shape effect 2025-10-27 19:28:59 +01:00
6287044384 Use Mesh class in Custom Wave effect 2025-10-27 19:28:59 +01:00
7e05f0fe0a Implement a mesh class for rendering geometry 2025-10-27 19:28:58 +01:00
797a24251f Don't clear history each time individual items are added or removed.
This will prevent the playback history from vanishing unexpectedly in case a preset can't be loaded.

Also fixed a few typos in the Doxygen comments and clarified how the history is changed when changing the playlist.
2025-10-27 19:20:07 +01:00
2da6db297e Playlist Library: Improve failed preset handling using a loop
Also removing failed presets immediately, which will prevent the same preset from being tried again. Increased default retry count to 500.
2025-10-27 19:20:02 +01:00
3e67f6e477 Update SOIL2 to v1.31 to fix issue with GL_OES_texture_npot
Resolves issue #910

Fail over to glGetString if SOIL_GL_GetProcAddress fails

Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-10-27 19:06:27 +01:00
1050d61845 Resolves #912 - Seg fault caused by m_sprites modification during iteration 2025-10-27 19:04:36 +01:00
f76e3e2a4d Update README.md 2025-10-27 19:03:00 +01:00
6639a8252a Update CMake build instructions
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-10-27 11:22:57 +01:00
f92f9a54b8 Update discord invite link 2025-10-26 15:33:11 -07:00
b3e7e8cdba Convert HLSL array subscript operator operand to int 2025-09-11 10:56:36 +02:00
d89c09ef5f Update projectm-eval submodule to v1.0.3 2025-08-04 19:41:55 +02:00
39c3ddc43c Redirect link to the latest MegaPack presets.
The community presets link is very old. Here's why:
- It contains .mil or other extension files, which is not a preset extension.
- Some of the presets are required some textures, which these aren't included and it's missing.

With my latest MegaPack, all of the presets are messy-free (no extension clutter), hardly patch fixed and included textures for use in presets.
2025-07-30 12:49:16 +03:00
0d784d9054 Update links to development releases in README.md 2025-06-10 21:11:58 +02:00
c94063bcb5 Fix Emscripten build check workflow 2025-04-30 08:34:49 +02:00
b742bc0082 Add API header compile tests for C
This will enable any future changes to the header to be tested. These additional build checks are only executed if BUILD_TESTING is enabled (e.g. in our automated build checks) to speed up release builds.
2025-03-24 10:00:24 +01:00
3a79ff4ff2 Fix playlist API header includes
Most playlist headers did not compile in pure C, as types like bool and size_t are used in calls. Added the proper includes as needed to make each header compile if included standalone.
2025-03-24 09:32:33 +01:00
0227b7a61d Issue #872: Fix float overflow in plasma transition shader 2025-02-28 11:37:39 +01:00
5a31295172 Let the static playlist library depend on the static symbols of the projectM library 2025-02-27 17:16:11 +01:00
fa67d837a5 Add user sprite functions to C API. 2025-02-27 16:57:03 +01:00
631573a4f0 Add user sprite proxy functions to ProjectM class. 2025-02-27 15:55:14 +01:00
9266716ef6 Implement user sprite manager and factory 2025-02-27 15:55:14 +01:00
760a4c9c95 Add Milkdrop user sprites 2025-02-27 15:55:14 +01:00
f0bad56ca1 Treat keys in FileParser case-insensitively
Presets and user sprites could use any casing for the keys, so we should also behave properly.
2025-02-27 15:55:14 +01:00
86164bece1 Remove misleading ToDo comments for title and sprite drawing. 2025-02-27 15:55:14 +01:00
5eb037efc1 Make shader resource file generation reusable 2025-02-27 15:55:14 +01:00
fbdb18b355 Move FileParser to main directory.
Makes it easier to reuse for loading sprites.
2025-02-27 15:55:13 +01:00
1ed2967e35 Add transition/blending progress to render context 2025-02-27 15:55:13 +01:00
458a63d8a5 Cache compiled static preset shaders 2025-02-27 15:55:13 +01:00
a2e9a91651 Add a global shader cache 2025-02-27 15:55:07 +01:00
1b7c7c844c Fix ninja package name in BUILDING.md
Debian and Ubuntu package the Ninja build system as `ninja-build` not `ninja`.
2025-01-04 19:36:41 +00:00
9f47262a18 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:49:16 +01:00
a77df53bc7 hlslparser: Add missing "faceforward" HLSL intrinsic. 2024-12-16 17:43:18 +01:00
e7e77baa96 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:43:14 +01:00
e90dc28e35 Improve playlist documentation regarding callbacks.
Doxygen documentation now mentions that the playlist library will set the preset switch callbacks in projectM and needs them to function properly. Added hints on how to restore functionality if needed.
2024-12-09 14:29:18 +01:00
3eaa733b8b Added the version since each API call is available to Doxygen comments. 2024-12-09 14:29:16 +01:00
7f48e6c3c3 Updated copyright dates and AUTHORS.txt 2024-12-09 13:33:43 +01:00
9aa18cd985 Bump dawidd6/action-download-artifact from 2 to 6 in /.github/workflows
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 2 to 6.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v2...v6)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 09:20:19 +01:00