[nostalgia/core] Setup Imgui drawing
This commit is contained in:
parent
5a52d322b2
commit
724cf7f779
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#include <GLFW/glfw3.h>
|
#include <GLFW/glfw3.h>
|
||||||
#include <imgui.h>
|
#include <imgui.h>
|
||||||
|
#include <imgui_impl_glfw.h>
|
||||||
|
|
||||||
#include <nostalgia/core/userland/gfx.hpp>
|
#include <nostalgia/core/userland/gfx.hpp>
|
||||||
|
|
||||||
@ -18,7 +19,7 @@ namespace nostalgia::core {
|
|||||||
constexpr auto Scale = 5;
|
constexpr auto Scale = 5;
|
||||||
|
|
||||||
static void handleGlfwError(int err, const char *desc) {
|
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 {
|
ox::Error initGfx(Context *ctx) noexcept {
|
||||||
@ -39,7 +40,10 @@ ox::Error initGfx(Context *ctx) noexcept {
|
|||||||
glfwMakeContextCurrent(id->window);
|
glfwMakeContextCurrent(id->window);
|
||||||
IMGUI_CHECKVERSION();
|
IMGUI_CHECKVERSION();
|
||||||
ImGui::CreateContext();
|
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));
|
oxReturnError(renderer::init(ctx));
|
||||||
return OxError(0);
|
return OxError(0);
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#define IMGUI_IMPL_OPENGL_ES3
|
#define IMGUI_IMPL_OPENGL_ES3
|
||||||
#include <imgui_impl_opengl3.h>
|
#include <imgui_impl_opengl3.h>
|
||||||
|
#include <imgui_impl_glfw.h>
|
||||||
|
|
||||||
#include <ox/std/bit.hpp>
|
#include <ox/std/bit.hpp>
|
||||||
#include <ox/std/fmt.hpp>
|
#include <ox/std/fmt.hpp>
|
||||||
@ -269,11 +270,18 @@ void setBgStatus(Context *ctx, unsigned bg, bool status) noexcept {
|
|||||||
void draw(Context *ctx) noexcept {
|
void draw(Context *ctx) noexcept {
|
||||||
const auto id = ctx->rendererData<renderer::GlImplData>();
|
const auto id = ctx->rendererData<renderer::GlImplData>();
|
||||||
renderer::tickFps(id);
|
renderer::tickFps(id);
|
||||||
|
ImGui_ImplOpenGL3_NewFrame();
|
||||||
|
ImGui_ImplGlfw_NewFrame();
|
||||||
|
ImGui::NewFrame();
|
||||||
// clear screen
|
// clear screen
|
||||||
glClearColor(0, 0, 0, 1);
|
glClearColor(0, 0, 0, 1);
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
// render
|
// render
|
||||||
|
//bool showDemo = true;
|
||||||
|
//ImGui::ShowDemoWindow(&showDemo);
|
||||||
renderer::drawBackgrounds(id);
|
renderer::drawBackgrounds(id);
|
||||||
|
ImGui::Render();
|
||||||
|
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
|
||||||
}
|
}
|
||||||
|
|
||||||
void clearTileLayer(Context *ctx, int layer) noexcept {
|
void clearTileLayer(Context *ctx, int layer) noexcept {
|
||||||
|
Loading…
Reference in New Issue
Block a user