summaryrefslogtreecommitdiff
path: root/src/renderer/shadertoy.zig
AgeCommit message (Collapse)Author
2025-10-06fix custom-shader writergate breakageJeffrey C. Ollie
Fixes: #9060
2025-10-03Zig 0.15: zig build GTK exeMitchell Hashimoto
2025-10-03Zig 0.15: zig build test Mitchell Hashimoto
2025-06-22renderer: add cursor color to custom shader uniformsQwerasd
2025-06-22renderer: add custom shader cursor uniformsQwerasd
Based on / supersedes PR #6912, implements discussion #6901 Co-authored-by: Krone Corylus <ahustinkrone@gmail.com>
2025-06-21renderer: move custom shader uniforms out of frame stateQwerasd
These should not be independent per-frame, that makes the time calculations all sorts of jank. Also moves the uniforms struct layout in to `shadertoy.zig` and cleans up the handling in general somewhat.
2025-06-20renderer: big rework, graphics API abstraction layers, unified logicQwerasd
This commit is very large, representing about a month of work with many interdependent changes that don't separate cleanly in to atomic commits. The main change here is unifying the renderer logic to a single generic renderer, implemented on top of an abstraction layer over OpenGL/Metal. I'll write a more complete summary of the changes in the description of the PR.
2025-05-07core: fixup callconv(.C) -> callconv(.c)Jeffrey C. Ollie
https://ziglang.org/download/0.14.0/release-notes.html#Calling-Convention-Enhancements-and-setAlignStack-Replaced
2024-09-17config: move optional path parsing into RepeatablePathGregory Anders
This commit refactors RepeatablePath to contain a list of tagged unions containing "optional" and "required" variants. Both variants have a null terminated file path as their payload, but the tag dictates whether the path must exist or not. This implemenation is used to force consumers to handle the optional vs. required distinction. This also moves the parsing of optional file paths into RepeatablePath's parseCLI function. This allows the code to be better unit tested. Since RepeatablePath no longer contains a simple list of RepeatableStrings, many other of its methods needed to be reimplemented as well. Because all of this functionality is built into the RepeatablePath type, other config options which also use RepeatablePath gain the ability to specify optional paths as well. Right now this is only the "custom-shaders" option. The code paths in the renderer to load shader files has been updated accordingly. In the original optional config file parsing, the leading ? character was removed when paths were expanded. Thus, when config files were actually loaded recursively, they appeared to be regular (required) config files and an error occurred if the file did not exist. **This issue was not found during testing because the presence of the "theme" option masks the error**. I am not sure why the presence of "theme" does this, I did not dig into that. Now because the "optional" or "required" state of each path is tracked in the enum tag the "optional" status of the path is preserved after being expanded to an absolute path. Finally, this commit fixes a bug where missing "config-file" files were not included in the +show-config command (i.e. if a user had `config-file = foo.conf` and `foo.conf` did not exist, then `ghostty +show-config` would only display `config-file =`). This bug applied to `custom-shaders` too, where it has also been fixed.
2024-08-05chore: clean up typosƁukasz Niemier
2023-11-17quiet testsMitchell Hashimoto
2023-11-17renderer/opengl: extract cell program state to dedicated structMitchell Hashimoto
2023-11-17renderer/opengl: wipMitchell Hashimoto
2023-11-17renderer/opengl: move opengl API to pkg/openglMitchell Hashimoto
2023-11-17renderer: spirv binary must be aligned to u32Mitchell Hashimoto
2023-11-17renderer: log shadertoy compile errorsMitchell Hashimoto
2023-11-17renderer/metal: load custom shadersMitchell Hashimoto
2023-11-17renderer: turn assertion into errorMitchell Hashimoto
2023-11-17renderer: shadertoy convert to MSLMitchell Hashimoto
2023-11-17renderer: shadertoy functionsMitchell Hashimoto