GoldFish Engine
Quite simple and lightweight game engine
Loading...
Searching...
No Matches
gf_physics.c
1#define GF_EXPOSE_PHYSICS
2
3#include <gf_pre.h>
4
5/* External library */
6#include <ode/ode.h>
7
8/* Interface */
9#include <gf_physics.h>
10
11/* Engine */
12#include <gf_log.h>
13
14/* Standard */
15#include <stdlib.h>
16
17void gf_physics_begin(void) { dInitODE(); }
18
19void gf_physics_end(void) { dCloseODE(); }
20
21gf_physics_t* gf_physics_create(gf_engine_t* engine) {
22 gf_physics_t* physics = malloc(sizeof(*physics));
23 physics->engine = engine;
24 physics->id = dWorldCreate();
25 dWorldSetGravity(physics->id, 0, 0, -9.81);
26 return physics;
27}
28
29void gf_physics_destroy(gf_physics_t* physics) {
30 dWorldDestroy(physics->id);
31 gf_log_function(physics->engine, "Destroyed physics interface", "");
32 free(physics);
33}
Logger.
#define gf_log_function(engine, fmt,...)
Output log with line number and function name.
Definition gf_log.h:26
Physics interface.
Required headers before anything.
Engine instance.
Definition core.h:46
Physics interface.
Definition physics.h:38
gf_engine_t * engine
Engine instance.
Definition physics.h:38
dWorldID id
ODE's world ID.
Definition physics.h:38