aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authors-ol <s+removethis@s-ol.nu>2021-11-11 11:11:58 +0000
committers-ol <s+removethis@s-ol.nu>2021-11-11 11:11:58 +0000
commitf78b0c2825d456d3f083b43e9192893cf1429f6a (patch)
tree1660c15861b183ed6fff9ee4c0c0ef19ffdf31bd /src
parentbetter error messages (diff)
downloadglsl-view-f78b0c2825d456d3f083b43e9192893cf1429f6a.tar.gz
glsl-view-f78b0c2825d456d3f083b43e9192893cf1429f6a.zip
better pragma error messages
Diffstat (limited to 'src')
-rw-r--r--src/main.zig14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/main.zig b/src/main.zig
index 47e72f8..cf85732 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -104,7 +104,7 @@ pub fn main() !void {
const shader_file = try fs.cwd().openFile(config.fragment, .{});
var last_stat = try shader_file.stat();
- try reloadShader(&main_program, shader_file, config.fragment, last_stat.size);
+ try reloadShader(&main_program, config.fragment, last_stat.size);
var cache = gl.UniformCache.init(std.heap.c_allocator, &main_program);
defer cache.deinit();
@@ -167,8 +167,11 @@ fn loadFile(writer: anytype, dir: []const u8, filename: []const u8) !void {
defer file.close();
var reader = file.reader();
+ var line_number: u32 = 0;
var buf: [1024]u8 = undefined;
while (try reader.readUntilDelimiterOrEof(&buf, '\n')) |line| {
+ line_number += 1;
+
if (std.mem.startsWith(u8, line, "#pragma ")) {
var parts = std.mem.split(line, " ");
_ = parts.next();
@@ -177,7 +180,8 @@ fn loadFile(writer: anytype, dir: []const u8, filename: []const u8) !void {
if (std.mem.eql(u8, pragma, "include")) {
var include_path = parts.next().?;
if (include_path[0] != '"' or include_path[include_path.len - 1] != '"') {
- std.debug.warn("Invalid #pragma directive '{}'\n", .{line});
+ std.debug.warn("{}:{}: Invalid #pragma include\n", .{file_path, line_number});
+ std.debug.warn("{}:{}: {}\n", .{line});
continue;
}
include_path = include_path[1 .. include_path.len - 1];
@@ -186,7 +190,8 @@ fn loadFile(writer: anytype, dir: []const u8, filename: []const u8) !void {
continue;
} else {
- std.debug.warn("Unknown #pragma directive '{}'\n", .{pragma});
+ std.debug.warn("{}:{}: Unknown #pragma directive '{}'\n", .{file_path, line_number, pragma});
+ std.debug.warn("{}:{}: {}\n", .{line});
}
}
@@ -195,9 +200,8 @@ fn loadFile(writer: anytype, dir: []const u8, filename: []const u8) !void {
}
}
-fn reloadShader(current: *gl.ShaderProgram, frag_file: fs.File, frag_filename: []const u8, size: u64) !void {
+fn reloadShader(current: *gl.ShaderProgram, frag_filename: []const u8, size: u64) !void {
var buffer = try std.ArrayList(u8).initCapacity(c_allocator, @intCast(usize, size));
- var writer = buffer.writer();
errdefer buffer.deinit();
try loadFile(buffer.writer(), "", frag_filename);