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_USE_LINK_PATH TRUE)
|
||||
|
||||
include_directories(external/stb)
|
||||
|
||||
add_subdirectory(external/milsko)
|
||||
|
||||
add_subdirectory(engine)
|
||||
|
||||
include_directories(external/stb)
|
||||
add_subdirectory(client)
|
||||
|
||||
install(
|
||||
FILES resource/logo.png resource/font.png
|
||||
FILES resource/logo.png
|
||||
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)
|
||||
project(assaultfish)
|
||||
project(gearbox)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
|
||||
|
|
@ -17,11 +17,18 @@ endmacro()
|
|||
add_subdirectory(external/glad)
|
||||
|
||||
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)
|
||||
|
||||
install(
|
||||
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)
|
||||
|
||||
add_library(gbnet SHARED src/client.c src/server.c src/socket.c src/stb_ds.c)
|
||||
|
||||
target_include_directories(gbnet PUBLIC include)
|
||||
|
||||
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)
|
||||
|
||||
macro(compile_tool name)
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
#!/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