e2617da5b9
Fix 1px of warped main image shining through the composite mesh at higher resolutions.
...
Now we don't add the half texel offset to the vertex coordinates, but to the calculated u/v, which will prevent the texture wrapping (happens mostly with "nearest" interpolation lookups) mentioned in Milkdrop's code from happening, but make the mesh exactly fill the screen.
2023-11-16 15:40:57 +01:00
f9bc83d636
Flip input to blur textures once, but not in subsequent passes.
2023-11-14 16:11:13 +01:00
9a73a883df
Use our own Pi constant, as the Windows cmath header doesn't have the definition.
2023-11-11 17:41:00 +01:00
0a0fd082cf
Update projectm-eval submodule commit
2023-11-11 17:40:57 +01:00
5e54983e6d
Replace temp framebuffer blit with a final draw call in ProjectM class
...
This avoids two fullscreen draw calls during transitions, and should also be slightly faster than using glBlitFramebuffer().
As with all drawing operations, we currently don't really care about the target framebuffer size or aspect ratio and just draw a quad over the whole viewport.
2023-11-07 23:45:59 +01:00
aaf2f7485c
Initialize new presets with the last frame of the previous preset.
...
This makes hard transitions a bit "smoother", as they won't always start from a black screen. Not really noticeable with fast presets, but some slow-warping ones will now gently dissolve the previous image.
2023-11-04 18:59:30 +01:00
29cc30a6a8
Generalize FlipTexture class as "CopyTexture" with optional x/y flip.
...
Also removed the use of MilkdropPreset's PresetState class and add a class-specific copy shader.
2023-11-04 18:59:30 +01:00
e99ae49c49
Added a few more transition effects.
2023-11-02 23:14:31 +01:00
c9b0ce0c2c
Render random transitions.
...
The TimeKeeper-based "smoothing" code still needs to be cleaned up, same with the threading stuff which never really worked.
2023-11-01 23:16:30 +01:00
1ba6b1a25f
Make sweep transition compile.
2023-11-01 23:14:10 +01:00
3b4149ef89
Fix a few issues in the transition effect renderer.
2023-11-01 23:13:45 +01:00
a179c0a986
Added transition shader manager for built-in effects.
2023-11-01 23:07:26 +01:00
cdb19bc0e8
Fix compiler warning: used struct instead of class.
2023-11-01 22:08:36 +01:00
b2dad28fa0
Pack transition shaders into a resource header.
...
Also added a "sweep" transition.
2023-11-01 22:07:02 +01:00
9191ff149e
Add PresetTransition class to render the transition quad/shader.
...
Also added the required shader files. Still need to pack them as resources into the library.
2023-10-24 20:38:04 +02:00
37ec15d13b
Add uniform setters for int[2..4] vectors in Shader class.
2023-10-24 19:31:42 +02:00
42966cdb7b
Add method in Preset class to retrieve the current output texture.
2023-10-24 19:30:46 +02:00
2dfbb595cc
Move MilkdropNoise class to Renderer directory.
...
It's only referenced from within TextureManager, plus we can reuse the noise generator for other things.
2023-10-24 16:41:30 +02:00
7b8af19fc4
Deleted the now unused Renderer class.
2023-10-24 16:39:37 +02:00
6645b9da00
Move shading language version parser to Shader class.
...
Also cleaned up the code a bit, the version string format is well-defined by the standard - we just have to cut off anything after the space if there is any.
2023-10-20 22:03:45 +02:00
8461bb9586
Remove a few compiler warnings due to type conversions.
...
Many of those internal types need a cleanup later to consolidate them a bit more.
2023-10-14 13:53:41 +02:00
ceca33a088
Don't reset presets after changing the mesh size.
...
The warp mesh is now always resized/recalculated dynamically when a frame is drawn, nothing needs to be reloaded anymore.
2023-10-14 13:52:35 +02:00
f7b503efc4
Constrain per-pixel mesh size from 8x8 to 300x300 and only allow multiples of two.
2023-10-14 13:37:13 +02:00
2f93d3f41b
Reimplement random texture selection.
...
Use the same basic logic as Milkdrop. Also automatically declare a shorthand "texsize_randXX" uniform for prefixed random texture names as preset authors expect.
2023-10-06 22:11:09 +02:00
116de5733c
Fix upside-down and vertical effect misalignment issues.
...
If anyone else can come up with a solution that doesn't involve up to three vertical flips, please implement.
2023-10-06 22:11:02 +02:00
483b32d546
Set library base name once in top-level CMakeLists.txt.
...
Will avoid making errors in future versions. Include dirs still are hard-coded, as they partially exist as paths in the source tree.
2023-10-06 12:51:22 +02:00
ce56c3ed09
Fix filenames of static libraries.
...
These were missing the "-4" suffix, and the static playlist library also used underscores instead of dashes.
2023-10-06 12:41:43 +02:00
70132f18e6
Updated build instructions.
2023-09-19 18:38:43 +02:00
b88f96b780
Fix CMake scripts, so they can be used via add_subdirectory().
2023-09-19 18:38:43 +02:00
70c29af884
Added build check script for Android
2023-09-19 18:38:43 +02:00
cadcdda6b4
Add output for which GL implementation we build and always use GLES on Android
2023-09-19 18:38:43 +02:00
5fe105cb31
Don't search for desktop GL libraries if any GLES component is requested
2023-09-19 18:38:43 +02:00
c93e80bcc4
Updated build status badges in README.md
2023-09-19 17:49:51 +02:00
c08de98a7d
Properly initialize u/v texture size for motion vectors.
2023-09-11 10:19:49 +02:00
48b8d6a0aa
Restore framebuffer bindings after modifying texture attachments.
2023-09-11 10:19:49 +02:00
c266599933
Instead of color masking, attach/detach the motion vector u/v texture.
...
Only GLES 3.2 supports glColorMaski, which would exclude any platforms only supporting GLES 3.0 or 3.1, so we simply change the color attachment accordingly. This change also improves VRAM usage, as now there's only a single u/v texture used for both framebuffers as required.
2023-09-11 10:19:49 +02:00
561ea8cf8b
Added methods to Framebuffer class to add externally created texture attachments and remove existing ones.
2023-09-11 10:19:49 +02:00
b05a8cc812
GLES: Use GL_BACK instead of GL_COLOR_ATTACHMENT0 with default framebuffer.
2023-09-11 10:19:49 +02:00
494718d2fa
Added missing float precision specifiers in vertex/fragment shaders.
2023-09-11 10:19:49 +02:00
b7572ea936
Use glDrawBuffers instead of glDrawBuffer with GLES.
2023-09-11 10:19:49 +02:00
1c93302b7d
Removed a few unused files.
2023-09-11 10:19:49 +02:00
a294b8a374
Fix two Emscripten/GLES compile issues.
2023-09-11 10:19:49 +02:00
b07163dd51
Check active preset after the preset switch event, as this might have failed.
...
Another option would be skipping the rendering if there's no active preset instead of displaying the idle preset.
2023-09-11 10:19:48 +02:00
e9438ee0f6
Deleted lots of unused files and code.
2023-09-11 10:19:48 +02:00
486c86cb7c
Filename fix in comment.
2023-09-11 10:19:48 +02:00
e84acbca92
Renamed simple textured/untextured shaders to be more readable.
2023-09-11 10:19:48 +02:00
879c6c7111
Split StaticGlShaders class into shader files and code templates, removed ShaderEngine class.
...
Milkdrop shaders are now read from .vert/.frag and .inc files, then copied into a generated code file by CMake. Makes editing easier, as many IDEs can properly syntax-highlight the shader code.
The class was also moved into MilkdropPreset, as it's the only preset type which will ever make use of those shaders.
Deleted the now fully "dissolved" ShaderEngine class.
2023-09-11 10:19:48 +02:00
d2780c5db4
Check out submodules (for projectM-eval) in GitHub Actions workflows.
2023-09-11 10:19:48 +02:00
ef62ddf480
Add omptl to Renderer linked library list.
2023-09-11 10:19:48 +02:00
feb7a3330a
A few Windows build fixes
2023-09-11 10:19:48 +02:00