SDEngine
Game Engine
Loading...
Searching...
No Matches
LayerNode.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vulkan/vulkan.hpp>
4
7#include "SD/core/types.hpp"
8
9namespace sd {
10
11struct Application;
12struct Scene;
13struct View;
14
15struct LayerNode {
16 void* data = nullptr;
18
19 bool is_active = true;
20 const char* debug_name = nullptr;
21 Scene* scene = nullptr;
22 Application* app = nullptr;
23 int stage_id = 0;
25 View* view = nullptr;
26
27 void (*destroy_fn)(void*) = nullptr;
28 void (*on_attach_fn)(void*) = nullptr;
29 void (*on_detach_fn)(void*) = nullptr;
30 void (*on_activate_fn)(void*) = nullptr;
31 void (*on_deactivate_fn)(void*) = nullptr;
32 void (*on_event_fn)(void*, EventVariant&) = nullptr;
33 void (*on_update_fn)(void*, float) = nullptr;
34 void (*on_fixed_update_fn)(void*, double) = nullptr;
35 void (*on_render_fn)(void*, vk::CommandBuffer) = nullptr;
36 void (*on_gui_render_fn)(void*) = nullptr;
37 void (*on_im_gui_menu_bar_fn)(void*) = nullptr;
38 void (*on_swapchain_recreated_fn)(void*) = nullptr;
39 void (*on_shader_reload_fn)(void*) = nullptr;
40
41 void on_attach() const {
42 if (on_attach_fn)
44 }
45 void on_detach() const {
46 if (on_detach_fn)
48 }
49 void on_activate() const {
52 }
53 void on_deactivate() const {
56 }
57 void on_event(EventVariant& e) const {
58 if (on_event_fn)
60 }
61 void on_update(float dt) const {
62 if (on_update_fn)
64 }
65 void on_fixed_update(double dt) const {
68 }
69 void on_render(vk::CommandBuffer cmd) const {
70 if (on_render_fn)
72 }
73 void on_gui_render() const {
76 }
89};
90
91} // namespace sd
Definition Application.hpp:22
Definition Application.hpp:42
Definition EventVariant.hpp:19
Definition LayerNode.hpp:15
void(* on_event_fn)(void *, EventVariant &)
Definition LayerNode.hpp:32
void on_activate() const
Definition LayerNode.hpp:49
void(* on_detach_fn)(void *)
Definition LayerNode.hpp:29
void(* on_update_fn)(void *, float)
Definition LayerNode.hpp:33
void on_attach() const
Definition LayerNode.hpp:41
void(* on_fixed_update_fn)(void *, double)
Definition LayerNode.hpp:34
void(* on_attach_fn)(void *)
Definition LayerNode.hpp:28
void on_gui_render() const
Definition LayerNode.hpp:73
void on_update(float dt) const
Definition LayerNode.hpp:61
void(* on_deactivate_fn)(void *)
Definition LayerNode.hpp:31
void * data
Definition LayerNode.hpp:16
bool is_active
Definition LayerNode.hpp:19
const char * debug_name
Definition LayerNode.hpp:20
void(* on_render_fn)(void *, vk::CommandBuffer)
Definition LayerNode.hpp:35
void(* on_swapchain_recreated_fn)(void *)
Definition LayerNode.hpp:38
void(* on_im_gui_menu_bar_fn)(void *)
Definition LayerNode.hpp:37
void on_render(vk::CommandBuffer cmd) const
Definition LayerNode.hpp:69
U64 type_id
Definition LayerNode.hpp:17
void on_fixed_update(double dt) const
Definition LayerNode.hpp:65
Application * app
Definition LayerNode.hpp:22
void on_swapchain_recreated() const
Definition LayerNode.hpp:81
void(* on_shader_reload_fn)(void *)
Definition LayerNode.hpp:39
void(* destroy_fn)(void *)
Definition LayerNode.hpp:27
void on_event(EventVariant &e) const
Definition LayerNode.hpp:57
void on_detach() const
Definition LayerNode.hpp:45
void(* on_gui_render_fn)(void *)
Definition LayerNode.hpp:36
Scene * scene
Definition LayerNode.hpp:21
int stage_id
Definition LayerNode.hpp:23
View * view
Definition LayerNode.hpp:25
ViewId view_id
Definition LayerNode.hpp:24
void on_shader_reload() const
Definition LayerNode.hpp:85
void(* on_activate_fn)(void *)
Definition LayerNode.hpp:30
void on_deactivate() const
Definition LayerNode.hpp:53
void on_im_gui_menu_bar() const
Definition LayerNode.hpp:77
Definition Scene.hpp:9
Definition id_types.hpp:7
Definition View.hpp:55
consteval U64 type_id_of()
Definition type_id.hpp:6
std::uint64_t U64
Definition types.hpp:16