Commit Graph

2767 Commits

Author SHA1 Message Date
2fd65e8a8e Update issue template for general questions
Add a note pointing to the discussion boards instead of opening an issue.

Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-10-28 17:20:45 +01:00
394106bfd4 Add missing "distance" intrinsic to HLSLparser
Signed-off-by: Kai Blaschke <kai.blaschke@kb-dev.net>
2025-10-28 16:43:35 +01:00
890b78a985 Resolves #903: Flip V texture coordinates in sprite rendering to match MilkDrop orientation 2025-10-27 19:29:00 +01:00
765382738b Add Doxygen documentation, plus a few small fixes. 2025-10-27 19:29:00 +01:00
f8b5573d79 Wrap setting of blend mode/functions in a class. 2025-10-27 19:29:00 +01:00
076f5d9aa0 Remove RenderItem class 2025-10-27 19:29:00 +01:00
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