[nostalgia/core] Make core::setMainViewEnabled take a Context

This commit is contained in:
Gary Talent 2023-05-25 00:37:43 -05:00
parent 323d5d8d53
commit 8679f6b5a3
4 changed files with 10 additions and 14 deletions

View File

@ -15,6 +15,7 @@
#include "input.hpp"
namespace nostalgia::core::gl {
void setMainViewEnabled(core::Context *ctx, bool enabled) noexcept;
void drawMainView(core::Context*) noexcept;
void setRenderSize(core::Context*, int width, int height) noexcept;
geo::Size getRenderSize(core::Context*) noexcept;
@ -105,6 +106,7 @@ class Context: public keel::Context {
unsigned spriteSize,
unsigned flipX) noexcept;
friend void hideSprite(Context *ctx, unsigned idx) noexcept;
friend void gl::setMainViewEnabled(core::Context *ctx, bool enabled) noexcept;
friend void gl::drawMainView(core::Context*) noexcept;
friend void gl::setRenderSize(core::Context*, int width, int height) noexcept;
friend geo::Size gl::getRenderSize(core::Context*) noexcept;

View File

@ -18,12 +18,6 @@
namespace nostalgia::core {
namespace gl {
void setMainViewEnabled(bool) noexcept;
}
extern ox::Array<char, 128> charMap;
class Drawer {

View File

@ -20,12 +20,6 @@ void ImGui_Impl_NewFrame() noexcept;
namespace gl {
static bool mainViewEnabled = true;
void setMainViewEnabled(bool enabled) noexcept {
mainViewEnabled = enabled;
}
}
namespace renderer {
@ -73,6 +67,7 @@ struct GlImplData {
glutils::GLProgram spriteShader;
int64_t prevFpsCheckTime = 0;
uint64_t draws = 0;
bool mainViewEnabled = true;
ox::Array<CBB, 4> cbbs;
SpriteBlockset spriteBlocks;
ox::Array<Sprite, 128> spriteStates;
@ -448,7 +443,7 @@ void draw(Context *ctx) noexcept {
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
// render
if (gl::mainViewEnabled) {
if (id->mainViewEnabled) {
gl::drawMainView(ctx);
}
for (const auto cd : ctx->drawers) {
@ -557,6 +552,11 @@ void setTile(Context *ctx, unsigned bgIdx, int column, int row, uint8_t tile) no
namespace gl {
void setMainViewEnabled(core::Context *ctx, bool enabled) noexcept {
const auto id = ctx->rendererData<renderer::GlImplData>();
id->mainViewEnabled = enabled;
}
void drawMainView(core::Context *ctx) noexcept {
const auto id = ctx->rendererData<renderer::GlImplData>();
renderer::drawBackgrounds(ctx, id);

View File

@ -48,7 +48,7 @@ static ox::Error run(ox::UniquePtr<ox::FileSystem> fs) noexcept {
core::setUpdateHandler(ctx.get(), updateHandler);
core::setKeyEventHandler(ctx.get(), keyEventHandler);
core::setConstantRefresh(ctx.get(), false);
core::gl::setMainViewEnabled(false);
core::gl::setMainViewEnabled(ctx.get(), false);
studio::StudioContext studioCtx;
core::setApplicationData(ctx.get(), &studioCtx);
StudioUI ui(ctx.get());