[nostalgia/core] Setup Imgui drawing

This commit is contained in:
Gary Talent 2021-07-17 12:38:40 -05:00
parent 5a52d322b2
commit 724cf7f779
2 changed files with 14 additions and 2 deletions

View File

@ -8,6 +8,7 @@
#include <GLFW/glfw3.h>
#include <imgui.h>
#include <imgui_impl_glfw.h>
#include <nostalgia/core/userland/gfx.hpp>
@ -18,7 +19,7 @@ namespace nostalgia::core {
constexpr auto Scale = 5;
static void handleGlfwError(int err, const char *desc) {
oxErrf("GLFW error ({}): {}", err, desc);
oxErrf("GLFW error ({}): {}\n", err, desc);
}
ox::Error initGfx(Context *ctx) noexcept {
@ -39,7 +40,10 @@ ox::Error initGfx(Context *ctx) noexcept {
glfwMakeContextCurrent(id->window);
IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGui::GetIO().ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
auto &io = ImGui::GetIO();
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
io.MouseDrawCursor = true;
ImGui_ImplGlfw_InitForOpenGL(id->window, true);
oxReturnError(renderer::init(ctx));
return OxError(0);
}

View File

@ -12,6 +12,7 @@
#define IMGUI_IMPL_OPENGL_ES3
#include <imgui_impl_opengl3.h>
#include <imgui_impl_glfw.h>
#include <ox/std/bit.hpp>
#include <ox/std/fmt.hpp>
@ -269,11 +270,18 @@ void setBgStatus(Context *ctx, unsigned bg, bool status) noexcept {
void draw(Context *ctx) noexcept {
const auto id = ctx->rendererData<renderer::GlImplData>();
renderer::tickFps(id);
ImGui_ImplOpenGL3_NewFrame();
ImGui_ImplGlfw_NewFrame();
ImGui::NewFrame();
// clear screen
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
// render
//bool showDemo = true;
//ImGui::ShowDemoWindow(&showDemo);
renderer::drawBackgrounds(id);
ImGui::Render();
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
}
void clearTileLayer(Context *ctx, int layer) noexcept {