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
4 changed files with 27 additions and 9 deletions

2
.gitignore vendored Normal file
View File

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

View File

@@ -105,9 +105,30 @@ pub fn package(
zgui_c_cpp.linkSystemLibraryName("dwmapi");
},
.sdl2_opengl3 => {
if (target.isWindows()) blk: {
// 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 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);
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");
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");
zgui_c_cpp.addCSourceFile(thisDir() ++ "/libs/imgui/backends/imgui_impl_sdl.cpp", cflags);
zgui_c_cpp.addCSourceFile(thisDir() ++ "/libs/imgui/backends/imgui_impl_opengl3.cpp", cflags);
zgui_c_cpp.linkSystemLibrary("SDL2");
},
.no_backend => {},
}

View File

@@ -67,13 +67,8 @@
#include "imgui_impl_sdl.h"
// SDL
#if defined(__WIN32__)
#include <SDL2/SDL.h>
#include <SDL2/SDL_syswm.h>
#else
#include <SDL.h>
#include <SDL_syswm.h>
#endif
#include <SDL.h>
#include <SDL_syswm.h>
#if defined(__APPLE__)
#include <TargetConditionals.h>

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 => .{},
};