ArtifactEngine/Client/Client.h
2026-04-06 18:32:22 -04:00

40 lines
834 B
C++

#pragma once
#include <memory>
#include "Shared.h"
#include <Settings.h>
namespace Artifact {
class ClientSubsystem;
class WindowImpl;
/// The client class.
class Client: public Engine<ClientSubsystem> {
public:
WindowImpl * window = nullptr;
Settings settings;
Client() : settings(getClientConfigPath()) {}
void addDefaultSubsystems();
void initDefault();
/// Initializes the client. This includes opening a window, creating a WebGPU device, etc.
void init();
/// Runs a single iteration of the render loop.
void render();
/// Runs a single iteration of the tick loop.
void tick();
/// Runs the client.
void run();
};
class ClientSubsystem: public BaseSubsystem {
public:
Client * client = nullptr;
virtual void render() {}
virtual void tick() {}
};
}