Commit Graph

2744 Commits

Author SHA1 Message Date
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
f2a0277ddd Fix texture loading if casing mismatches filename
Always use lower-case unqualified names to find and cache the actual textures.
2024-10-07 12:08:44 +02:00
f6ff7943c1 Add "refract()" intrinsic support to hlslparser 2024-08-26 09:53:05 +02:00
1b8004f714 Improve vcpkg manifest, use features for build options.
Now pulling in the required vcpkg dependencies only if a certain build feature is requested.
2024-08-07 18:31:32 +02:00
1711511f36 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:04:45 +02:00
4e9040f338 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:25:28 +02:00
f94f99d888 Make preset transitions use TimeKeeper instead of the system clock 2024-06-09 13:04:01 +02:00
2914d85ec3 Add API functions to set and retrieve frame times
Setting a custom frame time will result in stable animation speeds if projectM does not render at real-time speeds, e.g. while encoding a video from an audio file as fast as possible.
2024-06-09 12:51:35 +02:00
bd2b1ba9f4 Add API function to enable rendering to custom FBO IDs 2024-06-08 17:22:23 +02:00
b0cdf4de7b Add optional FBO ID parameter to render function.
This will allow external apps to pass in any custom FBO to render to. Defaults to 0, keeping previous behavior if not given.
2024-06-08 17:22:23 +02:00
91f329111f 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.
2024-05-13 17:55:26 +02:00
f60cd86ab6 Add option to use system projectm-eval (used in vcpkg) 2024-05-03 15:09:33 -05:00
6e817a179f New bug report and feature request templates 2024-04-28 17:38:11 +02:00
ac77498318 nobody reads comments anyway 2024-04-18 23:49:31 +02:00
99259dc98a swaps misordered label values 2024-04-18 23:49:31 +02:00
e538ccc615 Fix bug that prevents composite shader from being loaded
Happens in the rare cases if a preset has no warp shader
2024-03-19 23:14:10 +01:00
436fd5221b Fix include dirs in SOIL2 library 2024-03-19 23:14:09 +01:00
bc9937f34e Fix #if USE_GLES to #ifdef in SDL test UI 2024-03-19 23:14:09 +01:00