29 lines
761 B
C++
29 lines
761 B
C++
#pragma once
|
|
|
|
#include "state.hpp"
|
|
#include "render/Window.hpp"
|
|
|
|
namespace render {
|
|
class Renderer;
|
|
};
|
|
|
|
/// Client view
|
|
class Client {
|
|
public:
|
|
Client(config::client::options &options, world::AbstractServerFactory* srvContainer = nullptr);
|
|
~Client();
|
|
|
|
void run();
|
|
|
|
private:
|
|
using culler = std::variant<std::monostate, geometry::Frustum, std::vector<glm::vec3>>;
|
|
|
|
void renderFrame(render::Renderer&, const std::optional<geometry::Frustum>&, const std::optional<std::pair<float, float>>&, const world::client::Universe&);
|
|
void renderTerrainPass(render::Renderer&, const culler&, const world::cell_pos& offset, bool solid);
|
|
|
|
config::client::options &options;
|
|
state::state state;
|
|
state::reports reports;
|
|
|
|
Window window;
|
|
}; |