summaryrefslogtreecommitdiff
path: root/api.c
diff options
context:
space:
mode:
authorGravatar Matthew Wozniak <me@woz.blue> 2024-10-27 23:28:51 -0400
committerGravatar Matthew Wozniak <me@woz.blue> 2024-10-27 23:28:51 -0400
commitfb95177298bb92098b61f09b9f66c1fce32f2f02 (patch)
treec73b45c91f145dca7d055a1cde1f4efaa6db8da6 /api.c
parent36b6d84ee4b520bdf43891ea86df03cf660cb464 (diff)
downloadrt-master.tar.gz
rt-master.zip
add hooking and IVEngineServer interfaceHEADmaster
Diffstat (limited to 'api.c')
-rw-r--r--api.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/api.c b/api.c
new file mode 100644
index 0000000..af7bb5e
--- /dev/null
+++ b/api.c
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: ISC
+// SPDX-FileCopyrightText: 2024 Matthew Wozniak <me@woz.blue>
+
+#define NO_EXTERNS
+#include "api.h"
+#undef NO_EXTERNS
+#include "os.h"
+#include "log.h"
+
+struct engserver *engserver;
+
+void api_init() {
+ void *engine_dll = os_dlopen("engine");
+ createinterface_func engine_factory =
+ (createinterface_func)os_dlsym(engine_dll, "CreateInterface");
+ if (!engine_factory) die("couldn't get engine factory");
+ engserver = engine_factory(INTERFACEVERSION_VENGINESERVER, NULL);
+ if (!engserver) die("couldn't get IVEngineServer from engine");
+}
+
+// vi: sw=4 ts=4 noet tw=80 cc=80