diff --git a/engine/asset/include/asset.hpp b/engine/asset/include/asset.hpp index e77a6fd..7883461 100644 --- a/engine/asset/include/asset.hpp +++ b/engine/asset/include/asset.hpp @@ -11,28 +11,28 @@ namespace std { template <> - struct hash { - std::size_t operator()(const prism::Path& k) const { + struct hash { + std::size_t operator()(const prism::path& k) const { return (std::hash()(k.string())); } }; } template -std::unique_ptr load_asset(const prism::Path p); +std::unique_ptr load_asset(const prism::path p); template -bool can_load_asset(const prism::Path p); +bool can_load_asset(const prism::path p); template -using AssetStore = std::unordered_map>; +using AssetStore = std::unordered_map>; template class AssetPool : public AssetStore... { public: template AssetPtr add() { - const auto p = prism::Path(); + const auto p = prism::path(); auto reference_block = get_reference_block(p); AssetStore::try_emplace(p, std::make_unique()); @@ -41,7 +41,7 @@ public: } template - AssetPtr get(const prism::Path path) { + AssetPtr get(const prism::path path) { return fetch(path, get_reference_block(path)); } @@ -58,14 +58,14 @@ public: } template - AssetPtr fetch(const prism::Path path, ReferenceBlock* reference_block) { + AssetPtr fetch(const prism::path path, ReferenceBlock* reference_block) { if(!AssetStore::count(path)) AssetStore::try_emplace(path, load_asset(path)); return AssetPtr(AssetStore::at(path).get(), reference_block); } - std::tuple load_asset_generic(const prism::Path path) { + std::tuple load_asset_generic(const prism::path path) { Asset* asset = nullptr; ReferenceBlock* block = nullptr; @@ -88,10 +88,10 @@ public: } } - std::unordered_map> reference_blocks; + std::unordered_map> reference_blocks; private: - ReferenceBlock* get_reference_block(const prism::Path path) { + ReferenceBlock* get_reference_block(const prism::path path) { if(!reference_blocks.count(path)) reference_blocks.try_emplace(path, std::make_unique()); @@ -99,7 +99,7 @@ private: } template - void load_asset_generic(const prism::Path path, Asset*& at, ReferenceBlock*& block) { + void load_asset_generic(const prism::path path, Asset*& at, ReferenceBlock*& block) { if(can_load_asset(path)) { if(!AssetStore::count(path)) AssetStore::try_emplace(path, load_asset(path)); @@ -110,7 +110,7 @@ private: } template - void delete_asset(const prism::Path path) { + void delete_asset(const prism::path path) { auto iter = AssetStore::find(path); if(iter != AssetStore::end()) { auto& [_, asset] = *iter; @@ -126,14 +126,14 @@ using AssetManager = AssetPool; inline std::unique_ptr assetm; -std::unique_ptr load_mesh(const prism::Path path); -std::unique_ptr load_material(const prism::Path path); -std::unique_ptr load_texture(const prism::Path path); +std::unique_ptr load_mesh(const prism::path path); +std::unique_ptr load_material(const prism::path path); +std::unique_ptr load_texture(const prism::path path); -void save_material(Material* material, const prism::Path path); +void save_material(Material* material, const prism::path path); template -std::unique_ptr load_asset(const prism::Path path) { +std::unique_ptr load_asset(const prism::path path) { if constexpr (std::is_same_v) { return load_mesh(path); } else if constexpr(std::is_same_v) { @@ -144,7 +144,7 @@ std::unique_ptr load_asset(const prism::Path path) { } template -bool can_load_asset(const prism::Path path) { +bool can_load_asset(const prism::path path) { if constexpr(std::is_same_v) { return path.extension() == ".model"; } else if constexpr(std::is_same_v) { diff --git a/engine/asset/src/asset.cpp b/engine/asset/src/asset.cpp index 43842db..77d6af6 100644 --- a/engine/asset/src/asset.cpp +++ b/engine/asset/src/asset.cpp @@ -15,7 +15,7 @@ #include "physics.hpp" #include "imgui_backend.hpp" -std::unique_ptr load_mesh(const prism::Path path) { +std::unique_ptr load_mesh(const prism::path path) { Expects(!path.empty()); auto file = prism::open_file(path, true); @@ -185,7 +185,7 @@ std::unique_ptr load_mesh(const prism::Path path) { return mesh; } -std::unique_ptr load_texture(const prism::Path path) { +std::unique_ptr load_texture(const prism::path path) { Expects(!path.empty()); auto file = prism::open_file(path, true); @@ -242,7 +242,7 @@ std::unique_ptr load_texture(const prism::Path path) { return texture; } -std::unique_ptr load_material(const prism::Path path) { +std::unique_ptr load_material(const prism::path path) { Expects(!path.empty()); auto file = prism::open_file(path); @@ -331,7 +331,7 @@ std::unique_ptr load_material(const prism::Path path) { return mat; } -void save_material(Material* material, const prism::Path path) { +void save_material(Material* material, const prism::path path) { Expects(material != nullptr); Expects(!path.empty()); diff --git a/engine/audio/include/audio.hpp b/engine/audio/include/audio.hpp index 2ee64b2..777c6d1 100755 --- a/engine/audio/include/audio.hpp +++ b/engine/audio/include/audio.hpp @@ -8,5 +8,5 @@ namespace audio { void initialize(); - void play_file(const prism::Path path, const float gain = 1.0f); + void play_file(const prism::path path, const float gain = 1.0f); } diff --git a/engine/audio/src/audio.cpp b/engine/audio/src/audio.cpp index b74927b..63bd96e 100755 --- a/engine/audio/src/audio.cpp +++ b/engine/audio/src/audio.cpp @@ -77,7 +77,7 @@ void audio::initialize() { Pa_StartStream(stream); } -void audio::play_file(const prism::Path path, const float gain) { +void audio::play_file(const prism::path path, const float gain) { auto audio_file = prism::open_file(path); if(audio_file == std::nullopt) return; diff --git a/engine/core/include/engine.hpp b/engine/core/include/engine.hpp index 7b03b94..1267318 100755 --- a/engine/core/include/engine.hpp +++ b/engine/core/include/engine.hpp @@ -134,7 +134,7 @@ namespace prism { @param path The scene file path. @return Returns a instance of the scene is successful, and nullptr on failure. */ - Scene* load_scene(const prism::Path& path); + Scene* load_scene(const prism::path& path); /** Save the current scene to disk. @param path The absolute file path. @@ -145,7 +145,7 @@ namespace prism { @param path The screen file path. @return Returns a instance of the screen if successful, and nullptr on failure. */ - ui::Screen* load_screen(const prism::Path& path); + ui::Screen* load_screen(const prism::path& path); /** Set the current screen. @param screen The screen object to set as current. Can be null. @@ -162,7 +162,7 @@ namespace prism { @param path The prefab file path. @param override_name If not empty, the root object's new name. Defaulted to a empty string. */ - Object add_prefab(Scene& scene, const prism::Path& path, std::string_view override_name = ""); + Object add_prefab(Scene& scene, const prism::path& path, std::string_view override_name = ""); /** Save a tree of objects as a prefab to disk. @param root The parent object to save as a prefab. @@ -180,12 +180,12 @@ namespace prism { @param path The animation file path. @return An animation. */ - Animation load_animation(const prism::Path& path); + Animation load_animation(const prism::path& path); /** Load a cutscene from disk. This changes the current cutscene. @param path The cutscene file path. */ - void load_cutscene(const prism::Path& path); + void load_cutscene(const prism::path& path); /** Saves the current cutscene to disk. @param path The absolute file path. diff --git a/engine/core/include/screen.hpp b/engine/core/include/screen.hpp index 09ff1be..2ee05dd 100755 --- a/engine/core/include/screen.hpp +++ b/engine/core/include/screen.hpp @@ -15,7 +15,7 @@ namespace ui { class Screen { public: Screen() {} - Screen(const prism::Path path); + Screen(const prism::path path); void process_event(const std::string& type, std::string data = ""); diff --git a/engine/core/src/debug.cpp b/engine/core/src/debug.cpp index 94b7a15..b3d3550 100644 --- a/engine/core/src/debug.cpp +++ b/engine/core/src/debug.cpp @@ -169,7 +169,7 @@ void draw_shader_editor() { if(ImGui::Button("Select Path")) { platform::open_dialog(false, [](std::string path) { // open_dialog() can't select folders yet, so use this as a workaround - options.shader_source_path = prism::Path(path).parent_path().string(); + options.shader_source_path = prism::path(path).parent_path().string(); }); } } else { @@ -186,11 +186,11 @@ void draw_shader_editor() { if(!selected_shader.empty()) { if(loaded_shader_string.empty()) { - prism::Path base_shader_path = options.shader_source_path; + prism::path base_shader_path = options.shader_source_path; shader_compiler.set_include_path(base_shader_path.string()); - prism::Path shader_path = prism::Path(selected_shader); + prism::path shader_path = prism::path(selected_shader); auto file = prism::open_file(base_shader_path / shader_path.replace_extension(shader_path.extension().string() + ".glsl")); diff --git a/engine/core/src/engine.cpp b/engine/core/src/engine.cpp index faa3697..283d70c 100755 --- a/engine/core/src/engine.cpp +++ b/engine/core/src/engine.cpp @@ -131,7 +131,7 @@ void engine::create_empty_scene() { current_scene = scenes.back().get(); } -Scene* engine::load_scene(const prism::Path& path) { +Scene* engine::load_scene(const prism::path& path) { Expects(!path.empty()); auto file = prism::open_file(path); @@ -191,7 +191,7 @@ void engine::save_scene(const std::string_view path) { out << j; } -ui::Screen* engine::load_screen(const prism::Path& path) { +ui::Screen* engine::load_screen(const prism::path& path) { Expects(!path.empty()); return new ui::Screen(path); @@ -224,7 +224,7 @@ AnimationChannel engine::load_animation(nlohmann::json a) { return animation; } -Animation engine::load_animation(const prism::Path& path) { +Animation engine::load_animation(const prism::path& path) { Expects(!path.empty()); auto file = prism::open_file(path, true); @@ -282,7 +282,7 @@ Animation engine::load_animation(const prism::Path& path) { return anim; } -void engine::load_cutscene(const prism::Path& path) { +void engine::load_cutscene(const prism::path& path) { Expects(!path.empty()); cutscene = std::make_unique(); @@ -359,7 +359,7 @@ void engine::save_cutscene(const std::string_view path) { out << j; } -Object engine::add_prefab(Scene& scene, const prism::Path& path, const std::string_view override_name) { +Object engine::add_prefab(Scene& scene, const prism::path& path, const std::string_view override_name) { Expects(!path.empty()); auto file = prism::open_file(path); diff --git a/engine/core/src/file.cpp b/engine/core/src/file.cpp index 145410d..1cd3a18 100755 --- a/engine/core/src/file.cpp +++ b/engine/core/src/file.cpp @@ -6,7 +6,7 @@ #include "log.hpp" #include "assertions.hpp" -prism::Path prism::root_path(const Path path) { +prism::path prism::root_path(const path path) { auto p = path; while(p.parent_path() != p && p.parent_path() != "/") { p = p.parent_path(); @@ -15,7 +15,7 @@ prism::Path prism::root_path(const Path path) { return p; } -std::optional prism::open_file(const prism::Path path, const bool binary_mode) { +std::optional prism::open_file(const prism::path path, const bool binary_mode) { Expects(!path.empty()); auto str = get_file_path(path).string(); @@ -28,7 +28,7 @@ std::optional prism::open_file(const prism::Path path, const bool b return prism::file(file); } -prism::Path prism::get_file_path(const prism::Path& path) { +prism::path prism::get_file_path(const prism::path& path) { auto fixed_path = path; auto root = root_path(path); if(root == app_domain) { @@ -40,15 +40,15 @@ prism::Path prism::get_file_path(const prism::Path& path) { return fixed_path; } -prism::Path prism::get_domain_path(const domain domain) { +prism::path prism::get_domain_path(const domain domain) { return domain_data[static_cast(domain)]; } -prism::Path parent_domain(const prism::Path& path) { +prism::path parent_domain(const prism::path& path) { return path; } -prism::Path prism::get_relative_path(const domain domain, const Path path) { +prism::path prism::get_relative_path(const domain domain, const path path) { // unimplemented return path; } diff --git a/engine/core/src/screen.cpp b/engine/core/src/screen.cpp index 13c2006..9b10da6 100755 --- a/engine/core/src/screen.cpp +++ b/engine/core/src/screen.cpp @@ -94,7 +94,7 @@ UIElement* ui::Screen::find_element(const std::string& id) { return foundElement; } -ui::Screen::Screen(const prism::Path path) { +ui::Screen::Screen(const prism::path path) { auto file = prism::open_file(path); if(!file.has_value()) { prism::log::error(System::Core, "Failed to load UI from {}!", path); diff --git a/engine/platform/include/file.hpp b/engine/platform/include/file.hpp index 3f6df79..439429c 100755 --- a/engine/platform/include/file.hpp +++ b/engine/platform/include/file.hpp @@ -110,14 +110,14 @@ namespace prism { @param mode The access mode. @param path The absolute file path. */ - void set_domain_path(domain domain, Path path); - Path get_domain_path(domain domain); + void set_domain_path(domain domain, path domain_path); + path get_domain_path(domain domain); /// Converts an absolute path to a domain relative path. - Path get_relative_path(domain domain, Path path); + path get_relative_path(domain domain, path domain_relative_path); /// Returns the path to a writeable directory. - Path get_writeable_directory(); + path get_writeable_directory(); /** Opens a file handle. @@ -126,12 +126,12 @@ namespace prism { @param binary_mode Whether or not to open the file as binary or ASCII. Defaults to false. @return An optional with a value if the file was loaded correctly, otherwise it's empty. */ - std::optional open_file(Path path, bool binary_mode = false); + std::optional open_file(path file_path, bool binary_mode = false); - Path root_path(Path path); - Path get_file_path(const Path& path); + path root_path(path path); + path get_file_path(const path& path); - inline Path internal_domain = "/internal", app_domain = "/app"; + inline path internal_domain = "/internal", app_domain = "/app"; } inline std::array domain_data; diff --git a/engine/renderer/src/dofpass.cpp b/engine/renderer/src/dofpass.cpp index 79291a8..de5a9b4 100755 --- a/engine/renderer/src/dofpass.cpp +++ b/engine/renderer/src/dofpass.cpp @@ -28,9 +28,9 @@ DoFPass::DoFPass(GFX* gfx, prism::renderer* renderer) : renderer(renderer) { height_constant.value = extent.height; GFXGraphicsPipelineCreateInfo create_info = {}; - create_info.shaders.vertex_src = ShaderSource(prism::Path("dof.vert")); + create_info.shaders.vertex_src = ShaderSource(prism::path("dof.vert")); create_info.shaders.vertex_constants = {width_constant, height_constant}; - create_info.shaders.fragment_src = ShaderSource(prism::Path("dof.frag")); + create_info.shaders.fragment_src = ShaderSource(prism::path("dof.frag")); create_info.shader_input.bindings = { {0, GFXBindingType::StorageImage}, diff --git a/engine/renderer/src/imguipass.cpp b/engine/renderer/src/imguipass.cpp index 3f768f2..65cf367 100755 --- a/engine/renderer/src/imguipass.cpp +++ b/engine/renderer/src/imguipass.cpp @@ -23,8 +23,8 @@ void ImGuiPass::create_render_target_resources(RenderTarget& target) { if(pipeline == nullptr) { GFXGraphicsPipelineCreateInfo createInfo; createInfo.label = "ImGui"; - createInfo.shaders.vertex_src = ShaderSource(prism::Path("imgui.vert")); - createInfo.shaders.fragment_src = ShaderSource(prism::Path("imgui.frag")); + createInfo.shaders.vertex_src = ShaderSource(prism::path("imgui.vert")); + createInfo.shaders.fragment_src = ShaderSource(prism::path("imgui.frag")); GFXVertexInput vertexInput = {}; vertexInput.stride = sizeof(ImDrawVert); diff --git a/engine/renderer/src/renderer.cpp b/engine/renderer/src/renderer.cpp index 7fc6f59..5318afc 100755 --- a/engine/renderer/src/renderer.cpp +++ b/engine/renderer/src/renderer.cpp @@ -144,8 +144,8 @@ void renderer::resize_render_target(RenderTarget& target, const prism::Extent ex GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.label = "Text"; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("text.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("text.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("text.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("text.frag")); pipelineInfo.rasterization.primitive_type = GFXPrimitiveType::TriangleStrip; @@ -718,8 +718,8 @@ void renderer::create_mesh_pipeline(Material& material) const { GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.label = "Mesh"; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("mesh.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("mesh.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("mesh.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("mesh.frag")); pipelineInfo.shaders.vertex_constants = {materials_constant, lights_constant, spot_lights_constant, probes_constant}; pipelineInfo.shaders.fragment_constants = {materials_constant, lights_constant, spot_lights_constant, probes_constant}; @@ -814,8 +814,8 @@ void renderer::create_render_target_resources(RenderTarget& target) { GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.label = "Post"; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("post.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("post.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("post.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("post.frag")); pipelineInfo.shader_input.bindings = { {4, GFXBindingType::PushConstant}, @@ -841,8 +841,8 @@ void renderer::create_post_pipelines() { GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.label = "Post"; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("post.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("post.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("post.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("post.frag")); pipelineInfo.shader_input.bindings = { {4, GFXBindingType::PushConstant}, @@ -920,8 +920,8 @@ void renderer::create_ui_pipelines() { GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.label = "UI"; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("ui.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("ui.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("ui.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("ui.frag")); pipelineInfo.rasterization.primitive_type = GFXPrimitiveType::TriangleStrip; @@ -959,8 +959,8 @@ void renderer::generate_brdf() { GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.label = "BRDF"; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("brdf.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("brdf.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("brdf.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("brdf.frag")); pipelineInfo.render_pass = brdf_render_pass; @@ -1006,7 +1006,7 @@ void renderer::generate_brdf() { void renderer::create_histogram_resources() { GFXComputePipelineCreateInfo create_info = {}; - create_info.compute_src = ShaderSource(prism::Path("histogram.comp")); + create_info.compute_src = ShaderSource(prism::path("histogram.comp")); create_info.workgroup_size_x = 16; create_info.workgroup_size_y = 16; @@ -1022,7 +1022,7 @@ void renderer::create_histogram_resources() { histogram_pipeline = gfx->create_compute_pipeline(create_info); - create_info.compute_src = ShaderSource(prism::Path("histogram-average.comp")); + create_info.compute_src = ShaderSource(prism::path("histogram-average.comp")); create_info.workgroup_size_x = 256; create_info.workgroup_size_y = 1; @@ -1055,15 +1055,15 @@ ShaderSource renderer::register_shader(const std::string_view shader_file) { } } - prism::Path base_shader_path = get_shader_source_directory(); + prism::path base_shader_path = get_shader_source_directory(); // if shader editor system is not initialized, use prebuilt shaders if(base_shader_path.empty()) - return ShaderSource(prism::Path(shader_file)); + return ShaderSource(prism::path(shader_file)); shader_compiler.set_include_path(base_shader_path.string()); - prism::Path shader_path = prism::Path(shader_file); + prism::path shader_path = prism::path(shader_file); ShaderStage stage = ShaderStage::Vertex; if(shader_path.extension() == ".vert") diff --git a/engine/renderer/src/scenecapture.cpp b/engine/renderer/src/scenecapture.cpp index 355e09f..d4b4c46 100755 --- a/engine/renderer/src/scenecapture.cpp +++ b/engine/renderer/src/scenecapture.cpp @@ -407,8 +407,8 @@ void SceneCapture::createSkyResources() { pipelineInfo.label = "Sky Scene Capture"; pipelineInfo.render_pass = renderPass; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("sky.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("sky.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("sky.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("sky.frag")); pipelineInfo.shader_input.bindings = { {1, GFXBindingType::PushConstant} @@ -451,8 +451,8 @@ void SceneCapture::createIrradianceResources() { GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.label = "Irradiance Convolution"; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("irradiance.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("irradiance.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("irradiance.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("irradiance.frag")); GFXVertexInput input; input.stride = sizeof(Vector3); @@ -503,8 +503,8 @@ void SceneCapture::createPrefilterResources() { GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.label = "Prefilter"; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("filter.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("filter.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("filter.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("filter.frag")); pipelineInfo.shaders.fragment_constants = {size_constant}; diff --git a/engine/renderer/src/shadowpass.cpp b/engine/renderer/src/shadowpass.cpp index 0c1e02a..7909b2e 100755 --- a/engine/renderer/src/shadowpass.cpp +++ b/engine/renderer/src/shadowpass.cpp @@ -320,7 +320,7 @@ void ShadowPass::create_pipelines() { GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.shaders.vertex_constants = {point_light_max_constant}; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("shadow.vert")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("shadow.vert")); pipelineInfo.shaders.fragment_constants = { point_light_max_constant }; @@ -364,7 +364,7 @@ void ShadowPass::create_pipelines() { { pipelineInfo.label = "Point Shadow"; - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("omnishadow.frag")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("omnishadow.frag")); auto [static_pipeline, skinned_pipeline] = material_compiler.create_pipeline_permutations(pipelineInfo, true); diff --git a/engine/renderer/src/smaapass.cpp b/engine/renderer/src/smaapass.cpp index 5aa8bd6..5038aca 100755 --- a/engine/renderer/src/smaapass.cpp +++ b/engine/renderer/src/smaapass.cpp @@ -137,8 +137,8 @@ void SMAAPass::create_pipelines() { GFXGraphicsPipelineCreateInfo createInfo = {}; createInfo.label = "SMAA Edge"; - createInfo.shaders.vertex_src = ShaderSource(prism::Path("edge.vert")); - createInfo.shaders.fragment_src = ShaderSource(prism::Path("edge.frag")); + createInfo.shaders.vertex_src = ShaderSource(prism::path("edge.vert")); + createInfo.shaders.fragment_src = ShaderSource(prism::path("edge.frag")); createInfo.render_pass = render_pass; @@ -155,8 +155,8 @@ void SMAAPass::create_pipelines() { edge_pipeline = gfx->create_graphics_pipeline(createInfo); createInfo.label = "SMAA Blend"; - createInfo.shaders.vertex_src = ShaderSource(prism::Path("blend.vert")); - createInfo.shaders.fragment_src = ShaderSource(prism::Path("blend.frag")); + createInfo.shaders.vertex_src = ShaderSource(prism::path("blend.vert")); + createInfo.shaders.fragment_src = ShaderSource(prism::path("blend.frag")); createInfo.shader_input.bindings.push_back({3, GFXBindingType::Texture}); blend_pipeline = gfx->create_graphics_pipeline(createInfo); diff --git a/engine/shadercompiler/include/shadercompiler.hpp b/engine/shadercompiler/include/shadercompiler.hpp index 23fe502..38b6419 100755 --- a/engine/shadercompiler/include/shadercompiler.hpp +++ b/engine/shadercompiler/include/shadercompiler.hpp @@ -43,13 +43,13 @@ public: ShaderSource(const ShaderSource& rhs) : source (rhs.source) {} explicit ShaderSource(const std::string& source_string) : source(source_string) {} explicit ShaderSource(const std::vector& source_bytecode) : source(source_bytecode) {} - explicit ShaderSource(const prism::Path& shader_path) : source(shader_path) {} + explicit ShaderSource(const prism::path& shader_path) : source(shader_path) {} - std::variant> source; + std::variant> source; /// Returns a view of the shader source as a path. - [[nodiscard]] prism::Path as_path() const { - return std::get(source); + [[nodiscard]] prism::path as_path() const { + return std::get(source); } /// Returns a view of the shader source as plaintext. @@ -67,7 +67,7 @@ public: } [[nodiscard]] bool is_path() const { - return std::holds_alternative(source); + return std::holds_alternative(source); } [[nodiscard]] bool is_string() const { diff --git a/engine/utility/include/file_utils.hpp b/engine/utility/include/file_utils.hpp index 4fa704f..ce22941 100644 --- a/engine/utility/include/file_utils.hpp +++ b/engine/utility/include/file_utils.hpp @@ -3,12 +3,10 @@ #include #include -namespace prism { - using Path = std::filesystem::path; -} +#include "path.hpp" namespace prism::log { - inline void internal_format(std::string& msg, const prism::Path& arg) { + inline void internal_format(std::string& msg, const prism::path& arg) { auto pos = msg.find_first_of("{}"); msg.replace(pos, 2, arg.string()); } diff --git a/engine/utility/include/path.hpp b/engine/utility/include/path.hpp index c5e5a6f..6449dcb 100755 --- a/engine/utility/include/path.hpp +++ b/engine/utility/include/path.hpp @@ -3,5 +3,5 @@ #include namespace prism { - using Path = std::filesystem::path; + using path = std::filesystem::path; } diff --git a/platforms/sdl/file.cpp b/platforms/sdl/file.cpp index a8369d5..243b579 100644 --- a/platforms/sdl/file.cpp +++ b/platforms/sdl/file.cpp @@ -2,10 +2,10 @@ #include "string_utils.hpp" -void prism::set_domain_path(const prism::domain domain, const prism::Path path) { +void prism::set_domain_path(const prism::domain domain, const prism::path path) { domain_data[(int)domain] = replace_substring(path.string(), "{resource_dir}/", ""); } -prism::Path prism::get_writeable_directory() { +prism::path prism::get_writeable_directory() { return "~"; } diff --git a/tools/common/include/commoneditor.hpp b/tools/common/include/commoneditor.hpp index 1ac0e8c..907c8b8 100755 --- a/tools/common/include/commoneditor.hpp +++ b/tools/common/include/commoneditor.hpp @@ -188,7 +188,7 @@ public: } } - GFXTexture* get_asset_thumbnail(const prism::Path path) { + GFXTexture* get_asset_thumbnail(const prism::path path) { if(asset_thumbnails.count(path.string())) { return asset_thumbnails[path.string()]; } else { diff --git a/tools/common/src/commoneditor.cpp b/tools/common/src/commoneditor.cpp index 8cf2867..7558e6f 100755 --- a/tools/common/src/commoneditor.cpp +++ b/tools/common/src/commoneditor.cpp @@ -723,7 +723,7 @@ void CommonEditor::set_undo_stack(UndoStack *stack) { current_stack = stack; } -bool mesh_readable(const prism::Path path) { +bool mesh_readable(const prism::path path) { auto file = prism::open_file(path); if(!file.has_value()) { prism::log::error(System::Renderer, "Failed to load mesh from {}!", path); @@ -736,7 +736,7 @@ bool mesh_readable(const prism::Path path) { return version == 5 || version == 6; } -bool material_readable(const prism::Path path) { +bool material_readable(const prism::path path) { auto file = prism::open_file(path); if(!file.has_value()) { prism::log::error(System::Core, "Failed to load material from {}!", path); diff --git a/tools/common/src/debugpass.cpp b/tools/common/src/debugpass.cpp index 88a4273..a995070 100755 --- a/tools/common/src/debugpass.cpp +++ b/tools/common/src/debugpass.cpp @@ -21,8 +21,8 @@ void DebugPass::initialize() { { GFXGraphicsPipelineCreateInfo createInfo; - createInfo.shaders.vertex_src = ShaderSource(prism::Path("debug.vert")); - createInfo.shaders.fragment_src = ShaderSource(prism::Path("debug.frag")); + createInfo.shaders.vertex_src = ShaderSource(prism::path("debug.vert")); + createInfo.shaders.fragment_src = ShaderSource(prism::path("debug.frag")); GFXVertexInput vertexInput = {}; vertexInput.stride = sizeof(Vector3); @@ -69,8 +69,8 @@ void DebugPass::initialize() { // pipeline GFXGraphicsPipelineCreateInfo pipelineInfo = {}; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("color.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("color.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("color.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("color.frag")); GFXVertexInput input; input.stride = sizeof(Vector3); @@ -110,8 +110,8 @@ void DebugPass::initialize() { GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.label = "Sobel"; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("color.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("color.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("color.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("color.frag")); GFXVertexInput input; input.stride = sizeof(Vector3); @@ -142,8 +142,8 @@ void DebugPass::initialize() { GFXGraphicsPipelineCreateInfo pipelineInfo = {}; pipelineInfo.label = "Billboard"; - pipelineInfo.shaders.vertex_src = ShaderSource(prism::Path("billboard.vert")); - pipelineInfo.shaders.fragment_src = ShaderSource(prism::Path("billboard.frag")); + pipelineInfo.shaders.vertex_src = ShaderSource(prism::path("billboard.vert")); + pipelineInfo.shaders.fragment_src = ShaderSource(prism::path("billboard.frag")); pipelineInfo.shader_input.bindings = { {1, GFXBindingType::PushConstant}, diff --git a/tools/editor/include/prismeditor.hpp b/tools/editor/include/prismeditor.hpp index 2d77711..4f5162e 100755 --- a/tools/editor/include/prismeditor.hpp +++ b/tools/editor/include/prismeditor.hpp @@ -61,7 +61,7 @@ public: void asset_selected(std::filesystem::path path, AssetType type) override; private: - void open_asset(const prism::Path path); + void open_asset(const prism::path path); void setup_editor(Editor* editor); }; diff --git a/tools/editor/src/prismeditor.cpp b/tools/editor/src/prismeditor.cpp index cccfa36..3631dde 100755 --- a/tools/editor/src/prismeditor.cpp +++ b/tools/editor/src/prismeditor.cpp @@ -125,7 +125,7 @@ void PrismEditor::setup_editor(Editor* editor) { } -void PrismEditor::open_asset(const prism::Path path) { +void PrismEditor::open_asset(const prism::path path) { if(path.extension() == ".prefab") { PrefabEditor* editor = new PrefabEditor(); editor->path = path.string();