Life
Loading...
Searching...
No Matches
simulation.h
Go to the documentation of this file.
1#ifndef _GOL_SIMULATION_H
2#define _GOL_SIMULATION_H
3
4#include <stdint.h>
5
8
11
14
17typedef void *gol_handle;
18
22
25typedef int32_t gol_grid_scalar;
26
29typedef int32_t gol_bool;
30
33typedef uintptr_t gol_size;
34
37#define GOL_TRUE 1
38
41#define GOL_FALSE 0
42
43#ifdef __cplusplus
44extern "C" {
45#endif
46
55
65
75
79
88
97
109
129 gol_size *bytes, void *data);
130
142
159 const gol_grid_position *positions,
160 gol_cell *cells);
161
176 const gol_cell *cells);
177
192 gol_size *size, gol_cell *cells);
193
209 gol_size *size, gol_cell *cells);
210
223
224#ifdef __cplusplus
225}
226#endif
227#endif
gol_result gol_simulation_query_cells(gol_simulation simulation, gol_size size, const gol_grid_position *positions, gol_cell *cells)
Query cells at multiple positions.
gol_result gol_simulation_next_frame(gol_simulation simulation)
Progress simulation to next time step.
gol_result gol_simulation_query_property(gol_simulation simulation, gol_simulation_property_type property, gol_size *bytes, void *data)
Query simulation property.
gol_result gol_simulation_get_alive_cells(gol_simulation simulation, gol_size *size, gol_cell *cells)
Query all alive cells.
gol_handle gol_simulation
Handle for simulation resource.
Definition simulation.h:21
gol_result gol_simulation_destroy(gol_simulation simulation)
Destroys existing simulation.
gol_result
Defines possible operation results.
Definition simulation.h:49
gol_result gol_simulation_create(gol_simulation *simulation)
Creates new simulation.
gol_result gol_simulation_set_cells(gol_simulation simulation, gol_size size, const gol_cell *cells)
Update multiple simulation cells.
void * gol_handle
Generic opaque handle.
Definition simulation.h:17
int32_t gol_bool
Boolean type.
Definition simulation.h:29
uintptr_t gol_size
Type representing nonnegative size of collections.
Definition simulation.h:33
uint32_t gol_simulation_property_frame_count
Count of time steps processed by the simulation.
Definition simulation.h:78
gol_simulation_property_type
Lists available simulation properties.
Definition simulation.h:58
int32_t gol_grid_scalar
Position in single grid dimension.
Definition simulation.h:25
gol_result gol_simulation_get_updated_cells(gol_simulation simulation, gol_size *size, gol_cell *cells)
Query cells updated by the simulation in last time step.
@ GOL_RESULT_ERROR
Operation failed.
Definition simulation.h:51
@ GOL_RESULT_UNKNOWN_SIMULATION_PROPERTY
Operation failed because of unknown simulation property.
Definition simulation.h:52
@ GOL_RESULT_SUCCESS
Operation succeded.
Definition simulation.h:50
@ GOL_SIMULATION_PROPERTY_TYPE_GRID_ACCESS_PROFILING
Definition simulation.h:61
@ GOL_SIMULATION_PROPERTY_TYPE_FRAME_COUNT
Property type for gol_simulation_property_frame_count.
Definition simulation.h:59
Cell at certain position that can be either dead or alive.
Definition simulation.h:91
gol_bool is_alive
Determines if cell is alive or dead.
Definition simulation.h:95
gol_grid_position pos
Cell's position.
Definition simulation.h:93
Position in 2D simulation grid.
Definition simulation.h:82
gol_grid_scalar y
Position in y dimension.
Definition simulation.h:86
gol_grid_scalar x
Position in x dimension.
Definition simulation.h:84
Statistics collected per frame about access to grid cells.
Definition simulation.h:68
uint32_t miss_count
Count of accesses that returned cell other than the requested one.
Definition simulation.h:73
uint32_t hit_count
Count of accesses that returned requested cell.
Definition simulation.h:70