Commit Graph

2762 Commits

Author SHA1 Message Date
e136655571 fix: ensure all Init() calls invoke base class methods for proper init 2025-04-17 13:49:52 -07:00
5cdddf9aef refactor: unhide base Init() in derived classes to fix virtual warning 2025-04-17 13:49:10 -07:00
dd58ff4228 refactor: add override specifiers to virtual functions for clarity and safety 2025-04-17 13:42:11 -07:00
2f80198805 fix: add missing include for OpenGLPresetTransition in ProjectM.cpp 2025-04-17 13:41:35 -07:00
542bfab26c fix: use global namespace for RenderItem base class in OpenGLRenderItem.hpp 2025-04-17 13:41:13 -07:00
c72e4014cc fix: change include to local path in OpenGLRenderItem.hpp for correct header resolution 2025-04-17 13:40:46 -07:00
8876cd5488 fix: update method declarations to match base class and resolve errors 2025-04-17 13:36:04 -07:00
6357e91e3d fix: remove 'override' from destructor and methods in OpenGLRenderItem.hpp 2025-04-17 09:42:31 -07:00
b18a5aab07 refactor: update destructor override and return type for Texture() 2025-04-17 09:42:11 -07:00
da05e7ef42 fix: change include to relative path in OpenGLCopyTexture.hpp 2025-04-17 09:41:33 -07:00
219cfe2c31 fix: add missing include for OpenGLCopyTexture in MilkdropPreset.cpp 2025-04-17 09:40:57 -07:00
1480cab5da fix: Resolve OpenGL initialization and header inclusion issues 2025-04-17 09:37:44 -07:00
915ea973b4 fix: resolve compilation errors in MilkdropPreset and UserSprites 2025-04-17 09:36:48 -07:00
18273e5354 fix: resolve OpenGL renderer initialization and texture creation errors 2025-04-17 09:35:56 -07:00
050966a221 The changes update the inheritance of several classes (PerPixelMesh, VideoEcho, and Waveform) to use OpenGLRenderItem instead of RenderItem, and include the correct header file. This fixes the build errors by:
1. Changing the base class to `OpenGLRenderItem` which contains the required `m_vaoID` and `m_vboID` members
2. Updating the includes to point to the new header location
3. Removing redundant `RenderItem::` prefixes since we inherit directly from `OpenGLRenderItem`
4. Cleaning up some formatting inconsistencies

The changes maintain all existing functionality while fixing the compilation errors related to missing OpenGL buffer IDs. The classes will now properly inherit the OpenGL-specific rendering functionality they require.
2025-04-17 09:34:53 -07:00
ee3873af76 refactor: use flip texture for preset output instead of framebuffer 2025-04-17 09:28:51 -07:00
5cdfc8f017 fix: Update render items to use OpenGL backend implementation 2025-04-17 09:27:09 -07:00
bc6533a204 fix: resolve namespace and include issues in OpenGL render items 2025-04-17 09:23:35 -07:00
f075c52614 fix: update OpenGL backend references in CustomShape 2025-04-17 09:22:21 -07:00
fb1454b60d refactor: add optional Init method to RenderItem base class 2025-04-17 09:21:47 -07:00
ef04f5b4f0 fix: update CustomShape to use OpenGL backend implementation 2025-04-17 09:20:57 -07:00
9db68e5d3c chore: update gitignore and vendor submodule status 2025-04-17 09:15:46 -07:00
4a25a0b538 refactor: move OpenGL transition rendering to backend implementation 2025-04-17 09:15:09 -07:00
e3192d0f7c refactor: move PresetTransition OpenGL code to backend 2025-04-17 09:14:12 -07:00
66474844b3 refactor: comment out OpenGL-specific code in PresetTransition 2025-04-17 09:12:38 -07:00
4fb83d45f1 fix: remove default parameter from CopyTexture::Draw targetTexture 2025-04-17 09:12:09 -07:00
4049231ec4 refactor: move OpenGL renderer code to backend directory 2025-04-17 09:11:00 -07:00
f3d6cca5ae doc 2025-04-04 21:50:59 -07: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