Working on encoding

This commit is contained in:
Vladislav Khorev 2026-03-06 17:51:46 +03:00
parent a8c76dee3c
commit c35e093cc5
23 changed files with 41 additions and 41 deletions

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#include "render/Renderer.h" #include "render/Renderer.h"

View File

@ -1,4 +1,4 @@
#ifdef AUDIO #ifdef AUDIO
#include "AudioPlayerAsync.h" #include "AudioPlayerAsync.h"

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#ifdef AUDIO #ifdef AUDIO

View File

@ -1,4 +1,4 @@
#include "BoneAnimatedModel.h" #include "BoneAnimatedModel.h"
#include <regex> #include <regex>
#include <string> #include <string>
#include <fstream> #include <fstream>

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#include "render/Renderer.h" #include "render/Renderer.h"
#include <unordered_map> #include <unordered_map>

View File

@ -1,4 +1,4 @@
#include "Environment.h" #include "Environment.h"
#include "utils/Utils.h" #include "utils/Utils.h"

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#ifdef __linux__ #ifdef __linux__
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
#endif #endif

View File

@ -1,4 +1,4 @@
#include "MenuManager.h" #include "MenuManager.h"
namespace ZL { namespace ZL {

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#include "render/Renderer.h" #include "render/Renderer.h"
#include "Environment.h" #include "Environment.h"
#include "render/TextureManager.h" #include "render/TextureManager.h"

View File

@ -1,4 +1,4 @@
#include "TextModel.h" #include "TextModel.h"
#include <regex> #include <regex>
#include <string> #include <string>
#include <fstream> #include <fstream>

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#include "render/Renderer.h" #include "render/Renderer.h"
#include <unordered_map> #include <unordered_map>

View File

@ -1,4 +1,4 @@
#include "FrameBuffer.h" #include "FrameBuffer.h"
#include <iostream> #include <iostream>
#include "Environment.h" #include "Environment.h"
@ -15,10 +15,10 @@ namespace ZL {
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
// Настраиваем фильтрацию // Настраиваем фильтрацию
if (useMipmaps) { if (useMipmaps) {
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
// Сразу генерируем пустые уровни, чтобы текстура считалась "полной" // Сразу генерируем пустые уровни, чтобы текстура считалась "полной"
glGenerateMipmap(GL_TEXTURE_2D); glGenerateMipmap(GL_TEXTURE_2D);
} }
else { else {
@ -49,13 +49,13 @@ namespace ZL {
void FrameBuffer::Bind() { void FrameBuffer::Bind() {
glBindFramebuffer(GL_FRAMEBUFFER, fbo); glBindFramebuffer(GL_FRAMEBUFFER, fbo);
glViewport(0, 0, width, height); // Важно: устанавливаем вьюпорт под размер текстуры glViewport(0, 0, width, height); // Важно: устанавливаем вьюпорт под размер текстуры
} }
void FrameBuffer::Unbind() { void FrameBuffer::Unbind() {
glBindFramebuffer(GL_FRAMEBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0);
// Здесь желательно возвращать вьюпорт к размерам экрана, // Здесь желательно возвращать вьюпорт к размерам экрана,
// например, через Environment::width/height // например, через Environment::width/height
glViewport(0, 0, Environment::width, Environment::height); glViewport(0, 0, Environment::width, Environment::height);
} }

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#include "render/OpenGlExtensions.h" #include "render/OpenGlExtensions.h"
#include <memory> #include <memory>

View File

@ -1,4 +1,4 @@
#include "OpenGlExtensions.h" #include "OpenGlExtensions.h"
#include "utils/Utils.h" #include "utils/Utils.h"
#include <iostream> #include <iostream>

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#include "SDL.h" #include "SDL.h"

View File

@ -1,4 +1,4 @@
#include "render/Renderer.h" #include "render/Renderer.h"
#include <cmath> #include <cmath>
namespace ZL { namespace ZL {

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#include "render/OpenGlExtensions.h" #include "render/OpenGlExtensions.h"

View File

@ -1,4 +1,4 @@
#include "ShaderManager.h" #include "ShaderManager.h"
#include <iostream> #include <iostream>
#include <SDL.h> #include <SDL.h>

View File

@ -1,4 +1,4 @@
#include "Perlin.h" #include "Perlin.h"
#include <cmath> #include <cmath>
#include <numeric> #include <numeric>
#include <random> #include <random>
@ -9,19 +9,19 @@ namespace ZL {
PerlinNoise::PerlinNoise() { PerlinNoise::PerlinNoise() {
p.resize(256); p.resize(256);
std::iota(p.begin(), p.end(), 0); std::iota(p.begin(), p.end(), 0);
// Перемешиваем для случайности (можно задать seed) // Перемешиваем для случайности (можно задать seed)
std::default_random_engine engine(77777); std::default_random_engine engine(77777);
std::shuffle(p.begin(), p.end(), engine); std::shuffle(p.begin(), p.end(), engine);
p.insert(p.end(), p.begin(), p.end()); // Дублируем для переполнения p.insert(p.end(), p.begin(), p.end()); // Дублируем для переполнения
} }
PerlinNoise::PerlinNoise(uint64_t seed) { PerlinNoise::PerlinNoise(uint64_t seed) {
p.resize(256); p.resize(256);
std::iota(p.begin(), p.end(), 0); std::iota(p.begin(), p.end(), 0);
// Перемешиваем для случайности (используем переданный seed) // Перемешиваем для случайности (используем переданный seed)
std::default_random_engine engine(static_cast<unsigned int>(seed)); std::default_random_engine engine(static_cast<unsigned int>(seed));
std::shuffle(p.begin(), p.end(), engine); std::shuffle(p.begin(), p.end(), engine);
p.insert(p.end(), p.begin(), p.end()); // Дублируем для переполнения p.insert(p.end(), p.begin(), p.end()); // Дублируем для переполнения
} }
float PerlinNoise::fade(float t) { return t * t * t * (t * (t * 6 - 15) + 10); } float PerlinNoise::fade(float t) { return t * t * t * (t * (t * 6 - 15) + 10); }
@ -58,13 +58,13 @@ namespace ZL {
} }
float PerlinNoise::getSurfaceHeight(Eigen::Vector3f pos, float noiseCoeff) { float PerlinNoise::getSurfaceHeight(Eigen::Vector3f pos, float noiseCoeff) {
// Частота шума (чем больше, тем больше "холмов") // Частота шума (чем больше, тем больше "холмов")
float frequency = 7.0f; float frequency = 7.0f;
// Получаем значение шума (обычно от -1 до 1) // Получаем значение шума (обычно от -1 до 1)
float noiseValue = noise(pos(0) * frequency, pos(1) * frequency, pos(2) * frequency); float noiseValue = noise(pos(0) * frequency, pos(1) * frequency, pos(2) * frequency);
// Масштабируем: хотим отклонение от 1.0 до 1.1 (примерно) // Масштабируем: хотим отклонение от 1.0 до 1.1 (примерно)
float height = 1.0f + (noiseValue * noiseCoeff); float height = 1.0f + (noiseValue * noiseCoeff);
return height; return height;

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#include <vector> #include <vector>
#include <cstdint> #include <cstdint>

View File

@ -1,4 +1,4 @@
#include "TaskManager.h" #include "TaskManager.h"
namespace ZL namespace ZL
@ -27,8 +27,8 @@ namespace ZL
TaskManager::~TaskManager() { TaskManager::~TaskManager() {
#ifndef EMSCRIPTEN #ifndef EMSCRIPTEN
workGuard.reset(); // Разрешаем ioContext.run() завершиться, когда задач не останется workGuard.reset(); // Разрешаем ioContext.run() завершиться, когда задач не останется
ioContext.stop(); // Опционально: немедленная остановка ioContext.stop(); // Опционально: немедленная остановка
for (auto& t : workers) { for (auto& t : workers) {
if (t.joinable()) t.join(); if (t.joinable()) t.join();
} }
@ -51,7 +51,7 @@ namespace ZL
mainThreadTasks.pop(); mainThreadTasks.pop();
} }
#else #else
// Извлекаем только одну задачу, чтобы не блокировать update надолго // Извлекаем только одну задачу, чтобы не блокировать update надолго
{ {
std::lock_guard<std::mutex> lock(mainThreadMutex); std::lock_guard<std::mutex> lock(mainThreadMutex);
if (!mainThreadTasks.empty()) { if (!mainThreadTasks.empty()) {
@ -62,7 +62,7 @@ namespace ZL
#endif #endif
if (task) { if (task) {
task(); // Здесь выполняется RefreshVBO или загрузка текстуры task(); // Здесь выполняется RefreshVBO или загрузка текстуры
} }
} }
} }

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#ifndef EMSCRIPTEN #ifndef EMSCRIPTEN
#include <boost/asio.hpp> #include <boost/asio.hpp>
@ -23,7 +23,7 @@ namespace ZL {
public: public:
TaskManager(size_t threadCount = 2); TaskManager(size_t threadCount = 2);
// Метод для добавления фоновой задачи // ћетод дл¤ добавлени¤ фоновой задачи
void EnqueueBackgroundTask(std::function<void()> task); void EnqueueBackgroundTask(std::function<void()> task);
// Graceful shutdown // Graceful shutdown
@ -49,7 +49,7 @@ namespace ZL {
public: public:
void EnqueueMainThreadTask(std::function<void()> task); void EnqueueMainThreadTask(std::function<void()> task);
// Выполнение задач по одной (или пачкой) за кадр // ¬ыполнение задач по одной (или пачкой) за кадр
void processMainThreadTasks(); void processMainThreadTasks();
}; };

View File

@ -1,4 +1,4 @@
#pragma once #pragma once
#include <string> #include <string>
#include <vector> #include <vector>