tangled
alpha
login
or
join now
altagos.dev
/
rayray
0
fork
atom
this repo has no description
0
fork
atom
overview
issues
pulls
pipelines
cleanup
altagos.dev
2 years ago
93ecd26d
46c921e9
+2
-32
1 changed file
expand all
collapse all
unified
split
src
rayray.zig
+2
-32
src/rayray.zig
···
47
47
self.allocator.destroy(self.thread_pool);
48
48
}
49
49
50
50
-
// TODO: Render in cubes not in rows
51
50
pub fn render(self: *Self) !zigimg.Image {
52
51
const s = spall.trace(@src(), "Render", .{});
53
52
defer s.end();
54
54
-
55
53
56
54
const chunk_height: usize = 25;
57
55
const chunk_width: usize = 25;
58
58
-
59
56
60
57
var rows: usize = @divTrunc(self.camera.image_height, chunk_height);
61
58
if (self.camera.image_height % rows != 0) {
62
59
rows += 1;
63
60
}
64
61
65
65
-
66
62
var cols: usize = @divTrunc(self.camera.image_width, chunk_width);
67
63
if (self.camera.image_width % cols != 0) {
68
64
cols += 1;
69
65
}
70
70
-
71
66
72
67
const num_chunks = cols * rows;
73
68
···
119
114
while (true) {
120
115
var done = true;
121
116
122
122
-
123
117
for (tasks) |*t| {
124
118
const task_done = t.done.load(.acquire);
125
125
-
126
119
127
120
if (task_done and !t.marked_as_done) {
128
121
t.marked_as_done = true;
129
122
node.completeOne();
130
130
-
131
131
-
} else if (!thead_done) {
132
132
-
// try self.camera.image.writeToFilePath("./out/out.png", .{ .png = .{} });
133
133
-
// node.context.refresh();
134
123
} else if (!task_done) {
135
124
done = false;
136
125
}
···
143
132
144
133
return self.camera.image;
145
134
}
146
146
-
}
135
135
+
};
147
136
148
137
pub fn renderThread(ctx: tracer.Context, task: *TaskTracker, id: usize) void {
149
149
-
spall.init_thread();
150
150
-
defer spall.deinit_thread();
151
151
-
152
152
-
// log.debug("Started Render Thread {}", .{row});
153
153
-
154
154
-
// const s = spall.trace(@src(), "Render Thread {}", .{row});
155
155
-
// defer s.end();
156
156
-
138
138
+
_ = id;
157
139
tracer.trace(ctx);
158
158
-
159
159
-
<<<<<<< HEAD
160
160
-
{
161
161
-
task.done.store(true, .release);
162
162
-
}
163
163
-
164
164
-
// log.info("Chunk {} rendered", .{id});
165
165
-
_ = id;
166
166
-
||||||| parent of 3cb11d6 (chunk based rendering on a thread pool)
167
167
-
done.store(true, .Release);
168
168
-
=======
169
140
task.done.store(true, .release);
170
170
-
>>>>>>> 3cb11d6 (chunk based rendering on a thread pool)
171
141
}