a
This commit is contained in:
parent
4b0a924184
commit
247661fc13
22 changed files with 325 additions and 8 deletions
|
|
@ -5,13 +5,15 @@ include(GNUInstallDirs)
|
||||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
|
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
|
||||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||||
|
|
||||||
|
include_directories(external/stb)
|
||||||
|
|
||||||
add_subdirectory(external/milsko)
|
add_subdirectory(external/milsko)
|
||||||
|
|
||||||
add_subdirectory(engine)
|
add_subdirectory(engine)
|
||||||
|
|
||||||
include_directories(external/stb)
|
add_subdirectory(client)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
FILES resource/logo.png resource/font.png
|
FILES resource/logo.png
|
||||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/assaultfish
|
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/assaultfish
|
||||||
)
|
)
|
||||||
|
|
|
||||||
8
client/CMakeLists.txt
Normal file
8
client/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
project(af_client)
|
||||||
|
|
||||||
|
file(GLOB af_client_SRC *.c)
|
||||||
|
|
||||||
|
add_executable(af_client ${af_client_SRC})
|
||||||
|
target_link_libraries(af_client PRIVATE GearBox)
|
||||||
|
|
||||||
|
install_target(af_client)
|
||||||
14
client/main.c
Normal file
14
client/main.c
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#include <GearBox/Foundation.h>
|
||||||
|
|
||||||
|
int main(int argc, char** argv){
|
||||||
|
GBEngineParam param;
|
||||||
|
GBEngine engine;
|
||||||
|
|
||||||
|
param.server = 0;
|
||||||
|
param.client = 1;
|
||||||
|
|
||||||
|
GBInit();
|
||||||
|
|
||||||
|
engine = GBEngineCreate(¶m);
|
||||||
|
GBEngineLoop(engine);
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
cmake_minimum_required(VERSION 3.11)
|
cmake_minimum_required(VERSION 3.11)
|
||||||
project(assaultfish)
|
project(gearbox)
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
|
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
|
||||||
|
|
@ -17,11 +17,18 @@ endmacro()
|
||||||
add_subdirectory(external/glad)
|
add_subdirectory(external/glad)
|
||||||
|
|
||||||
add_subdirectory(net)
|
add_subdirectory(net)
|
||||||
add_subdirectory(common)
|
|
||||||
|
file(GLOB GearBox_SRC src/*.c)
|
||||||
|
|
||||||
|
add_library(GearBox SHARED ${GearBox_SRC})
|
||||||
|
target_include_directories(GearBox PUBLIC include)
|
||||||
|
target_compile_definitions(GearBox PRIVATE _GEARBOX)
|
||||||
|
|
||||||
|
install_target(GearBox)
|
||||||
|
|
||||||
add_subdirectory(tools)
|
add_subdirectory(tools)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
FILES resource/shadow.vs resource/shadow.fs
|
FILES resource/shadow.vs resource/shadow.fs
|
||||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gearbox
|
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/GearBox
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
#include <gearbox.h>
|
|
||||||
18
engine/include/GearBox/Client.h
Normal file
18
engine/include/GearBox/Client.h
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
#ifndef __GEARBOX_CLIENT_H__
|
||||||
|
#define __GEARBOX_CLIENT_H__
|
||||||
|
|
||||||
|
#include <GearBox/MachDep.h>
|
||||||
|
#include <GearBox/TypeDefs.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GBDECL GBClient GBClientCreate(GBEngine engine);
|
||||||
|
GBDECL void GBClientDestroy(GBClient client);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
21
engine/include/GearBox/Core.h
Normal file
21
engine/include/GearBox/Core.h
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
#ifndef __GEARBOX_CORE_H__
|
||||||
|
#define __GEARBOX_CORE_H__
|
||||||
|
|
||||||
|
#include <GearBox/MachDep.h>
|
||||||
|
#include <GearBox/TypeDefs.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GBDECL void GBInit(void);
|
||||||
|
GBDECL GBEngine GBEngineCreate(GBEngineParam* param);
|
||||||
|
GBDECL void GBEngineDestroy(GBEngine engine);
|
||||||
|
GBDECL void GBEngineStart(GBEngine engine);
|
||||||
|
GBDECL void GBEngineLoop(GBEngine engine);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
13
engine/include/GearBox/Foundation.h
Normal file
13
engine/include/GearBox/Foundation.h
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#ifndef __GEARBOX_FOUNDATION_H__
|
||||||
|
#define __GEARBOX_FOUNDATION_H__
|
||||||
|
|
||||||
|
#include <GearBox/MachDep.h>
|
||||||
|
#include <GearBox/TypeDefs.h>
|
||||||
|
|
||||||
|
#include <GearBox/Core.h>
|
||||||
|
#include <GearBox/Version.h>
|
||||||
|
#include <GearBox/Log.h>
|
||||||
|
#include <GearBox/Client.h>
|
||||||
|
#include <GearBox/Server.h>
|
||||||
|
|
||||||
|
#endif
|
||||||
23
engine/include/GearBox/Log.h
Normal file
23
engine/include/GearBox/Log.h
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
#ifndef __GEARBOX_LOG_H__
|
||||||
|
#define __GEARBOX_LOG_H__
|
||||||
|
|
||||||
|
#include <GearBox/MachDep.h>
|
||||||
|
#include <GearBox/TypeDefs.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
enum GBLogLevel {
|
||||||
|
GBLogInfo = 0,
|
||||||
|
GBLogWarn,
|
||||||
|
GBLogError
|
||||||
|
};
|
||||||
|
|
||||||
|
GBDECL void GBLog(int level, const char* fmt, ...);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
17
engine/include/GearBox/MachDep.h
Normal file
17
engine/include/GearBox/MachDep.h
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
#ifndef __GEARBOX_MACHDEP_H__
|
||||||
|
#define __GEARBOX_MACHDEP_H__
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
#if defined(_MILSKO) && defined(_WIN32)
|
||||||
|
#define GBDECL extern __declspec(dllexport)
|
||||||
|
#elif defined(_WIN32)
|
||||||
|
#define GBDECL extern __declspec(dllimport)
|
||||||
|
#else
|
||||||
|
#define GBDECL extern
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
18
engine/include/GearBox/Server.h
Normal file
18
engine/include/GearBox/Server.h
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
#ifndef __GEARBOX_SERVER_H__
|
||||||
|
#define __GEARBOX_SERVER_H__
|
||||||
|
|
||||||
|
#include <GearBox/MachDep.h>
|
||||||
|
#include <GearBox/TypeDefs.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GBDECL GBServer GBServerCreate(GBEngine engine);
|
||||||
|
GBDECL void GBServerDestroy(GBServer server);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
41
engine/include/GearBox/TypeDefs.h
Normal file
41
engine/include/GearBox/TypeDefs.h
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
#ifndef __GEARBOX_TYPEDEFS_H__
|
||||||
|
#define __GEARBOX_TYPEDEFS_H__
|
||||||
|
|
||||||
|
typedef struct _GBVersion GBVersion;
|
||||||
|
typedef struct _GBEngineParam GBEngineParam;
|
||||||
|
#ifdef _GEARBOX
|
||||||
|
typedef struct _GBClient* GBClient;
|
||||||
|
typedef struct _GBServer* GBServer;
|
||||||
|
typedef struct _GBEngine* GBEngine;
|
||||||
|
#else
|
||||||
|
typedef void* GBClient;
|
||||||
|
typedef void* GBServer;
|
||||||
|
typedef void* GBEngine;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _GEARBOX
|
||||||
|
struct _GBClient {
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GBServer {
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GBEngine {
|
||||||
|
GBClient client;
|
||||||
|
GBServer server;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct _GBVersion {
|
||||||
|
char string[64];
|
||||||
|
int majorlevel;
|
||||||
|
int minorlevel;
|
||||||
|
int patchlevel;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GBEngineParam {
|
||||||
|
int client;
|
||||||
|
int server;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
17
engine/include/GearBox/Version.h
Normal file
17
engine/include/GearBox/Version.h
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
#ifndef __GEARBOX_VERSION_H__
|
||||||
|
#define __GEARBOX_VERSION_H__
|
||||||
|
|
||||||
|
#include <GearBox/MachDep.h>
|
||||||
|
#include <GearBox/TypeDefs.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GBDECL void GBVersionGet(GBVersion* version);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -2,7 +2,6 @@ cmake_minimum_required(VERSION 3.11)
|
||||||
project(gbnet)
|
project(gbnet)
|
||||||
|
|
||||||
add_library(gbnet SHARED src/client.c src/server.c src/socket.c src/stb_ds.c)
|
add_library(gbnet SHARED src/client.c src/server.c src/socket.c src/stb_ds.c)
|
||||||
|
|
||||||
target_include_directories(gbnet PUBLIC include)
|
target_include_directories(gbnet PUBLIC include)
|
||||||
|
|
||||||
find_package(PkgConfig)
|
find_package(PkgConfig)
|
||||||
|
|
|
||||||
13
engine/src/client.c
Normal file
13
engine/src/client.c
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#include <GearBox/Client.h>
|
||||||
|
|
||||||
|
#include <GearBox/Log.h>
|
||||||
|
|
||||||
|
GBClient GBClientCreate(GBEngine engine) {
|
||||||
|
GBLog(GBLogInfo, "Creating client");
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GBClientDestroy(GBClient client) {
|
||||||
|
free(client);
|
||||||
|
}
|
||||||
55
engine/src/core.c
Normal file
55
engine/src/core.c
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
#include <GearBox/Core.h>
|
||||||
|
|
||||||
|
#include <GearBox/Version.h>
|
||||||
|
#include <GearBox/Log.h>
|
||||||
|
#include <GearBox/Client.h>
|
||||||
|
#include <GearBox/Server.h>
|
||||||
|
|
||||||
|
void GBInit(void) {
|
||||||
|
GBVersion version;
|
||||||
|
|
||||||
|
GBVersionGet(&version);
|
||||||
|
|
||||||
|
GBLog(GBLogInfo, "GearBox Engine %s", version.string);
|
||||||
|
}
|
||||||
|
|
||||||
|
GBEngine GBEngineCreate(GBEngineParam* param) {
|
||||||
|
GBEngine engine = malloc(sizeof(*engine));
|
||||||
|
|
||||||
|
memset(engine, 0, sizeof(*engine));
|
||||||
|
|
||||||
|
if(engine != NULL && param->client && (engine->client = GBClientCreate(engine)) == NULL) {
|
||||||
|
GBLog(GBLogError, "Failed to create client");
|
||||||
|
|
||||||
|
GBEngineDestroy(engine);
|
||||||
|
|
||||||
|
engine = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(engine != NULL && param->server && (engine->server = GBServerCreate(engine)) == NULL) {
|
||||||
|
GBLog(GBLogError, "Failed to create server");
|
||||||
|
|
||||||
|
GBEngineDestroy(engine);
|
||||||
|
|
||||||
|
engine = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(engine == NULL) {
|
||||||
|
GBLog(GBLogError, "Failed to create engine");
|
||||||
|
}
|
||||||
|
|
||||||
|
return engine;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GBEngineDestroy(GBEngine engine) {
|
||||||
|
if(engine->server != NULL) GBServerDestroy(engine->server);
|
||||||
|
if(engine->client != NULL) GBClientDestroy(engine->client);
|
||||||
|
|
||||||
|
free(engine);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GBEngineStart(GBEngine engine) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void GBEngineLoop(GBEngine engine) {
|
||||||
|
}
|
||||||
27
engine/src/log.c
Normal file
27
engine/src/log.c
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
#include <GearBox/Log.h>
|
||||||
|
|
||||||
|
void GBLog(int level, const char* fmt, ...) {
|
||||||
|
va_list va;
|
||||||
|
FILE* out = stdout;
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#else
|
||||||
|
fprintf(out, "[\x1b[mGearBox\x1b[m|");
|
||||||
|
|
||||||
|
if(level == GBLogInfo) {
|
||||||
|
fprintf(out, "\x1b[1mINFO\x1b[m ");
|
||||||
|
} else if(level == GBLogWarn) {
|
||||||
|
fprintf(out, "\x1b[1m\x1b[33mWARN\x1b[m ");
|
||||||
|
} else if(level == GBLogError) {
|
||||||
|
fprintf(out, "\x1b[1m\x1b[31mERROR\x1b[m");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
fprintf(out, "] ");
|
||||||
|
|
||||||
|
va_start(va, fmt);
|
||||||
|
vfprintf(out, fmt, va);
|
||||||
|
va_end(va);
|
||||||
|
|
||||||
|
fprintf(out, "\n");
|
||||||
|
}
|
||||||
14
engine/src/server.c
Normal file
14
engine/src/server.c
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#include <GearBox/Server.h>
|
||||||
|
|
||||||
|
#include <GearBox/Log.h>
|
||||||
|
|
||||||
|
GBServer GBServerCreate(GBEngine engine) {
|
||||||
|
GBLog(GBLogInfo, "Creating server");
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GBServerDestroy(GBServer server) {
|
||||||
|
|
||||||
|
free(server);
|
||||||
|
}
|
||||||
9
engine/src/version.c
Normal file
9
engine/src/version.c
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#include <GearBox/Version.h>
|
||||||
|
|
||||||
|
void GBVersionGet(GBVersion* version) {
|
||||||
|
version->majorlevel = 0;
|
||||||
|
version->minorlevel = 0;
|
||||||
|
version->patchlevel = 0;
|
||||||
|
|
||||||
|
sprintf(version->string, "%d.%d.%d", version->majorlevel, version->minorlevel, version->patchlevel);
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
project(gbtools)
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
macro(compile_tool name)
|
macro(compile_tool name)
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
clang-format --verbose -i `find engine/common engine/net engine/tools -name "*.c" -or -name "*.h"`
|
clang-format --verbose -i `find engine/src engine/include engine/net engine/tools -name "*.c" -or -name "*.h"`
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue