- Migrated to C++20 modules - Worker and ThreadedWorker base classes for interthread systems - Client class for server transport and converting game data models to render data (views) - Update provinces render data from Client - Renderer handles commands now
63 lines
1.3 KiB
C++
63 lines
1.3 KiB
C++
module;
|
|
|
|
#include <concepts>
|
|
#include <type_traits>
|
|
#include <cstdint>
|
|
#include <cstddef>
|
|
|
|
export module AssetData;
|
|
import GameData;
|
|
import MapView;
|
|
|
|
export namespace ee_assets
|
|
{
|
|
struct AssetData {};
|
|
template<typename T> concept Asset = std::is_base_of_v<AssetData, T>;
|
|
|
|
enum AssetType
|
|
{
|
|
BINARY,
|
|
|
|
MAP_MESH,
|
|
SAVE,
|
|
|
|
SHADER,
|
|
MATERIAL,
|
|
IMAGE
|
|
};
|
|
|
|
struct AssetBinary : public AssetData
|
|
{
|
|
std::uint8_t* content = nullptr;
|
|
std::size_t size = 0;
|
|
|
|
AssetBinary(std::uint8_t* &source, const std::size_t sourceSize);
|
|
~AssetBinary();
|
|
};
|
|
|
|
struct AssetMapMesh : public AssetData
|
|
{
|
|
ee_engine::MapMesh content;
|
|
|
|
std::uint8_t* Serialize(std::size_t &size);
|
|
AssetMapMesh() {};
|
|
AssetMapMesh(std::uint8_t* &source, const std::size_t sourceSize);
|
|
};
|
|
|
|
struct AssetSave : public AssetData
|
|
{
|
|
ee_data::GameState content;
|
|
|
|
std::uint8_t* Serialize(std::size_t &size);
|
|
AssetSave() {};
|
|
AssetSave(std::uint8_t* &source, const std::size_t sourceSize);
|
|
};
|
|
|
|
using AssetShader = AssetBinary;
|
|
|
|
struct AssetMaterial : public AssetData
|
|
{
|
|
std::uint32_t vertexShaderAssetID;
|
|
std::uint32_t fragmentShaderAssetID;
|
|
};
|
|
} |