31 lines
723 B
C++

#pragma once
#include "cereal/cereal.hpp"
#ifdef DEER_RENDER
#include "DeerRender/Mesh.h"
#include "DeerRender/Shader.h"
#include "DeerRender/Tools/Memory.h"
#include <functional>
#endif
namespace Deer {
struct WorldSerializationSettings {
#ifdef DEER_RENDER
bool includeServer = false;
bool includeClient = true;
std::function<Scope<MeshData>(const Path&)> meshLoadingFunction = nullptr;
std::function<Scope<ShaderData>(const Path&)> shaderLoadingFunction = nullptr;
#else
bool includeServer = true;
bool includeClient = false;
#endif
template <class Archive>
void serialize(Archive& archive) {
archive(CEREAL_NVP(includeServer));
archive(CEREAL_NVP(includeClient));
}
};
} // namespace Deer