summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 20:24:56 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:17 -0300
commit7d2178022e721f3eac023f3e3be56c1bb1e49927 (patch)
tree9503e787f4797b121806d22d588f10fecd24a72c
parent97679fee286cc0fd3104f138e9fa14722c614f7f (diff)
downloadpardes-7d2178022e721f3eac023f3e3be56c1bb1e49927.tar.gz
pardes-7d2178022e721f3eac023f3e3be56c1bb1e49927.zip
shader_build.zig is ShaderBuild.zig: a file that is a struct (its fields are the post chain's builds) takes a type's name
The naming the split agreed on: a file with fields is a type, TitleCase, as Messages.zig and Layer.zig are. Its importers bind it as ShaderBuild; comments and docs/render-pipeline.md name the new file. No behaviour changes. Co-Authored-By: Claude Opus 5.5 <[email protected]>
-rw-r--r--build.zig2
-rw-r--r--docs/render-pipeline.md2
-rw-r--r--src/ShaderBuild.zig (renamed from src/shader_build.zig)0
-rw-r--r--src/detached/server.zig4
-rw-r--r--src/detached/wire.zig10
-rw-r--r--src/file_watch.zig2
-rw-r--r--src/gui/Post.zig12
-rw-r--r--src/gui/gui.zig8
-rw-r--r--src/main.zig2
9 files changed, 21 insertions, 21 deletions
diff --git a/build.zig b/build.zig
index e549a53e..a69327ae 100644
--- a/build.zig
+++ b/build.zig
@@ -1083,7 +1083,7 @@ pub fn build(b: *std.Build) void {
}
// A detached session compiles its attached GUIs' Shadertoy files
- // (shader_build.zig), whichever shell it was built for.
+ // (ShaderBuild.zig), whichever shell it was built for.
if (gui_shell_mod != root_mod)
root_mod.addAnonymousImport("post-prefix.glsl", .{ .root_source_file = b.path("shaders/post/prefix.glsl") });
diff --git a/docs/render-pipeline.md b/docs/render-pipeline.md
index f39504c2..6e1cd455 100644
--- a/docs/render-pipeline.md
+++ b/docs/render-pipeline.md
@@ -505,7 +505,7 @@ Mirror ghostty 1.3.2 (`zig-pkg/ghostty-*/src/renderer/shadertoy.zig`,
(file_watch shader slots): a change there has each file read and hashed,
and one whose bytes moved compiles again; the same bytes (good or bad)
compile nothing and say nothing twice. The process that holds the core
- compiles (shader_build.zig): a local GUI, or a detached session, which
+ compiles (ShaderBuild.zig): a local GUI, or a detached session, which
sends its attached GUIs the chain with each file's SPIR-V (wire `post`,
on attach and on every change), so an attached GUI runs the same passes,
levels and ShaderAnimation as a local one and still reads no disk and runs
diff --git a/src/shader_build.zig b/src/ShaderBuild.zig
index c2610fd7..c2610fd7 100644
--- a/src/shader_build.zig
+++ b/src/ShaderBuild.zig
diff --git a/src/detached/server.zig b/src/detached/server.zig
index b536e4a7..de26db13 100644
--- a/src/detached/server.zig
+++ b/src/detached/server.zig
@@ -11,7 +11,7 @@ const host_io = @import("../host_io.zig");
const selection_pipe = @import("../selection_pipe.zig");
const file_watch = @import("../file_watch.zig");
-const shader_build = @import("../shader_build.zig");
+const ShaderBuild = @import("../ShaderBuild.zig");
const ninep_io = @import("../9p_io.zig");
@@ -177,7 +177,7 @@ pub const Session = struct {
ninep_wake: std.atomic.Value(bool) = .init(false),
watches: file_watch.Table = @splat(null),
/// The post chain's files, compiled here for the GUIs attached.
- shaders: shader_build = .{},
+ shaders: ShaderBuild = .{},
check_files: bool = false,
in_loop: bool = false,
greet_deadline_ms: u32 = greet_deadline_default_ms,
diff --git a/src/detached/wire.zig b/src/detached/wire.zig
index 15d3641c..051e9317 100644
--- a/src/detached/wire.zig
+++ b/src/detached/wire.zig
@@ -3,7 +3,7 @@
const std = @import("std");
const pardes = @import("../pardes.zig");
const limits = @import("../memory.zig").limits;
-const shader_build = @import("../shader_build.zig");
+const ShaderBuild = @import("../ShaderBuild.zig");
const Scene = pardes.config.Runtime.Scene;
const ShaderAnimation = pardes.config.Runtime.ShaderAnimation;
@@ -364,15 +364,15 @@ pub const ServerMsg = union(enum) {
/// The session's post chain, as a GUI attached to it draws it: its passes in
/// order, each a bundled scene at its level or a Shadertoy file's SPIR-V
-/// (compiled by the session, shader_build.zig: a frontend reads no disk and
+/// (compiled by the session, ShaderBuild.zig: a frontend reads no disk and
/// runs no program), and when it animates on its own. Slices borrow the
/// payload.
pub const Post = struct {
animation: ShaderAnimation = .on,
- passes: [shader_build.max]shader_build.Pass = @splat(.{}),
+ passes: [ShaderBuild.max]ShaderBuild.Pass = @splat(.{}),
len: u8 = 0,
- pub fn list(p: *const Post) []const shader_build.Pass {
+ pub fn list(p: *const Post) []const ShaderBuild.Pass {
return p.passes[0..p.len];
}
};
@@ -1275,7 +1275,7 @@ pub fn decodeServer(tag: u8, payload: []const u8) Error!ServerMsg {
.post => blk: {
var p: Post = .{ .animation = try r.getTag(ShaderAnimation) };
p.len = try r.getByte();
- if (p.len > shader_build.max) return error.Overlong;
+ if (p.len > ShaderBuild.max) return error.Overlong;
for (p.passes[0..p.len]) |*pass| {
const kind = try r.getByte();
pass.* = .{
diff --git a/src/file_watch.zig b/src/file_watch.zig
index 148bc836..6c746e74 100644
--- a/src/file_watch.zig
+++ b/src/file_watch.zig
@@ -70,7 +70,7 @@ pub const Watch = struct {
/// Sharing the table also shares directory descriptors correctly when a user
/// happens to open that .zon as an ordinary document.
pub const theme_slot = pardes.MAX_PANES;
-/// After it, one slot a post chain file (shader_build.zig): marked only so
+/// After it, one slot a post chain file (ShaderBuild.zig): marked only so
/// a save there wakes the host, which has the files read again; no
/// generation of theirs is kept here.
pub const shader_slot = theme_slot + 1;
diff --git a/src/gui/Post.zig b/src/gui/Post.zig
index 602b2790..fc256135 100644
--- a/src/gui/Post.zig
+++ b/src/gui/Post.zig
@@ -2,7 +2,7 @@
//! finished frame, each reading the one before it (the frame first) and the
//! last one writing the window. A pass is the bundled Crt (shaders/post/,
//! compiled with the build) or a user's file (Shader <path>), whose SPIR-V
-//! comes from shader_build.zig: compiled by the process that holds the core,
+//! comes from ShaderBuild.zig: compiled by the process that holds the core,
//! this one or the detached session this GUI is attached to. A file whose
//! compile fails keeps its last good pipeline.
//!
@@ -24,7 +24,7 @@ const Pipeline = c.SDL_GPUGraphicsPipeline;
pub const max = Chain.max;
const prefix = @embedFile("post-prefix.glsl");
-const Built = @import("../shader_build.zig").Pass;
+const Built = @import("../ShaderBuild.zig").Pass;
const vert_spv = @embedFile("post.vert.spv");
const bundled_spv = std.EnumArray(Scene, []const u8).init(.{
.crt = @embedFile("post-crt.frag.spv"),
@@ -92,9 +92,9 @@ pub const Pass = struct {
/// A user's file, owned; empty for a bundled pass.
path: []u8 = &.{},
pipeline: ?*Pipeline = null,
- /// The SPIR-V revision `pipeline` was made from (shader_build.Pass).
+ /// The SPIR-V revision `pipeline` was made from (ShaderBuild.Pass).
revision: u32 = 0,
- /// It moves on its own (shader_build.Pass).
+ /// It moves on its own (ShaderBuild.Pass).
animated: bool = false,
};
@@ -125,7 +125,7 @@ bloom_up: ?*Pipeline = null,
started_ns: ?u64 = null,
last_ns: u64 = 0,
-/// Brings the passes to the chain a shell was given (shader_build.zig: a
+/// Brings the passes to the chain a shell was given (ShaderBuild.zig: a
/// local core's, or an attached session's over the wire), whose `key` moves
/// whenever the chain or a file's SPIR-V does. A file whose SPIR-V has not
/// moved keeps its pipeline; one the GPU refuses keeps its last, and is said
@@ -203,7 +203,7 @@ pub fn ready(post: *const Post) bool {
}
/// The chain redraws on its own (level A) as ShaderAnimation says.
-/// Only a pass that moves on its own (shader_build.Pass.animated) asks for
+/// Only a pass that moves on its own (ShaderBuild.Pass.animated) asks for
/// frames while idle: a still one (Bloom, Vignette, Grain, a file that reads
/// no clock) is drawn again only with a frame of the core's.
pub fn animating(post: *const Post, mode: pardes.config.Runtime.ShaderAnimation) bool {
diff --git a/src/gui/gui.zig b/src/gui/gui.zig
index b34b314d..df565b94 100644
--- a/src/gui/gui.zig
+++ b/src/gui/gui.zig
@@ -11,7 +11,7 @@ const config = @import("../config.zig");
const look = @import("../look.zig");
const message = pardes.Messages.Message;
const file_watch = @import("../file_watch.zig");
-const shader_build = @import("../shader_build.zig");
+const ShaderBuild = @import("../ShaderBuild.zig");
const deck = @import("deck.zig");
const Post = @import("Post.zig");
const pet = @import("pet.zig");
@@ -4016,7 +4016,7 @@ const Shell = struct {
inotify_fd: c_int,
watches: *file_watch.Table,
/// The post chain's files as SPIR-V.
- shaders: shader_build = .{},
+ shaders: ShaderBuild = .{},
threads_ok: bool = false,
test_mode: bool = false,
feed: StdinFeed = .{},
@@ -4240,7 +4240,7 @@ const Shell = struct {
}
};
-/// A post chain compile is done (shader_build.zig): the loop's SDL wait ends.
+/// A post chain compile is done (ShaderBuild.zig): the loop's SDL wait ends.
fn wakeSdl(_: ?*anyopaque) void {
var event = std.mem.zeroes(c.SDL_Event);
event.type = c.SDL_EVENT_USER;
@@ -4391,7 +4391,7 @@ fn pollFrame(ctx: ?*anyopaque) void {
stepScroll(g, core, s.gpa);
_ = s.shaders.sync(s.gpa, s.io, core, s.inotify_fd, s.watches, .{ .call = wakeSdl });
{
- var passes: [Post.max]shader_build.Pass = undefined;
+ var passes: [Post.max]ShaderBuild.Pass = undefined;
g.post.sync(s.gpa, g.device, g.swapchain_format, s.shaders.view(&core.settings.post, &passes), s.shaders.revision, core);
}
if (s.test_mode) writeTestStatus(g, core, s.presented);
diff --git a/src/main.zig b/src/main.zig
index ab6f1527..efc24a11 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -524,7 +524,7 @@ test {
_ = @import("locations_cache.zig");
_ = @import("fs.zig");
_ = @import("detached/wire.zig");
- _ = @import("shader_build.zig");
+ _ = @import("ShaderBuild.zig");
_ = @import("detached/server.zig");
_ = @import("detached/client.zig");
_ = @import("9p_io.zig");