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
107 double dt,
double fdt) {
129 bool needs_system_specific_ptr =
203 "World must be requested to retrieve the entity iterator");
#define ASSERT__(expr)
Definition defs.h:21
#define ASSERT_(expr, msg)
Definition defs.h:29
uint32_t u32
Definition defs.h:45
entity_kind_t
Definition entity.h:33
entity_kind_t entity_kind_mask_t
Definition entity.h:41
u64 name_t
Definition names.h:14
static entity_iter_t system_payload_entity_iter(system_payload_t *payload)
Definition require.h:201
static void system_req_entity_kinds_mut(system_req_t *req, entity_kind_mask_t entity_kind_mask)
Definition require.h:194
static system_payload_t system_payload_new_inherit(system_req_t requirements, system_payload_t *parent)
Copy the parameters specified in the requirements into a new payload.
Definition require.h:127
void(* system_runner_f)(system_payload_t payload, allocator_t temporary_allocator)
Definition require.h:64
static const char * system_phase_to_str(system_phase_t phase)
Definition require.h:21
static system_payload_t system_payload_new(world_t *world, input_t *input, rendering_ctx_t *rendering_ctx, double dt, double fdt)
Definition require.h:105
static void system_req_entity_kinds_const(system_req_t *req, entity_kind_mask_t entity_kind_mask)
Definition require.h:188
system_resource_mask_t
Definition require.h:67
@ SYSTEM_RESOURCE_MASK_WORLD
Definition require.h:68
@ SYSTEM_RESOURCE_MASK_SYSTEM_SPECIFIC_DATA
Definition require.h:71
@ SYSTEM_RESOURCE_MASK_RENDERING_CONTEXT
Definition require.h:70
@ SYSTEM_RESOURCE_MASK_INPUT
Definition require.h:69
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
static system_req_t system_req_new(name_t name, system_resource_mask_t resources)
Definition require.h:169
A generic allocator type passed by value. Contains a fallback allocator and a set of function pointer...
Definition memory.h:30
double fixed_delta_time
Definition require.h:61
input_t * input
Definition require.h:54
entity_kind_mask_t _entity_kinds_const
Definition require.h:58
void * system_specific_data
Definition require.h:52
entity_kind_mask_t _entity_kinds_mut
Definition require.h:57
double delta_time
Definition require.h:60
rendering_ctx_t * rendering_ctx
Definition require.h:55
world_t * world
Definition require.h:53
system_resource_mask_t resources
Definition require.h:83
name_t name
Definition require.h:76
entity_kind_mask_t _entity_kinds_const
Definition require.h:78
system_phase_t phase
Definition require.h:75
u32 depends_on_count
Definition require.h:81
void * system_specific_data
Definition require.h:84
entity_kind_mask_t _entity_kinds_mut
Definition require.h:77
name_t * depends_on
Definition require.h:80
bool pin_to_main
Definition require.h:86
system_resource_mask_t resources
Definition require.h:99
entity_kind_mask_t entities_mut
Definition require.h:94
system_phase_t phase
Definition require.h:91
const char ** dependencies
Definition require.h:96
entity_kind_mask_t entities_const
Definition require.h:93
const char * name
Definition require.h:90
system_runner_f runner
Definition require.h:102
u32 dependency_count
Definition require.h:97
bool pin_to_main
Definition require.h:100
static world_t world
Definition world.c:5
static entity_iter_t world_entity_iter_masked(world_t *world, entity_kind_mask_t mask)
Definition world.h:127