summaryrefslogtreecommitdiffstats
path: root/src/main.zig
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2019-10-21 20:52:37 +0000
committers-ol <s-ol@users.noreply.github.com>2019-10-21 20:52:37 +0000
commitf0315f0c554b5622694948d65d0cf347a5dca07b (patch)
treec07a81ac792f541e70a1afd61ba18f3f24047bd6 /src/main.zig
parentadd cimgui in the repo (diff)
downloadzig-imgui-f0315f0c554b5622694948d65d0cf347a5dca07b.tar.gz
zig-imgui-f0315f0c554b5622694948d65d0cf347a5dca07b.zip
zig-fmt everything
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig159
1 files changed, 80 insertions, 79 deletions
diff --git a/src/main.zig b/src/main.zig
index 5d5f24a..79dab91 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -1,3 +1,4 @@
+/// this is a port of cimgui/imgui/examples/example_glfw_opengl3/main.cpp
const c = @import("c.zig");
const std = @import("std");
const panic = std.debug.panic;
@@ -6,88 +7,88 @@ const glfw_impl = @import("glfw_impl.zig");
const gl3_impl = @import("gl3_impl.zig");
extern fn errorCallback(err: c_int, description: [*c]const u8) void {
- panic("Error: {}\n", description);
+ panic("Error: {}\n", description);
}
var window: *c.GLFWwindow = undefined;
pub fn main() !void {
- _ = c.glfwSetErrorCallback(errorCallback);
-
- if (c.glfwInit() == c.GL_FALSE) {
- panic("GLFW init failure\n");
- }
- defer c.glfwTerminate();
-
- c.glfwWindowHint(c.GLFW_CONTEXT_VERSION_MAJOR, 3);
- c.glfwWindowHint(c.GLFW_CONTEXT_VERSION_MINOR, 2);
- c.glfwWindowHint(c.GLFW_OPENGL_FORWARD_COMPAT, c.GL_TRUE);
- c.glfwWindowHint(c.GLFW_OPENGL_DEBUG_CONTEXT, debug_gl.is_on);
- c.glfwWindowHint(c.GLFW_OPENGL_PROFILE, c.GLFW_OPENGL_CORE_PROFILE);
- // c.glfwWindowHint(c.GLFW_DEPTH_BITS, 0);
- // c.glfwWindowHint(c.GLFW_STENCIL_BITS, 8);
- c.glfwWindowHint(c.GLFW_RESIZABLE, c.GL_TRUE);
-
- const window_width = 640;
- const window_height = 480;
- window = c.glfwCreateWindow(window_width, window_height, c"ImGUI Test", null, null) orelse {
- panic("unable to create window\n");
- };
- defer c.glfwDestroyWindow(window);
-
- c.glfwMakeContextCurrent(window);
- c.glfwSwapInterval(1);
-
- const context = c.igCreateContext(null);
- defer c.igDestroyContext(context);
-
- const io = c.igGetIO();
- io.*.ConfigFlags |= @enumToInt(c.ImGuiConfigFlags_NavEnableKeyboard);
- // io.*.ConfigFlags |= @enumToInt(c.ImGuiConfigFlags_DockingEnable);
- // io.*.ConfigFlags |= @enumToInt(c.ImGuiConfigFlags_ViewportsEnable);
-
- const style = c.igGetStyle();
- c.igStyleColorsDark(style);
-
- if (false and io.*.ConfigFlags & @enumToInt(c.ImGuiConfigFlags_ViewportsEnable) != 0) {
- style.*.WindowRounding = 0.0;
- style.*.Colors[@enumToInt(c.ImGuiCol_WindowBg)].w = 1.0;
- }
-
- glfw_impl.Init(window, true, glfw_impl.ClientApi.OpenGL);
- defer glfw_impl.Shutdown();
-
- gl3_impl.Init(); // #version 150
- defer gl3_impl.Shutdown();
-
- const start_time = c.glfwGetTime();
- var prev_time = start_time;
-
- while (c.glfwWindowShouldClose(window) == c.GL_FALSE) {
- c.glfwPollEvents();
-
- try gl3_impl.NewFrame();
- glfw_impl.NewFrame();
- c.igNewFrame();
-
- // main part
- c.igShowDemoWindow(null);
-
- c.igRender();
- var w: c_int = undefined;
- var h: c_int = undefined;
- c.glfwGetFramebufferSize(window, &w, &h);
- c.glViewport(0, 0, w, h);
- c.glClearColor(0.0, 0.0, 0.0, 0.0);
- c.glClear(c.GL_COLOR_BUFFER_BIT);
- gl3_impl.RenderDrawData(c.igGetDrawData());
-
- // const now_time = c.glfwGetTime();
- // const elapsed = now_time - prev_time;
- // prev_time = now_time;
- // nextFrame(t, elapsed);
- // draw(t, @This());
-
- c.glfwSwapBuffers(window);
- }
+ _ = c.glfwSetErrorCallback(errorCallback);
+
+ if (c.glfwInit() == c.GL_FALSE) {
+ panic("GLFW init failure\n");
+ }
+ defer c.glfwTerminate();
+
+ c.glfwWindowHint(c.GLFW_CONTEXT_VERSION_MAJOR, 3);
+ c.glfwWindowHint(c.GLFW_CONTEXT_VERSION_MINOR, 2);
+ c.glfwWindowHint(c.GLFW_OPENGL_FORWARD_COMPAT, c.GL_TRUE);
+ c.glfwWindowHint(c.GLFW_OPENGL_DEBUG_CONTEXT, debug_gl.is_on);
+ c.glfwWindowHint(c.GLFW_OPENGL_PROFILE, c.GLFW_OPENGL_CORE_PROFILE);
+ // c.glfwWindowHint(c.GLFW_DEPTH_BITS, 0);
+ // c.glfwWindowHint(c.GLFW_STENCIL_BITS, 8);
+ c.glfwWindowHint(c.GLFW_RESIZABLE, c.GL_TRUE);
+
+ const window_width = 640;
+ const window_height = 480;
+ window = c.glfwCreateWindow(window_width, window_height, c"ImGUI Test", null, null) orelse {
+ panic("unable to create window\n");
+ };
+ defer c.glfwDestroyWindow(window);
+
+ c.glfwMakeContextCurrent(window);
+ c.glfwSwapInterval(1);
+
+ const context = c.igCreateContext(null);
+ defer c.igDestroyContext(context);
+
+ const io = c.igGetIO();
+ io.*.ConfigFlags |= @enumToInt(c.ImGuiConfigFlags_NavEnableKeyboard);
+ // io.*.ConfigFlags |= @enumToInt(c.ImGuiConfigFlags_DockingEnable);
+ // io.*.ConfigFlags |= @enumToInt(c.ImGuiConfigFlags_ViewportsEnable);
+
+ const style = c.igGetStyle();
+ c.igStyleColorsDark(style);
+
+ if (false and io.*.ConfigFlags & @enumToInt(c.ImGuiConfigFlags_ViewportsEnable) != 0) {
+ style.*.WindowRounding = 0.0;
+ style.*.Colors[@enumToInt(c.ImGuiCol_WindowBg)].w = 1.0;
+ }
+
+ glfw_impl.Init(window, true, glfw_impl.ClientApi.OpenGL);
+ defer glfw_impl.Shutdown();
+
+ gl3_impl.Init(); // #version 150
+ defer gl3_impl.Shutdown();
+
+ const start_time = c.glfwGetTime();
+ var prev_time = start_time;
+
+ while (c.glfwWindowShouldClose(window) == c.GL_FALSE) {
+ c.glfwPollEvents();
+
+ try gl3_impl.NewFrame();
+ glfw_impl.NewFrame();
+ c.igNewFrame();
+
+ // main part
+ c.igShowDemoWindow(null);
+
+ c.igRender();
+ var w: c_int = undefined;
+ var h: c_int = undefined;
+ c.glfwGetFramebufferSize(window, &w, &h);
+ c.glViewport(0, 0, w, h);
+ c.glClearColor(0.0, 0.0, 0.0, 0.0);
+ c.glClear(c.GL_COLOR_BUFFER_BIT);
+ gl3_impl.RenderDrawData(c.igGetDrawData());
+
+ // const now_time = c.glfwGetTime();
+ // const elapsed = now_time - prev_time;
+ // prev_time = now_time;
+ // nextFrame(t, elapsed);
+ // draw(t, @This());
+
+ c.glfwSwapBuffers(window);
+ }
}