Add entry point and debug texts

This commit is contained in:
Grayson Riffe 2025-01-30 12:39:59 -06:00
parent b48df32331
commit 0c0c46e23d
5 changed files with 59 additions and 9 deletions

View File

@ -1,12 +1,14 @@
# NF library CMakeLists.txt
add_library(NothinFancy STATIC "src/Engine.cpp" "src/include/nf.h" "src/pch.h" "src/util.h" "src/util/log.h" "src/util/log.cpp")
add_library(NothinFancy STATIC "src/Engine.cpp" "src/include/nf.h" "src/pch.h" "src/util.h" "src/util/log.h" "src/util/log.cpp" "src/include/nf/EngineConfig.h")
# Use C++20
set_property(TARGET NothinFancy PROPERTY CXX_STANDARD 20)
# Additional include directories
target_include_directories(NothinFancy PUBLIC "src" "src/include")
# Use precompiled header
target_precompile_headers(NothinFancy PUBLIC "src/pch.h")
target_include_directories(NothinFancy PUBLIC "src/")
# Generate version.h
find_package(Git)

View File

@ -1,13 +1,22 @@
// NF startup
#include "pch.h"
#include "nf/EngineConfig.h"
#include "version.h"
#include "util.h"
namespace nf {
void startEngine() {
NFLog(std::format("Nothin' Fancy {}", NFVERSION));
NFError("Test error.");
void runEngine(EngineConfig config) {
std::string engineStr = std::format("Nothin' Fancy {}", NFVERSION);
std::string gameStr = std::format("{} {}", config.appName, config.appVersion);
NFLog(engineStr);
NFLog(std::format("Starting {}", gameStr));
#ifdef _DEBUG
SetThreadDescription(GetCurrentThread(), L"NF Main Thread");
SetConsoleTitle(std::format("{} Debug Console - {}", engineStr, gameStr).c_str());
#endif
std::cin.get();
}
}

View File

@ -1,6 +1,28 @@
// NF main public header
#pragma once
#include "nf/EngineConfig.h"
namespace nf {
void startEngine();
struct CommandLineArguments {
int argc;
char** argv;
};
EngineConfig configureEngine(CommandLineArguments cmdArgs);
void runEngine(EngineConfig config);
}
// NF entry point
#ifdef NFENTRY
int main(int argc, char* argv[]) {
nf::EngineConfig config = nf::configureEngine({ argc, argv });
nf::runEngine(config);
return 0;
}
#endif

View File

@ -0,0 +1,14 @@
// EngineConfig struct public header
#pragma once
namespace nf {
struct EngineConfig {
const char* appName;
const char* appVersion;
EngineConfig()
: appName("Nothin' Fancy Game")
, appVersion("v0.1.0")
{}
};
}

View File

@ -1,7 +1,10 @@
// TestGame main file
#define NFENTRY
#include "nf.h"
int main(int argc, char* argv[]) {
nf::startEngine();
return 0;
namespace nf {
EngineConfig configureEngine(CommandLineArguments cmdArgs) {
EngineConfig config;
return config;
}
}