Transition flat enums to Bigfoot namespace + dependencies update + clang format update + remove outdated README
Bigfoot / Sonarqube (game) (push) Skipped
Bigfoot / Sonarqube (toolmode) (push) Skipped
Bigfoot / Build & Test Debug with ./ConanProfiles/host/clang (Unity Build: OFF, Variant: game) (push) Failing after 28s
Bigfoot / Build & Test Debug with ./ConanProfiles/host/clang (Unity Build: OFF, Variant: toolmode) (push) Failing after 20s
Bigfoot / Build & Test Debug with ./ConanProfiles/host/clang (Unity Build: ON, Variant: game) (push) Failing after 23s
Bigfoot / Build & Test Debug with ./ConanProfiles/host/clang (Unity Build: ON, Variant: toolmode) (push) Failing after 19s
Bigfoot / Build & Test Debug with ./ConanProfiles/host/clang_asan (Unity Build: OFF, Variant: game) (push) Failing after 23s
Bigfoot / Build & Test Debug with ./ConanProfiles/host/clang_asan (Unity Build: OFF, Variant: toolmode) (push) Failing after 19s
Bigfoot / Build & Test Debug with ./ConanProfiles/host/clang_asan (Unity Build: ON, Variant: game) (push) Failing after 23s
Bigfoot / Build & Test Debug with ./ConanProfiles/host/clang_asan (Unity Build: ON, Variant: toolmode) (push) Failing after 20s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/host/clang (Unity Build: OFF, Variant: game) (push) Failing after 25s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/host/clang (Unity Build: OFF, Variant: toolmode) (push) Failing after 20s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/host/clang_asan (Unity Build: OFF, Variant: toolmode) (push) Failing after 23s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/host/clang_asan (Unity Build: ON, Variant: game) (push) Failing after 19s
Bigfoot / Build & Test Release with ./ConanProfiles/host/clang (Unity Build: OFF, Variant: game) (push) Failing after 25s
Bigfoot / Build & Test Release with ./ConanProfiles/host/clang_asan (Unity Build: OFF, Variant: game) (push) Failing after 24s
Bigfoot / Build & Test Release with ./ConanProfiles/host/clang_asan (Unity Build: OFF, Variant: toolmode) (push) Failing after 23s
Bigfoot / Build & Test Release with ./ConanProfiles/host/clang_asan (Unity Build: ON, Variant: game) (push) Failing after 21s
Bigfoot / Build & Test Release with ./ConanProfiles/host/clang_asan (Unity Build: ON, Variant: toolmode) (push) Failing after 20s
Bigfoot / Clang Format Checks (push) Failing after 10s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/host/clang (Unity Build: ON, Variant: game) (push) Failing after 21s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/host/clang (Unity Build: ON, Variant: toolmode) (push) Failing after 24s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/host/clang_asan (Unity Build: OFF, Variant: game) (push) Failing after 26s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/host/clang_asan (Unity Build: ON, Variant: toolmode) (push) Failing after 20s
Bigfoot / Build & Test Release with ./ConanProfiles/host/clang (Unity Build: OFF, Variant: toolmode) (push) Failing after 19s
Bigfoot / Build & Test Release with ./ConanProfiles/host/clang (Unity Build: ON, Variant: game) (push) Failing after 22s
Bigfoot / Build & Test Release with ./ConanProfiles/host/clang (Unity Build: ON, Variant: toolmode) (push) Failing after 20s

