fix: backlight setting not applying on change
This commit is contained in:
parent
4dfa235f12
commit
d59fac61bb
@ -45,12 +45,14 @@ LevelScreen::LevelScreen(Engine* engine, std::unique_ptr<Level> level)
|
||||
|
||||
keepAlive(settings.graphics.backlight.observe([=](bool) {
|
||||
controller->getLevel()->chunks->saveAndClear();
|
||||
worldRenderer->clear();
|
||||
}));
|
||||
keepAlive(settings.camera.fov.observe([=](double value) {
|
||||
controller->getPlayer()->camera->setFov(glm::radians(value));
|
||||
}));
|
||||
keepAlive(Events::getBinding(BIND_CHUNKS_RELOAD).onactived.add([=](){
|
||||
controller->getLevel()->chunks->saveAndClear();
|
||||
worldRenderer->clear();
|
||||
}));
|
||||
|
||||
animator = std::make_unique<TextureAnimator>();
|
||||
|
||||
@ -79,6 +79,12 @@ void ChunksRenderer::unload(const Chunk* chunk) {
|
||||
}
|
||||
}
|
||||
|
||||
void ChunksRenderer::clear() {
|
||||
meshes.clear();
|
||||
inwork.clear();
|
||||
threadPool.clearQueue();
|
||||
}
|
||||
|
||||
std::shared_ptr<Mesh> ChunksRenderer::getOrRender(const std::shared_ptr<Chunk>& chunk, bool important) {
|
||||
auto found = meshes.find(glm::ivec2(chunk->x, chunk->z));
|
||||
if (found == meshes.end()) {
|
||||
|
||||
@ -39,6 +39,7 @@ public:
|
||||
|
||||
std::shared_ptr<Mesh> render(const std::shared_ptr<Chunk>& chunk, bool important);
|
||||
void unload(const Chunk* chunk);
|
||||
void clear();
|
||||
|
||||
std::shared_ptr<Mesh> getOrRender(const std::shared_ptr<Chunk>& chunk, bool important);
|
||||
std::shared_ptr<Mesh> get(Chunk* chunk);
|
||||
|
||||
@ -410,3 +410,7 @@ void WorldRenderer::drawBorders(
|
||||
}
|
||||
lineBatch->flush();
|
||||
}
|
||||
|
||||
void WorldRenderer::clear() {
|
||||
renderer->clear();
|
||||
}
|
||||
|
||||
@ -96,4 +96,6 @@ public:
|
||||
float delta,
|
||||
bool pause
|
||||
);
|
||||
|
||||
void clear();
|
||||
};
|
||||
|
||||
@ -237,6 +237,11 @@ namespace util {
|
||||
jobsMutexCondition.notify_one();
|
||||
}
|
||||
|
||||
void clearQueue() {
|
||||
std::lock_guard<std::mutex> lock(jobsMutex);
|
||||
jobs = {};
|
||||
}
|
||||
|
||||
/// @brief If false: worker will be blocked until it's result performed
|
||||
void setStandaloneResults(bool flag) {
|
||||
standaloneResults = flag;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user