fogd-engine/src/core/scene.h
Sara ba614edd29 feat: defined various core engine concepts
- Scene Tree
- Engine loop
- Draw list
- Renderables
- Resources
2024-09-10 22:09:46 +02:00

28 lines
978 B
C

#pragma once
#include "stddef.h"
#include "utils/typeclass_helpers.h"
typedef struct SceneNodeEntity SceneNodeEntity;
typedef struct SceneNode SceneNode;
typedef struct Scene Scene;
//! Instantiate a new scene node.
extern SceneNode *CreateSceneNode();
//! Free a scene node.
extern void DestroySceneNode(SceneNode *self);
//! Get a child from a scene node.
extern SceneNode *SceneNodeGetChild(SceneNode *self, size_t idx);
//! Attach a child to a node
extern void SceneNodeAddChild(SceneNode *self, SceneNode *child);
//! Detach a child from a node, removing it from the scene
extern void SceneNodeRemoveChild(SceneNode *self, SceneNode *child);
//! INTERNAL FUNCTION, used to attach a scene node entity typeclass to an object.
extern void Internal_SceneNodeAttachEntity(SceneNodeEntity object);
//! Instantiate a new scene with a root node.
extern Scene *CreateScene(SceneNode const *root);
//! Destroy a node and it's scene tree.
extern void DestroyScene(Scene *scene);