GoldFish Engine
Quite simple and lightweight game engine
Loading...
Searching...
No Matches
gf_version.c
1#include <gf_pre.h>
2
3/* External library */
4#include <lua.h>
5#include <zlib.h>
6
7/* Interface */
8#include <gf_version.h>
9
10/* Engine */
11
12/* Standard */
13#include <string.h>
14#include <stdlib.h>
15
16#define GF_VERSION "1.0.0"
17
18void gf_version_get(gf_version_t* version) {
19 char* cpstr = malloc(512);
20 int i;
21 int incr = 0;
22 int old = 0;
23
24 strcpy(version->date, __DATE__);
25
26 strcpy(version->full, GF_VERSION);
27 strcpy(version->zlib, ZLIB_VERSION);
28
29 strcpy(cpstr, LUA_RELEASE);
30 strcpy(version->lua, cpstr + 4);
31
32#if defined(DRV_OPENGL)
33 strcpy(version->driver, "OpenGL");
34#if defined(USE_GLX)
35 strcpy(version->backend, "GLX");
36#elif defined(USE_WGL)
37 strcpy(version->backend, "WGL");
38#elif defined(USE_GLFW)
39 strcpy(version->backend, "GLFW");
40#endif
41#endif
42
43#if defined(DRV_DIRECTX)
44 strcpy(version->driver, "DirectX");
45#if defined(USE_DX11)
46 strcpy(version->backend, "DirectX 11");
47#endif
48#endif
49
50#if defined(THREAD_WIN32)
51 strcpy(version->thread, "Win32");
52#elif defined(THREAD_POSIX)
53 strcpy(version->thread, "POSIX");
54#endif
55
56 strcpy(cpstr, GF_VERSION);
57 for(i = 0;; i++) {
58 if(cpstr[i] == '.' || cpstr[i] == 0) {
59 int num;
60 cpstr[i] = 0;
61 num = atoi(cpstr + old);
62 if(incr == 0) {
63 version->major = num;
64 } else if(incr == 1) {
65 version->minor = num;
66 } else if(incr == 2) {
67 version->patch = num;
68 }
69 old = i + 1;
70 incr++;
71 if(incr == 3) break;
72 }
73 }
74}
Required headers before anything.
Version.
Version.
Definition version.h:68
int major
Major version.
Definition version.h:68
char backend[32]
Name of the rendering backend.
Definition version.h:68
char zlib[32]
zlib version
Definition version.h:68
int patch
Patch version.
Definition version.h:68
int minor
Minor version.
Definition version.h:68
char full[64]
Full version.
Definition version.h:68
char driver[32]
Name of the rendering driver.
Definition version.h:68
char date[64]
Build date.
Definition version.h:68
char thread[32]
Name of the thread model used.
Definition version.h:68
char lua[32]
Lua version.
Definition version.h:68