This commit is contained in:
2026-09-08 22:16:59 +02:00
parent 0c3974cdec
commit 10f4a09c37
22 changed files with 69 additions and 131 deletions
+18 -12
View File
@@ -129,28 +129,34 @@ IncludeCategories:
Priority: 3
- Regex: '^<SasquatchBaker/'
Priority: 4
- Regex: '^<EngineTests/'
- Regex: '^<GraphicsCore/'
Priority: 5
- Regex: '^<SystemTests/'
- Regex: '^<GraphicsVulkan/'
Priority: 6
- Regex: '^<UtilsTests/'
- Regex: '^<GraphicsInterface/'
Priority: 7
- Regex: '^<AssetsForTesting/'
- Regex: '^<EngineTests/'
Priority: 8
- Regex: '^<SasquatchBakerTests/'
- Regex: '^<SystemTests/'
Priority: 9
- Regex: '^<EngineBenchmarks/'
- Regex: '^<UtilsTests/'
Priority: 10
- Regex: '^<AssetsForBenchmarking/'
- Regex: '^<AssetsForTesting/'
Priority: 11
- Regex: '^<SasquatchBakerBenchmarks/'
- Regex: '^<SasquatchBakerTests/'
Priority: 12
- Regex: '^<[a-zA-Z0-9_/]+\.h>'
- Regex: '^<EngineBenchmarks/'
Priority: 13
- Regex: '^<[a-zA-Z0-9_/]+\.hpp>'
Priority: 13
- Regex: '^<[a-zA-Z0-9_/]+>'
- Regex: '^<AssetsForBenchmarking/'
Priority: 14
- Regex: '^<SasquatchBakerBenchmarks/'
Priority: 15
- Regex: '^<[a-zA-Z0-9_/]+\.h>'
Priority: 16
- Regex: '^<[a-zA-Z0-9_/]+\.hpp>'
Priority: 16
- Regex: '^<[a-zA-Z0-9_/]+>'
Priority: 17
MainIncludeChar: AngleBracket
Macros:
- 'BIGFOOT_OPTIMIZED_ONLY(x)=x'
@@ -15,7 +15,7 @@ namespace Bigfoot
/*
* Logger
*/
inline Log::LoggerInfo ENGINE_LOGGER { .m_name = "ENGINE_LOGGER", .m_level = Flat::LogLevel::Trace};
inline Log::LoggerInfo ENGINE_LOGGER { .m_name = "ENGINE_LOGGER", .m_level = LogLevel::Trace};
} // namespace Bigfoot
#endif
#endif
+1 -1
View File
@@ -1,5 +1,5 @@
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/GraphicsInterface)
if(${VULKAN})
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/GraphicsVulkan)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/GraphicsCore)
endif()
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/GraphicsCore)
@@ -6,10 +6,10 @@
*********************************************************************/
#ifndef BIGFOOT_GRAPHICSCORE_GRAPHICSCOREASSERTHANDLER_HPP
#define BIGFOOT_GRAPHICSCORE_GRAPHICSCOREASSERTHANDLER_HPP
#include <GraphicsCore/GraphicsCoreLogger_generated.hpp>
#include <Utils/Assert/AssertHandler.hpp>
#include <GraphicsCore/GraphicsCoreLogger_generated.hpp>
#ifdef BIGFOOT_NOT_OPTIMIZED
namespace Bigfoot
@@ -15,7 +15,7 @@ namespace Bigfoot
/*
* Logger
*/
inline Log::LoggerInfo GRAPHICSCORE_LOGGER { .m_name = "GRAPHICSCORE_LOGGER", .m_level = Flat::LogLevel::Trace};
inline Log::LoggerInfo GRAPHICSCORE_LOGGER { .m_name = "GRAPHICSCORE_LOGGER", .m_level = LogLevel::Trace};
} // namespace Bigfoot
#endif
#endif
@@ -6,10 +6,10 @@
*********************************************************************/
#ifndef BIGFOOT_GRAPHICSINTERFACE_GRAPHICSINTERFACEASSERTHANDLER_HPP
#define BIGFOOT_GRAPHICSINTERFACE_GRAPHICSINTERFACEASSERTHANDLER_HPP
#include <GraphicsInterface/GraphicsInterfaceLogger_generated.hpp>
#include <Utils/Assert/AssertHandler.hpp>
#include <GraphicsInterface/GraphicsInterfaceLogger_generated.hpp>
#ifdef BIGFOOT_NOT_OPTIMIZED
namespace Bigfoot
@@ -15,7 +15,7 @@ namespace Bigfoot
/*
* Logger
*/
inline Log::LoggerInfo GRAPHICSINTERFACE_LOGGER { .m_name = "GRAPHICSINTERFACE_LOGGER", .m_level = Flat::LogLevel::Trace};
inline Log::LoggerInfo GRAPHICSINTERFACE_LOGGER { .m_name = "GRAPHICSINTERFACE_LOGGER", .m_level = LogLevel::Trace};
} // namespace Bigfoot
#endif
#endif
@@ -15,7 +15,7 @@ namespace Bigfoot
/*
* Logger
*/
inline Log::LoggerInfo SYSTEM_LOGGER { .m_name = "SYSTEM_LOGGER", .m_level = Flat::LogLevel::Trace};
inline Log::LoggerInfo SYSTEM_LOGGER { .m_name = "SYSTEM_LOGGER", .m_level = LogLevel::Trace};
} // namespace Bigfoot
#endif
#endif
+1 -1
View File
@@ -1,4 +1,4 @@
namespace Bigfoot.Flat;
namespace Bigfoot;
enum LogSinkType: byte
{
+2 -2
View File
@@ -35,7 +35,7 @@ class Log
struct LoggerInfo
{
std::string m_name;
Flat::LogLevel m_level;
LogLevel m_level;
};
/**
@@ -78,7 +78,7 @@ class Log
* \param p_loggerInfo The logger to change
* \param p_level The new level
*/
void ChangeLoggerLogLevel(LoggerInfo& p_loggerInfo, const Flat::LogLevel p_level);
void ChangeLoggerLogLevel(LoggerInfo& p_loggerInfo, const LogLevel p_level);
/*
* Flush all the loggers
@@ -1,8 +1,8 @@
// automatically generated by the FlatBuffers compiler, do not modify
#ifndef FLATBUFFERS_GENERATED_LOG_BIGFOOT_FLAT_H_
#define FLATBUFFERS_GENERATED_LOG_BIGFOOT_FLAT_H_
#ifndef FLATBUFFERS_GENERATED_LOG_BIGFOOT_H_
#define FLATBUFFERS_GENERATED_LOG_BIGFOOT_H_
#include "flatbuffers/flatbuffers.h"
@@ -25,7 +25,6 @@ static_assert(FLATBUFFERS_BIGFOOT_VERSION == 1,
#include "EASTL/vector.h"
namespace Bigfoot {
namespace Flat {
enum class LogSinkType : int8_t {
Console = 0,
@@ -105,7 +104,7 @@ inline const ::flatbuffers::TypeTable *LogSinkTypeTypeTable() {
{ ::flatbuffers::ET_CHAR, 0, 0 }
};
static const ::flatbuffers::TypeFunction type_refs[] = {
Bigfoot::Flat::LogSinkTypeTypeTable
Bigfoot::LogSinkTypeTypeTable
};
static const ::flatbuffers::TypeTable tt = {
::flatbuffers::ST_ENUM, 2, type_codes, type_refs, nullptr, nullptr, nullptr
@@ -123,7 +122,7 @@ inline const ::flatbuffers::TypeTable *LogLevelTypeTable() {
{ ::flatbuffers::ET_CHAR, 0, 0 }
};
static const ::flatbuffers::TypeFunction type_refs[] = {
Bigfoot::Flat::LogLevelTypeTable
Bigfoot::LogLevelTypeTable
};
static const ::flatbuffers::TypeTable tt = {
::flatbuffers::ST_ENUM, 6, type_codes, type_refs, nullptr, nullptr, nullptr
@@ -131,7 +130,6 @@ inline const ::flatbuffers::TypeTable *LogLevelTypeTable() {
return &tt;
}
} // namespace Flat
} // namespace Bigfoot
#endif // FLATBUFFERS_GENERATED_LOG_BIGFOOT_FLAT_H_
#endif // FLATBUFFERS_GENERATED_LOG_BIGFOOT_H_
@@ -15,7 +15,7 @@ namespace Bigfoot
/*
* Logger
*/
inline Log::LoggerInfo @LOGGER_NAME@ { .m_name = "@LOGGER_NAME@", .m_level = Flat::LogLevel::Trace};
inline Log::LoggerInfo @LOGGER_NAME@ { .m_name = "@LOGGER_NAME@", .m_level = LogLevel::Trace};
} // namespace Bigfoot
#endif
#endif
@@ -15,7 +15,7 @@ namespace Bigfoot
/*
* Logger
*/
inline Log::LoggerInfo UTILS_LOGGER { .m_name = "UTILS_LOGGER", .m_level = Flat::LogLevel::Trace};
inline Log::LoggerInfo UTILS_LOGGER { .m_name = "UTILS_LOGGER", .m_level = LogLevel::Trace};
} // namespace Bigfoot
#endif
#endif
+13 -14
View File
@@ -14,13 +14,12 @@ Log::Log()
{
quill::Backend::start();
m_sinks[static_cast<std::size_t>(Flat::LogSinkType::Console)] =
quill::Frontend::create_or_get_sink<quill::ConsoleSink>(
std::string {Flat::EnumNameLogSinkType(Flat::LogSinkType::Console)});
m_sinks[static_cast<std::size_t>(LogSinkType::Console)] = quill::Frontend::create_or_get_sink<quill::ConsoleSink>(
std::string {EnumNameLogSinkType(LogSinkType::Console)});
quill::FileSinkConfig fileSinkConfig;
fileSinkConfig.set_open_mode('w');
m_sinks[static_cast<std::size_t>(Flat::LogSinkType::File)] = quill::Frontend::create_or_get_sink<quill::FileSink>(
m_sinks[static_cast<std::size_t>(LogSinkType::File)] = quill::Frontend::create_or_get_sink<quill::FileSink>(
std::string {FILE_SINK_PATH.data()},
fileSinkConfig);
}
@@ -31,8 +30,8 @@ quill::Logger* Log::RegisterLogger(const LoggerInfo& p_loggerInfo)
{
quill::Logger* logger = quill::Frontend::create_or_get_logger(
p_loggerInfo.m_name,
{m_sinks[static_cast<std::size_t>(Flat::LogSinkType::Console)],
m_sinks[static_cast<std::size_t>(Flat::LogSinkType::File)]});
{m_sinks[static_cast<std::size_t>(LogSinkType::Console)],
m_sinks[static_cast<std::size_t>(LogSinkType::File)]});
SetLoggerLevel(p_loggerInfo);
return logger;
@@ -57,7 +56,7 @@ quill::Logger* Log::GetLogger(const LoggerInfo& p_loggerInfo)
/****************************************************************************************/
void Log::ChangeLoggerLogLevel(LoggerInfo& p_loggerInfo, const Flat::LogLevel p_level)
void Log::ChangeLoggerLogLevel(LoggerInfo& p_loggerInfo, const LogLevel p_level)
{
p_loggerInfo.m_level = p_level;
SetLoggerLevel(p_loggerInfo);
@@ -67,21 +66,21 @@ void Log::ChangeLoggerLogLevel(LoggerInfo& p_loggerInfo, const Flat::LogLevel p_
void Log::SetLoggerLevel(const LoggerInfo& p_loggerInfo)
{
constexpr auto logLevelToQuillLogLevel = [](const Flat::LogLevel p_level) constexpr -> quill::LogLevel
constexpr auto logLevelToQuillLogLevel = [](const LogLevel p_level) constexpr -> quill::LogLevel
{
switch (p_level)
{
case Flat::LogLevel::Debug:
case LogLevel::Debug:
return quill::LogLevel::Debug;
case Flat::LogLevel::Trace:
case LogLevel::Trace:
return quill::LogLevel::TraceL3;
case Flat::LogLevel::Info:
case LogLevel::Info:
return quill::LogLevel::Info;
case Flat::LogLevel::Warn:
case LogLevel::Warn:
return quill::LogLevel::Warning;
case Flat::LogLevel::Error:
case LogLevel::Error:
return quill::LogLevel::Error;
case Flat::LogLevel::Critical:
case LogLevel::Critical:
return quill::LogLevel::Critical;
}
@@ -1,7 +1,8 @@
get_filename_component(PackageName ${CMAKE_CURRENT_SOURCE_DIR} NAME)
project(${PackageName}Tests)
set(Dependencies)
set(Dependencies
glfw)
set(BigfootDependencies)
bigfoot_create_package_tests(
@@ -1,7 +1,8 @@
get_filename_component(PackageName ${CMAKE_CURRENT_SOURCE_DIR} NAME)
project(${PackageName}Tests)
set(Dependencies)
set(Dependencies
glfw)
set(BigfootDependencies)
bigfoot_create_package_tests(
@@ -15,7 +15,7 @@ namespace Bigfoot
/*
* Logger
*/
inline Log::LoggerInfo UTILSTESTS_LOGGER { .m_name = "UTILSTESTS_LOGGER", .m_level = Flat::LogLevel::Trace};
inline Log::LoggerInfo UTILSTESTS_LOGGER { .m_name = "UTILSTESTS_LOGGER", .m_level = LogLevel::Trace};
} // namespace Bigfoot
#endif
#endif
+11 -15
View File
@@ -19,27 +19,27 @@ namespace Bigfoot
class LogFixture: public ::testing::Test
{
protected:
static constexpr Flat::LogLevel QuillLogLevelToLogLevel(const quill::LogLevel p_level)
static constexpr LogLevel QuillLogLevelToLogLevel(const quill::LogLevel p_level)
{
switch (p_level)
{
case quill::LogLevel::Debug:
return Flat::LogLevel::Debug;
return LogLevel::Debug;
case quill::LogLevel::TraceL3:
return Flat::LogLevel::Trace;
return LogLevel::Trace;
case quill::LogLevel::Info:
return Flat::LogLevel::Info;
return LogLevel::Info;
case quill::LogLevel::Warning:
return Flat::LogLevel::Warn;
return LogLevel::Warn;
case quill::LogLevel::Error:
return Flat::LogLevel::Error;
return LogLevel::Error;
case quill::LogLevel::Critical:
return Flat::LogLevel::Critical;
return LogLevel::Critical;
default:
break;
}
return Flat::LogLevel::Trace;
return LogLevel::Trace;
}
};
@@ -84,16 +84,12 @@ TEST_F(LogFixture, GetLoger_ShouldReturnTheLoggerIfItExists)
TEST_F(LogFixture, ChangeLoggerLogLevel_ShouldChangeTheLoggerLogLevel)
{
const Flat::LogLevel previous = UTILSTESTS_LOGGER.m_level;
const LogLevel previous = UTILSTESTS_LOGGER.m_level;
const quill::Logger* logger = Singleton<Log>::GetInstance().RegisterLogger(UTILSTESTS_LOGGER);
for (const Flat::LogLevel level: {Flat::LogLevel::Debug,
Flat::LogLevel::Trace,
Flat::LogLevel::Info,
Flat::LogLevel::Warn,
Flat::LogLevel::Error,
Flat::LogLevel::Critical})
for (const LogLevel level:
{LogLevel::Debug, LogLevel::Trace, LogLevel::Info, LogLevel::Warn, LogLevel::Error, LogLevel::Critical})
{
Singleton<Log>::GetInstance().ChangeLoggerLogLevel(UTILSTESTS_LOGGER, level);
EXPECT_EQ(QuillLogLevelToLogLevel(logger->get_log_level()), level);
+1 -1
View File
@@ -36,13 +36,13 @@ endif()
if(VULKAN)
find_package(VulkanHeaders REQUIRED)
find_package(volk REQUIRED)
find_package(VulkanMemoryAllocator REQUIRED)
endif()
if(BUILD_TESTS)
find_package(GTest REQUIRED)
find_package(pixelmatch-cpp17 REQUIRED)
find_package(glfw3 REQUIRED)
endif()
if(BUILD_BENCHMARKS)
-63
View File
@@ -1,63 +0,0 @@
# Bigfoot
A multiplatform 3D game engine
# Goals
The goal is to build a multiplatform, API agnostic, 3D engine. Since this is a learning project, I don't aim to provide a viable option to build actual commercial games with it. This also means that I am providing the project as is, with no support whatsoever.
# Building
### Requirements
1. [ConanV2](https://conan.io/)
3. [Vulkan SDK](https://www.lunarg.com/vulkan-sdk/) (If you target Vulkan)
4. [CMake](https://cmake.org/)
5. [Git](https://git-scm.com/)
7. [Python3](https://www.python.org/)
#### Additional requirements for Linux
1. [Clang](https://clang.llvm.org/) (Version 18)
2. [Mold](https://github.com/rui314/mold)
3. [Ninja](https://github.com/ninja-build/ninja)
4. [CCache](https://ccache.dev/) (Not a requirement, but nice to have)
Note: you can modify the conan profile used to overcome these requirements. But I provide no support for anything else than what's listed here
#### Additional requirements for Windows
1. MSVC
Note: you can modify the conan profile used to overcome these requirements. But I provide no support for anything else than what's listed here
### Generating the dependencies for Bigfoot
Use generate_dependencies.sh or generate_dependencies.bat (depending on your platform). These scripts will download/build/install any necessary dependency, using Conan. The recipes used will come from [my own conan recipe center](packages.bigfootengine.com)
You will need to provide the 'force' or 'missing' parameters to these scripts. I'd recommand for a first run to use 'force' to build all dependencies, and on subsequent runs to use 'missing' to build only missing parameters
```
./generate_dependencies.sh force
or
./generate_dependencies.sh missing
```
You can customize these scripts to opt-out of some Bigfoot features
'Just' modify these lines to disable them (I promise to one day modify the script to do it from the command line)
```
-o bigfoot/*:build_tests=True -o bigfoot/*:tracy=True -o bigfoot/*:build_tools=True -o bigfoot/*:vulkan=True
```
1. build_tests: Enable/Disable the tests
2. tracy: Enable/Disable profiling using [Tracy](https://github.com/wolfpld/tracy)
3. vulkan: Enable/Disable Vulkan renderer (No point disabling it, since for now only Vulkan is available in Bigfoot)
### Generating Bigfoot
Use generate_bigfoot.sh or generate_bigfoot.bat (depending on your platform) to generate the build files for Bigfoot.
You will then be able to use either Visual Studio (Windows) or Ninja (Linux) to build BigFoot
@@ -15,7 +15,7 @@ namespace Bigfoot
/*
* Logger
*/
inline Log::LoggerInfo SASQUATCHBAKER_LOGGER { .m_name = "SASQUATCHBAKER_LOGGER", .m_level = Flat::LogLevel::Trace};
inline Log::LoggerInfo SASQUATCHBAKER_LOGGER { .m_name = "SASQUATCHBAKER_LOGGER", .m_level = LogLevel::Trace};
} // namespace Bigfoot
#endif
#endif
+1 -1
View File
@@ -88,12 +88,12 @@ class Bigfoot(ConanFile):
if(self.options.vulkan):
self.requires("vulkan-headers/1.4.350.0")
self.requires("volk/1.4.350.0")
self.requires("vulkan-memory-allocator/3.3.0")
if(self.options.build_tests):
self.test_requires("gtest/1.18.0")
self.test_requires("pixelmatch-cpp17/1.0.3@bigfootdev/main")
self.test_requires("glfw/3.4")
if(self.options.build_benchmarks):
self.requires("benchmark/1.9.5")