Files
Renderive/Core/render/Renderable_Frame_Node.h
T
2026-08-02 20:25:59 +08:00

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