Skip to content

Commit fd78d45

Browse files
committed
[Circuit] Make stub for ECS based Circuit
1 parent bb08773 commit fd78d45

15 files changed

Lines changed: 376 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System;
2+
using System.IO;
3+
4+
namespace VoltSharpmake
5+
{
6+
[Sharpmake.Generate]
7+
public class ECSCircuit : CommonVoltDllProject
8+
{
9+
public ECSCircuit()
10+
{
11+
Name = "ECSCircuit";
12+
}
13+
14+
public override void ConfigureAll(Configuration conf, CommonTarget target)
15+
{
16+
base.ConfigureAll(conf, target);
17+
18+
conf.SolutionFolder = "Engine";
19+
20+
conf.PrecompHeader = "ecscircuitpch.h";
21+
conf.PrecompSource = "ecscircuitpch.cpp";
22+
23+
24+
conf.AddPublicDependency<VoltRenderCore>(target);
25+
conf.AddPrivateDependency<VoltApplication>(target);
26+
conf.AddPrivateDependency<VoltRenderer>(target);
27+
28+
conf.AddPublicDependency<RHIModule>(target);
29+
conf.AddPublicDependency<WindowModule>(target);
30+
conf.AddPublicDependency<LogModule>(target);
31+
conf.AddPublicDependency<EventSystemModule>(target);
32+
conf.AddPublicDependency<InputModule>(target);
33+
conf.AddPublicDependency<VoltAssets>(target);
34+
35+
conf.IncludePaths.Add(Path.Combine(Globals.ThirdPartyDirectory, "entt\\include"));
36+
}
37+
}
38+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#include "ecscircuitpch.h"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#pragma once
2+
3+
#include <glm/glm.hpp>
4+
5+
#include <CoreUtilities/Containers/Array.h>
6+
#include <CoreUtilities/Containers/Vector.h>
7+
#include <CoreUtilities/Containers/Map.h>
8+
9+
#include <CoreUtilities/Pointers/Unique.h>
10+
#include <CoreUtilities/Pointers/Ref.h>
11+
#include <CoreUtilities/Pointers/Weak.h>
12+
13+
#include <CoreUtilities/Profiling/Profiling.h>
14+
15+
#include <LogModule/Log.h>
16+
17+
#include <entt.hpp>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#include "ecscircuitpch.h"
2+
3+
#include "ECSCircuit/CircuitManager.h"
4+
#include "ECSCircuit/LogCategories.h"
5+
6+
#include <WindowModule/WindowManager_New.h>
7+
#include <WindowModule/Window_New.h>
8+
9+
#include <CoreUtilities/VoltAssert.h>
10+
11+
Unique<CircuitManager> CircuitManager::s_instance = nullptr;
12+
13+
CircuitManager::CircuitManager()
14+
{}
15+
16+
CircuitManager& CircuitManager::Get()
17+
{
18+
return *s_instance;
19+
}
20+
21+
void CircuitManager::Initialize()
22+
{
23+
VT_ASSERT_MSG(!s_instance, "CircuitManager already initialized!");
24+
s_instance = CreateUnique<CircuitManager>();
25+
VT_LOGC(Info, LogECSCircuit, "CircuitManager initialized.");
26+
}
27+
28+
void CircuitManager::Shutdown()
29+
{
30+
s_instance = nullptr;
31+
}
32+
33+
void CircuitManager::Update()
34+
{}
35+
36+
void CircuitManager::CreateWindow()
37+
{
38+
Volt::WindowInitializer windowInitializer{};
39+
windowInitializer.initialWidth = 1600;
40+
windowInitializer.initialHeight = 900;
41+
windowInitializer.initialPosX = 0;
42+
windowInitializer.initialPosY = 0;
43+
windowInitializer.enableVSync = true;
44+
windowInitializer.createAsDecorated = true;
45+
46+
Volt::WindowHandle windowHandle = Volt::WindowManager_New::Get().CreateWindow(windowInitializer);
47+
m_windows[windowHandle] = CreateRef<CircuitWindowStub>();
48+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#include "ecscircuitpch.h"
2+
3+
#include "ECSCircuit/LogCategories.h"
4+
5+
VT_DEFINE_LOG_CATEGORY(LogECSCircuit);
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#pragma once
2+
3+
#include "ECSCircuit/Config.h"
4+
5+
#include <WindowModule/WindowHandle.h>
6+
7+
#include <CoreUtilities/Containers/Map.h>
8+
#include <CoreUtilities/Pointers/Unique.h>
9+
#include <CoreUtilities/Pointers/Ref.h>
10+
11+
struct CircuitWindowStub
12+
{
13+
bool yee;
14+
};
15+
16+
class CircuitManager
17+
{
18+
public:
19+
CircuitManager();
20+
~CircuitManager() = default;
21+
22+
ECSCIRCUIT_API static CircuitManager& Get();
23+
ECSCIRCUIT_API static void Initialize();
24+
ECSCIRCUIT_API static void Shutdown();
25+
26+
ECSCIRCUIT_API void Update();
27+
28+
ECSCIRCUIT_API void CreateWindow();
29+
30+
private:
31+
static Unique<CircuitManager> s_instance;
32+
Map<Volt::WindowHandle, Ref<CircuitWindowStub>> m_windows;
33+
};
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#pragma once
2+
3+
#ifdef ECSCIRCUIT_DLL_EXPORT
4+
#define ECSCIRCUIT_API __declspec(dllexport)
5+
#else
6+
#define ECSCIRCUIT_API __declspec(dllimport)
7+
#endif
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#pragma once
2+
3+
#include "ECSCircuit/Config.h"
4+
5+
#include <LogModule/LogCategory.h>
6+
#include <LogModule/LogCommon.h>
7+
8+
VT_DECLARE_LOG_CATEGORY_EXPORT(ECSCIRCUIT_API, LogECSCircuit, LogVerbosity::Trace);
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
using Sharpmake;
2+
using System;
3+
using System.IO;
4+
5+
namespace VoltSharpmake
6+
{
7+
[Sharpmake.Generate]
8+
public class ECSCircuitSandbox : CommonVoltExeProject
9+
{
10+
public ECSCircuitSandbox()
11+
{
12+
Name = "ECSCircuitSandbox";
13+
}
14+
15+
public override void ConfigureAll(Configuration conf, CommonTarget target)
16+
{
17+
base.ConfigureAll(conf, target);
18+
19+
conf.SolutionFolder = "";
20+
21+
conf.PrecompHeader = "ecscsbpch.h";
22+
conf.PrecompSource = "ecscsbpch.cpp";
23+
24+
conf.VcxprojUserFile = new Configuration.VcxprojUserFileSettings
25+
{
26+
LocalDebuggerWorkingDirectory = Globals.EngineDirectory,
27+
LocalDebuggerCommandArguments = Globals.VtProjectFilePath
28+
};
29+
30+
conf.AddPrivateDependency<VoltEntryPoint>(target);
31+
conf.AddPrivateDependency<VoltApplication>(target);
32+
conf.AddPrivateDependency<PlatformsModule>(target);
33+
34+
conf.AddPrivateDependency<ECSCircuit>(target);
35+
36+
conf.AddPrivateDependency<EventSystemModule>(target);
37+
conf.AddPrivateDependency<InputModule>(target);
38+
conf.AddPrivateDependency<WindowModule>(target);
39+
conf.AddPrivateDependency<RHIModule>(target);
40+
conf.AddPrivateDependency<JobSystemModule>(target);
41+
conf.AddPrivateDependency<SubSystemModule>(target);
42+
43+
conf.AddPrivateDependency<glm>(target);
44+
45+
Type gameProjectType = Type.GetType("VoltSharpmake.Game");
46+
if (gameProjectType != null)
47+
{
48+
conf.AddPrivateDependency(target, gameProjectType);
49+
}
50+
51+
conf.AddPrivateDependency<CrashReportClient>(target, DependencySetting.OnlyBuildOrder);
52+
53+
conf.AdditionalDebuggerCommands = Path.Combine(Globals.VtProjectDirectory, @"Project.vtproj");
54+
55+
56+
conf.IncludePaths.Add("Public/ECSCircuitSandbox");
57+
conf.IncludePaths.Add("Private/ECSCircuitSandbox");
58+
}
59+
60+
public override void ConfigureWin64(Configuration conf, CommonTarget target)
61+
{
62+
base.ConfigureWin64(conf, target);
63+
64+
conf.LibraryFiles.Add(
65+
"crypt32.lib",
66+
"Bcrypt.lib",
67+
68+
"Winmm.lib",
69+
"Version.lib",
70+
"ws2_32.lib"
71+
);
72+
}
73+
74+
public override void ConfigureMSVC(Configuration conf, CommonTarget target)
75+
{
76+
base.ConfigureMSVC(conf, target);
77+
78+
conf.Options.Add(new Sharpmake.Options.Vc.Compiler.DisableSpecificWarnings("4098","4217"));
79+
}
80+
}
81+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#include "ecscsbpch.h"

0 commit comments

Comments
 (0)