Commit Graph

2707 Commits

Author SHA1 Message Date
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
fa3a15c4cb 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-19 23:14:09 +01:00
50c0f02b6d Add pthreads option for emscripten 2024-03-19 23:14:04 +01:00
50c64d4e65 Update README.md
Mention rust frontend
2024-03-09 08:27:06 -08:00
b658cccf05 Release version 4.1 v4.1.0 2024-03-02 15:36:02 +01:00
03b4c071a2 Properly cast argument types when adding abs to shader functions 2024-02-28 17:03:37 +01:00
59efc54fe5 Fix emscripten options in CMakeLists.txt 2024-02-25 22:28:22 -06:00
861c36e41b Scale and smooth samples for non-custom waveforms 2024-02-21 16:12:31 +01:00
07c9a8a660 Re-add native matrix multiplication 2024-02-21 14:36:35 +01:00
3aa48a3f99 Modify NaN propagation for multiplication 2024-02-21 14:36:35 +01:00
0c27e8164a Mimic Milkdrop code when handling RGBA values outside [0.0, 1.0] 2024-02-21 14:12:33 +01:00
db89e54109 Add mat3x4 and mat4x3 indexing functions 2024-02-21 14:12:12 +01:00
04be6f40d0 Fix pow domain on some drivers 2024-02-21 14:11:37 +01:00
7d97baffcd Match math function behavior to DX9 implementation 2024-02-21 14:11:37 +01:00
d6b6446ac9 Make sure easter egg value is >0.
Gaussian distribution requires the sigma value to be >0. If the value is too small, we just use the default 1.0 value.
2024-02-15 18:11:46 +01:00
1477664182 Move noise texture creation into MilkdropNoise class.
No need to create an instance of the class as all generators are static. Use std::vector instead of C-style pointers as pixel buffer.
2024-02-15 18:11:39 +01:00
c3830926b3 Fix image URLs in README.md 2024-02-13 08:57:44 +01:00
2eb1e41f5f Pre-allocate vertex buffers for warp/comp meshes and borders 2024-02-12 16:39:18 +01:00
fcafa568cd Improve performance with vertex buffer updates
In wave/shape drawing code, we now preallocate the vertex buffer once for the maximum number of sides and only update the existing buffer instead of reallocating it over and over again. Trades a few KB of additional RAM for a good amount of drawing performance.

In the motion vector grid code, we only reallocate the buffer if we draw more vertices than in the previous draw call.

Also changed the drawing hint to GL_STREAM_DRAW, which is slightly better suited for this kind of usage (update once, draw once, repeat).

These changes should hopefully improve performance, especially when large numbers of custom shapes are drawn.
2024-02-12 15:14:16 +01:00
f22cc42a61 Added requested revision 2024-02-11 22:40:11 +01:00
0067e82f7e Fix various typos
Found via `codespell -q 3 -S "./vendor" -L ist`
2024-02-11 22:40:11 +01:00
d82c031671 Use PRJM_EVAL_F in ShapePerFrameContext 2024-02-09 20:30:42 -06:00
8897b9fe39 Only parse headers with doxygen 2024-02-09 19:15:38 -06:00
39c6bc98da Tell sphinx about our export identifiers so it can parse function signatures 2024-02-09 16:55:16 -06:00
82f2b58205 Use exhale to better organize the C++ documentation 2024-02-09 16:37:09 -06:00
79973a1e07 Initial import of sphinx project 2024-02-09 16:37:09 -06:00
12db8d9b94 Fix buffer overrun in WaveformMath
32 excess samples were read from the preset state in waveform modes. Didn't have any noticeable impact, but we should clearly not read over the end of an array.
2024-02-09 21:37:58 +01:00
5c0d61cff7 Use renderContext for preset state time, frame, fps, progress 2024-02-06 16:41:31 -06:00
bd7d5574a2 Keep active preset running if loading fails.
Also don't cancel any transition in progress etc., so if the app retries with a different preset, we only smoothly transition to the new, working one.
2024-02-06 15:11:52 +01:00
4eefc2c05c Remember last playlist navigation direction in case a preset fails to load.
The playlist wrapper will now continue to repeat the directional navigation command issued in the original API call.
2024-02-06 15:11:37 +01:00
c5ecad05db Format cleanup 2024-02-06 07:58:32 -06:00
0ea5bba3d7 WaveformAligner test fixes 2024-02-06 07:58:32 -06:00
a57885dc3a Add WaveformAligner test 2024-02-06 07:58:32 -06:00
305f78f177 Split WaveformAligner up into multiple testable methods 2024-02-06 07:58:32 -06:00
bd592bdb2e Rename WaveformAligner variables to be clearer, add comments 2024-02-06 07:58:32 -06:00
7c425f7469 WaveformAligner type refactor 2024-02-06 07:58:32 -06:00
0beb7a2d09 Relocated dll's to PROJECTM_BIN_DIR on Windows 2024-02-02 10:21:25 -06:00
60e5607877 Fixed a bug in TextureManager, failed to load textures if prefixes (fw_...) were used. 2024-02-02 15:08:05 +01:00