From 2b2d374eb642edf345f93fa559e8cd7d76a0c9d1 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Sun, 26 Jan 2025 22:14:47 +0100 Subject: Fix mesh loading for new API --- include/gltf.hpp | 5 +++++ include/material.hpp | 9 +++++++++ include/mesh.hpp | 10 ++++++++++ include/scene.hpp | 22 ++++++++++++++++++++++ include/vec3.hpp | 9 +++++++-- 5 files changed, 53 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/gltf.hpp b/include/gltf.hpp index 6e89509..1ccaf56 100644 --- a/include/gltf.hpp +++ b/include/gltf.hpp @@ -49,7 +49,12 @@ private: json gltf_json; std::vector meshes; std::vector materials; +#ifdef API_TEST + std::vector> textures; + // handle samplers; +#else std::vector textures; +#endif // API_TEST std::vector> buffers; }; diff --git a/include/material.hpp b/include/material.hpp index 71dd4ca..35710d2 100644 --- a/include/material.hpp +++ b/include/material.hpp @@ -4,12 +4,21 @@ #include "vec3.hpp" +#ifdef API_TEST +#include "vk-device-types.hpp" +#else class Texture; +#endif struct material { color base_color; +#ifdef API_TEST + handle base_color_texture; + handle metallic_roughness_texture; +#else Texture* base_color_texture; Texture* metallic_roughness_texture; +#endif // API_TEST float metalness = 1.f; float roughness = 1.f; }; diff --git a/include/mesh.hpp b/include/mesh.hpp index 9a30be6..b88896d 100644 --- a/include/mesh.hpp +++ b/include/mesh.hpp @@ -4,7 +4,11 @@ #include #include +#ifdef API_TEST +#include "vk-device-types.hpp" +#else #include "vk-renderer.hpp" +#endif // API_TEST enum ATTRIBUTE_TYPE { POSITION, @@ -89,9 +93,15 @@ private: std::vector submeshes; struct gpu_mesh { +#ifdef API_TEST + std::array, ATTRIBUTE_TYPE::MAX_ATTRIBUTE> attributes; + const device_buffer& indices; + const device_buffer& submeshes; +#else std::array attributes; Buffer* indices; Buffer* submeshes; +#endif // API_TEST }; // allocate gpu mesh upon instanciation diff --git a/include/scene.hpp b/include/scene.hpp index 78b90b7..ad298da 100644 --- a/include/scene.hpp +++ b/include/scene.hpp @@ -3,6 +3,10 @@ #include +#ifdef API_TEST +#include "vk-device-types.hpp" +#include "vk-device.hpp" +#endif // API_TEST #include "camera.hpp" class Buffer; @@ -33,6 +37,23 @@ public: metadata meta; +#ifdef API_TEST + handle scene_buffer_handle; + handle indices_buffer_handle; + handle positions_buffer_handle; + handle normals_buffer_handle; + handle uvs_buffer_handle; + handle bvh_buffer_handle; + handle materials_buffer_handle; + + uint64_t scene_buffer_address() { return vkdevice::get_render_device().get_buffer(scene_buffer_handle).device_address; }; + uint64_t indices_buffer_address() { return vkdevice::get_render_device().get_buffer(indices_buffer_handle).device_address; }; + uint64_t positions_buffer_address() { return vkdevice::get_render_device().get_buffer(positions_buffer_handle).device_address; }; + uint64_t normals_buffer_address() { return vkdevice::get_render_device().get_buffer(normals_buffer_handle).device_address; }; + uint64_t uvs_buffer_address() { return vkdevice::get_render_device().get_buffer(uvs_buffer_handle).device_address; }; + uint64_t bvh_buffer_address() { return vkdevice::get_render_device().get_buffer(bvh_buffer_handle).device_address; }; + uint64_t materials_buffer_address() { return vkdevice::get_render_device().get_buffer(materials_buffer_handle).device_address; }; +#else Buffer* scene_buffer; Buffer* indices_buffer; Buffer* positions_buffer; @@ -40,6 +61,7 @@ public: Buffer* uvs_buffer; Buffer* bvh_buffer; Buffer* materials_buffer; +#endif // API_TEST }; #endif // !__SCENE_HPP_ diff --git a/include/vec3.hpp b/include/vec3.hpp index 75b67d2..968f3ed 100644 --- a/include/vec3.hpp +++ b/include/vec3.hpp @@ -6,8 +6,10 @@ struct vec3u { union { - uint32_t vec[3]; - uint32_t x, y, z; + uint32_t arr[3]; + struct { + uint32_t x, y, z; + } vec; }; }; @@ -36,6 +38,9 @@ class vec3 { vec3 operator>(const vec3& vec) const; + [[nodiscard]]vec3 (min)(const vec3& vec) const; + [[nodiscard]]vec3 (max)(const vec3& vec) const; + float operator[](int axis); [[nodiscard]] float length() const; -- cgit v1.3