1#ifndef __H__SYSTEMS_REQUIRE__
2#define __H__SYSTEMS_REQUIRE__
4#include "../engine/entity.h"
5#include "../engine/input.h"
6#include "../engine/world.h"
8#include "../rendering/context.h"
28 return "FIXED_UPDATE";
44#define SYSTEM_REQ_PTR_REQUIRED ((void *)1)
47#define SYSTEM_REQ_PTR_UNUSED ((void *)0)
49#define SYSTEM_REQ_NO_DEPS 0, 0
90 ASSERT_(parent.
world,
"world_t expected in parent, but not filled in");
96 "rendering_ctx_t expected in parent, but not filled in");
101 ASSERT_(parent.
input,
"input_t expected in parent, but not filled in");
129 "World must be requested to retrieve the entity iterator");
#define ASSERT(expr, msg,...)
Definition defs.h:35
#define ASSERT_(expr, msg)
Definition defs.h:29
uint32_t u32
Definition defs.h:45
entity_kind_t
Definition entity.h:34
entity_kind_t entity_kind_mask_t
Definition entity.h:42
u64 name_t
Definition names.h:14
static void system_req_fill_in(system_req_t *target, const system_req_t parent)
Definition require.h:87
static system_req_t system_req_new()
Definition require.h:71
static entity_iter_t system_req_entity_iter(system_req_t *req)
Definition require.h:127
static void system_req_entity_kinds_mut(system_req_t *req, entity_kind_mask_t entity_kind_mask)
Definition require.h:120
static const char * system_phase_to_str(system_phase_t phase)
Definition require.h:21
static void system_req_entity_kinds_const(system_req_t *req, entity_kind_mask_t entity_kind_mask)
Definition require.h:114
system_phase_t
Definition require.h:10
@ SYSTEM_PHASE_UPDATE
Definition require.h:12
@ SYSTEM_PHASE_count
Definition require.h:18
@ SYSTEM_PHASE_POST_UPDATE
Definition require.h:14
@ SYSTEM_PHASE_PRE_RENDER
Definition require.h:15
@ SYSTEM_PHASE_RENDER
Definition require.h:16
@ SYSTEM_PHASE_POST_RENDER
Definition require.h:17
@ SYSTEM_PHASE_FIXED_UPDATE
Definition require.h:13
@ SYSTEM_PHASE_PRE_UPDATE
Definition require.h:11
name_t name
Definition require.h:53
double fixed_delta_time
Definition require.h:66
input_t * input
Definition require.h:62
entity_kind_mask_t _entity_kinds_const
Definition require.h:55
system_phase_t phase
Definition require.h:52
u32 depends_on_count
Definition require.h:58
void * system_specific_data
Definition require.h:60
entity_kind_mask_t _entity_kinds_mut
Definition require.h:54
double delta_time
Definition require.h:65
name_t * depends_on
Definition require.h:57
rendering_ctx_t * rendering_ctx
Definition require.h:63
world_t * world
Definition require.h:61
bool pin_to_main
Definition require.h:68
static entity_iter_t world_entity_iter_masked(world_t *world, entity_kind_mask_t mask)
Definition world.h:127