diff --git a/.gitignore b/.gitignore index f276003..ca306d3 100644 --- a/.gitignore +++ b/.gitignore @@ -37,4 +37,5 @@ CMakeLocalPath.cmake # Folders camke-build-debug/ -.idea/ \ No newline at end of file +.idea/ +build/ \ No newline at end of file diff --git a/render/CMakeLists.txt b/render/CMakeLists.txt index 5654717..c294fb2 100644 --- a/render/CMakeLists.txt +++ b/render/CMakeLists.txt @@ -47,10 +47,12 @@ add_library(${TG_RENDER} SHARED ) + target_compile_definitions(${TG_RENDER} PRIVATE RENDER_SHARED_LIB RENDER_DLL_OUTPUT + PROJECT_ROOT="${PROJECT_SOURCE_DIR}" ) target_link_libraries(${TG_RENDER} diff --git a/render/src/states_render.cpp b/render/src/states_render.cpp index f934b2d..a8fd1be 100644 --- a/render/src/states_render.cpp +++ b/render/src/states_render.cpp @@ -4,10 +4,19 @@ #include namespace { -std::filesystem::path tempPath_defaultShader{L"I:/source/render/assets/shaders/_this_is_fuckin_default_shader.hlsl"}; -std::filesystem::path tempPath_defaultPBRShader{L"I:/source/render/assets/shaders/pbr_forward.hlsl"}; -std::filesystem::path tempPath_shadowDepth{L"I:/source/render/assets/shaders/shadow_depth_vs.hlsl"}; -std::filesystem::path tempPath_PbrWithIbl{L"I:/source/render/assets/shaders/pbr_forward_ibl.hlsl"}; +std::filesystem::path project_src_root{PROJECT_ROOT}; +std::filesystem::path tempPath_defaultShader = + project_src_root / std::filesystem::path{L"assets/shaders/_this_is_fuckin_default_shader.hlsl"}; +std::filesystem::path tempPath_defaultPBRShader = + project_src_root / std::filesystem::path{L"assets/shaders/pbr_forward.hlsl"}; +std::filesystem::path tempPath_shadowDepth = + project_src_root / std::filesystem::path{L"assets/shaders/shadow_depth_vs.hlsl"}; +std::filesystem::path tempPath_PbrWithIbl = + project_src_root / std::filesystem::path{L"assets/shaders/pbr_forward_ibl.hlsl"}; +// std::filesystem::path tempPath_defaultShader{L"I:/source/render/assets/shaders/_this_is_fuckin_default_shader.hlsl"}; +// std::filesystem::path tempPath_defaultPBRShader{L"I:/source/render/assets/shaders/pbr_forward.hlsl"}; +// std::filesystem::path tempPath_shadowDepth{L"I:/source/render/assets/shaders/shadow_depth_vs.hlsl"}; +// std::filesystem::path tempPath_PbrWithIbl{L"I:/source/render/assets/shaders/pbr_forward_ibl.hlsl"}; } @@ -45,16 +54,18 @@ const std::wstring &StatesRender::S_GetExeDir() { const std::filesystem::path &StatesRender::S_GetDefaultShaderPath() { // DEBUG MODE +#ifdef _DEBUG return tempPath_PbrWithIbl; return tempPath_defaultPBRShader; return tempPath_defaultShader; +#endif // 正确的 static std::filesystem::path shaderpath = []()-> std::filesystem::path { std::filesystem::path rootdir{S_GetExeDir()}; - std::filesystem::path _shaderpath = rootdir / L"assets/shaders/_this_is_fuckin_default_shader.hlsl"; + std::filesystem::path _shaderpath = rootdir / L"assets/shaders/pbr_forward_ibl.hlsl"; if (!std::filesystem::exists(_shaderpath)) { - MessageBoxW(nullptr, L"exe目录下找不到assets/shaders/_default_shader.hlsl", L"StatesRender.cpp",MB_OK); + MessageBoxW(nullptr, L"exe目录下找不到assets/shaders/pbr_forward_ibl.hlsl", L"StatesRender.cpp",MB_OK); throw std::runtime_error{"default shader does not exist"}; } return _shaderpath; @@ -66,7 +77,9 @@ const std::filesystem::path &StatesRender::S_GetDefaultShaderPath() { const std::filesystem::path &StatesRender::S_GetShadowDepthShaderPath() { // DEBUG MODE +#ifdef _DEBUG return tempPath_shadowDepth; +#endif // 正确的