Working on shadow bug

This commit is contained in:
Vladislav Khorev 2026-07-19 13:29:35 +03:00
parent 6a79e8e41e
commit 02ba86331b
2 changed files with 17 additions and 7 deletions

View File

@ -109,7 +109,7 @@ namespace FRG
renderer.shaderManager.AddShaderFromFiles("defaultColor", "resources/shaders/defaultColor.vertex", "resources/shaders/defaultColor_desktop.fragment", CONST_ZIP_FILE); renderer.shaderManager.AddShaderFromFiles("defaultColor", "resources/shaders/defaultColor.vertex", "resources/shaders/defaultColor_desktop.fragment", CONST_ZIP_FILE);
renderer.shaderManager.AddShaderFromFiles("default", "resources/shaders/default.vertex", "resources/shaders/default_desktop.fragment", CONST_ZIP_FILE); renderer.shaderManager.AddShaderFromFiles("default", "resources/shaders/default.vertex", "resources/shaders/default_desktop.fragment", CONST_ZIP_FILE);
#endif #endif
loadingTexture = renderer.textureManager.LoadFromPng("resources/loading003.png", ""); loadingTexture = renderer.textureManager.LoadFromPng("resources/loading.png", "");
loadingProgressBarFrameTexture = renderer.textureManager.LoadFromPng( loadingProgressBarFrameTexture = renderer.textureManager.LoadFromPng(
"resources/loadingProgressBarFrame.png", "", true); "resources/loadingProgressBarFrame.png", "", true);
@ -395,13 +395,14 @@ namespace FRG
audioPlayer->crossFadeMusicAsync("audio/main menu final.ogg"); audioPlayer->crossFadeMusicAsync("audio/main menu final.ogg");
}); });
/*loadSteps.push([this]() { #ifdef __ANDROID__
if (menshadowsEnabled) loadSteps.push([this]() {
{ if (menuManager.shadowsEnabled) {
createShadowMapAndProparateToLocations(); createShadowMapAndProparateToLocations();
} }
});*/ });
#endif
loadSteps.push([this]() { loadSteps.push([this]() {
loadingCompleted = true; loadingCompleted = true;
@ -920,8 +921,11 @@ namespace FRG
logger() << "Shadow map already exists, skipping creation" << std::endl; logger() << "Shadow map already exists, skipping creation" << std::endl;
return; return;
} }
CheckGlError(__FILE__, __LINE__);
shadowMap = std::make_shared<ShadowMap>(2048, 40.0f, 0.1f, 100.0f); shadowMap = std::make_shared<ShadowMap>(2048, 40.0f, 0.1f, 100.0f);
CheckGlError(__FILE__, __LINE__);
shadowMap->setLightDirection(Eigen::Vector3f(-0.5f, -1.0f, -0.3f)); shadowMap->setLightDirection(Eigen::Vector3f(-0.5f, -1.0f, -0.3f));
CheckGlError(__FILE__, __LINE__);
logger() << "Shadow map initialized" << std::endl; logger() << "Shadow map initialized" << std::endl;
for (auto& [name, loc] : gameState.locations) { for (auto& [name, loc] : gameState.locations) {
@ -931,10 +935,16 @@ namespace FRG
} }
void Game::destroyShadowMapAndProparateToLocations() void Game::destroyShadowMapAndProparateToLocations()
{ {
CheckGlError(__FILE__, __LINE__);
shadowMap.reset(); shadowMap.reset();
CheckGlError(__FILE__, __LINE__);
for (auto& [name, loc] : gameState.locations) { for (auto& [name, loc] : gameState.locations) {
loc->shadowMap.reset(); loc->shadowMap.reset();
} }
CheckGlError(__FILE__, __LINE__);
} }

View File

@ -56,7 +56,7 @@ namespace FRG {
{ {
glGenFramebuffers(1, &fbo); glGenFramebuffers(1, &fbo);
#ifdef EMSCRIPTEN #if defined(EMSCRIPTEN) || defined(__ANDROID__)
glGenTextures(1, &depthTexture); glGenTextures(1, &depthTexture);
glBindTexture(GL_TEXTURE_2D, depthTexture); glBindTexture(GL_TEXTURE_2D, depthTexture);