38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
#pragma once
|
|
#include "../architecture/Render_Data.h"
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <memory>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace renderive {
|
|
|
|
class Renderable;
|
|
using Renderable_Id = std::uint64_t;
|
|
|
|
struct Renderable_Frame_Node {
|
|
Renderable_Frame_Node() = default;
|
|
Renderable_Frame_Node(const Renderable_Frame_Node&) = delete;
|
|
Renderable_Frame_Node& operator=(const Renderable_Frame_Node&) = delete;
|
|
Renderable_Frame_Node(Renderable_Frame_Node&&) noexcept = default;
|
|
Renderable_Frame_Node& operator=(Renderable_Frame_Node&&) noexcept = default;
|
|
~Renderable_Frame_Node() = default;
|
|
|
|
std::shared_ptr<Renderable> renderable;
|
|
std::size_t subtree_end{};
|
|
Renderable_Id node_id{};
|
|
Renderable_Id parent_node_id{};
|
|
std::string parent_object_name;
|
|
int render_tree_depth{};
|
|
std::string object_name;
|
|
Renderable_Id cache_parent_node_id{};
|
|
std::string cache_parent_object_name;
|
|
int cache_tree_depth{};
|
|
bool frame_view_required{};
|
|
Renderable_Frame_View frame_view;
|
|
};
|
|
|
|
using Renderable_Frame_Tree = std::vector<Renderable_Frame_Node>;
|
|
} // namespace renderive
|