Compare commits

..

11 Commits

Author SHA1 Message Date
5b2b64a9de fix: restore import for glfw w/ opengl3 backend
rebase unalived that specific line. Whoops
2023-03-26 23:04:30 -05:00
1c6205769f feat: prefer SDL.h instead of SDL/SDL.h on all supported platforms 2023-03-26 23:03:32 -05:00
99d138d5e8 chore: explicitly link SDL2
TODO: What happens on Windows? macOS?
2023-03-26 23:03:32 -05:00
5ad078e5d6 fix: vcpkg stores SDL.h under SDL2 folder
macOS and Linux seem to not, so in order to get CI working again I
should make use of the preprocessor.

FIXME: I think this makes vcpkg a **hard** requirement which perhaps
isn't ideal if I want ZBA to be as easy to build as possible. I should
try ensuring that building w/out vcpkg works as well
2023-03-26 23:03:32 -05:00
573b2347f6 feat: add sdl2-opengl3 backend impl 2023-03-26 23:03:32 -05:00
fd91b5ceaa chore: handle all cases of enum 2023-03-26 23:03:32 -05:00
45f02a82a8 chore: combine render() and draw() in backend 2023-03-26 23:03:32 -05:00
340dfa2bb7 feat: add backend impl for glfw+opengl3 2023-03-26 23:03:32 -05:00
8a2becdd79 feat: add glfw+opengl3 backend option to build.zig 2023-03-26 23:03:32 -05:00
9f23fbe948 chore: add necessary imgui files for opengl3 2023-03-26 23:03:32 -05:00
63e18caa5b chore: add gitignore 2023-03-26 22:56:50 -05:00
3 changed files with 14 additions and 6 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/zig-cache
/zig-out

View File

@@ -109,14 +109,20 @@ pub fn package(
// see: https://github.com/MasterQ32/SDL.zig/blob/37f4ba9e31bea895fa19ef8b90d1f51111e52e67/Sdk.zig#L182-L199
zgui_c_cpp.addVcpkgPaths(if (args.options.shared) .dynamic else .static) catch break :blk;
const path = zgui_c_cpp.vcpkg_bin_path orelse break :blk;
const src_path = std.fs.path.join(b.allocator, &.{ path, "SDL2.dll" }) catch @panic("out of memory");
const vcpkg_triplet = zgui_c_cpp.target.vcpkgTriplet(b.allocator, if (args.options.shared) .Dynamic else .Static) catch |e| {
std.debug.panic("failed to determing vcpkg triplet: {}", .{e});
};
defer b.allocator.free(vcpkg_triplet);
std.fs.cwd().access(src_path, .{}) catch break :blk;
const include_path = b.pathJoin(&.{ b.vcpkg_root.found, "installed", vcpkg_triplet, "include", "SDL2" });
zgui_c_cpp.include_dirs.append(.{ .raw_path = include_path }) catch @panic("out of memory");
// we found SDL2.dll
b.installBinFile(src_path, "SDL2.dll");
const bin_path = zgui_c_cpp.vcpkg_bin_path orelse @panic("vcpkg paths were found, so vcpkg_bin_path should be set ");
const dll_path = std.fs.path.join(b.allocator, &.{ bin_path, "SDL2.dll" }) catch @panic("out of memory");
std.fs.cwd().access(dll_path, .{}) catch break :blk;
b.installBinFile(dll_path, "SDL2.dll");
}
zgui_c_cpp.linkSystemLibrary("SDL2");

View File

@@ -9,9 +9,9 @@ pub const version = @import("std").SemanticVersion{ .major = 0, .minor = 9, .pat
pub usingnamespace @import("gui.zig");
pub const plot = @import("plot.zig");
pub const backend = switch (@import("zgui_options").backend) {
.glfw_wgpu => @import("backend_glfw_wgpu.zig"),
.glfw_opengl3 => @import("backend_glfw_opengl3.zig"),
.sdl2_opengl3 => @import("backend_sdl2_opengl3.zig"),
.glfw_wgpu => @import("backend_glfw_wgpu.zig"),
.win32_dx12 => .{}, // TODO:
.no_backend => .{},
};