Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
Mesh3dImporter.hpp
1
#pragma once
2
3
#include <string>
4
#include <vector>
5
#include <map>
6
7
#include <Common/Formats/Model.hpp>
8
#include <Common/Graphics/Formats.hpp>
9
#include <EngineCore/Assets/AssetImporter.hpp>
10
#include "Mesh3dAsset.hpp"
11
12
namespace
Grindstone {
13
namespace
GraphicsAPI {
14
class
Buffer
;
15
}
16
17
class
EngineCore
;
18
19
class
Mesh3dImporter :
public
SpecificAssetImporter<Mesh3dAsset, AssetType::Mesh3d> {
20
public
:
21
Mesh3dImporter(
EngineCore
* engineCore);
22
virtual
~Mesh3dImporter()
override
;
23
24
virtual
void
* LoadAsset(
Uuid
uuid)
override
;
25
virtual
void
QueueReloadAsset(
Uuid
uuid)
override
;
26
void
PrepareLayouts();
27
virtual
void
OnDeleteAsset(
Grindstone::Mesh3dAsset
& asset)
override
;
28
private
:
29
uint64_t GetTotalFileSize(
Formats::Model::V1::Header
& header);
30
bool
ImportModelFile(
Mesh3dAsset
& mesh);
31
void
LoadMeshImportSubmeshes(
32
Mesh3dAsset
& mesh,
33
Formats::Model::V1::Header
& header,
34
char
*& sourcePtr
35
);
36
void
LoadMeshImportVertices(
37
Mesh3dAsset
& mesh,
38
Formats::Model::V1::Header
& header,
39
char
*& sourcePtr,
40
std::vector<GraphicsAPI::Buffer*>& vertexBuffers
41
);
42
void
LoadMeshImportIndices(
43
Mesh3dAsset
& mesh,
44
Formats::Model::V1::Header
& header,
45
char
*& sourcePtr,
46
GraphicsAPI::Buffer
*& indexBuffer
47
);
48
public
:
49
EngineCore
* engineCore;
50
private
:
51
static
Grindstone::GraphicsAPI::VertexInputLayout
vertexLayout;
52
53
enum class
Mesh3dLayoutIndex {
54
Position = 0,
55
Normal,
56
Tangent,
57
Uv0,
58
Uv1
59
};
60
};
61
}
Grindstone::EngineCore
Definition
EngineCore.hpp:58
Grindstone::GraphicsAPI::Buffer
Definition
Buffer.hpp:56
Grindstone::Uuid
Definition
Uuid.hpp:7
Grindstone::Formats::Model::V1::Header
Definition
Model.hpp:20
Grindstone::GraphicsAPI::VertexInputLayout
Definition
Formats.hpp:724
Grindstone::Mesh3dAsset
Definition
Mesh3dAsset.hpp:26
sources
code
Plugins
Renderables3D
Assets
Mesh3dImporter.hpp
Generated by
1.13.2