Skip to content

Commit 55176fb

Browse files
committed
Removed all usages of binary serialisable interface, replaced with inline templates
1 parent ec1f27b commit 55176fb

File tree

11 files changed

+81
-72
lines changed

11 files changed

+81
-72
lines changed

engine/render/renderer/platform/vulkan/Texture2D.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99

1010
#include "Texture2D.h"
1111

12+
#include <resources/PackFile.h>
13+
#include <resources/ResourceSystem.h>
14+
#include <resources/Texture2DData.h>
1215
#include <utils/Defer.h>
1316

1417
#include "Constants.h"
1518
#include "Context.h"
1619
#include "render/renderer/buffer/Buffer.h"
17-
#include "resources/PackFileData.h"
18-
#include "resources/ResourceSystem.h"
19-
#include "resources/Texture2DData.h"
2020
#include "utils/Descriptor.h"
2121
#include "utils/TypeAdaptor.h"
2222

engine/resources/PackFile.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
#include <map>
2020

2121
#include "PackFileData.h"
22+
#include "SceneData.h"
23+
#include "StaticMeshData.h"
24+
#include "Texture2DData.h"
2225

2326
#define PACKER_MAGIC_NUMBER_FILE "pck"
2427
#define PACKER_MAGIC_NUMBER_TOC "toc!"
@@ -83,11 +86,11 @@ class PackFile
8386
return nullptr;
8487
}
8588

86-
BinarySerialisation::Buffer buffer;
87-
buffer.Fill(reinterpret_cast<uint8_t*>(packFileData->data), packFileData->dataSize);
89+
BinarySerialisation::Buffer dataBuffer;
90+
dataBuffer.Fill(reinterpret_cast<uint8_t*>(packFileData->data), packFileData->dataSize);
8891

8992
T* typedData = new T();
90-
typedData->serialise(buffer, BinarySerialisation::DESERIALISE);
93+
BinarySerialisation::serialise(dataBuffer, *typedData, BinarySerialisation::DESERIALISE);
9194

9295
return std::shared_ptr<T>(typedData);
9396
}

engine/resources/SceneData.h

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,21 @@
1515
namespace Siege
1616
{
1717

18-
struct SceneData : BinarySerialisation::BinarySerialisable
18+
struct SceneData
1919
{
2020
std::vector<String> entities;
21-
22-
void serialise(BinarySerialisation::Buffer& buffer,
23-
BinarySerialisation::SerialisationMode mode) override
24-
{
25-
BinarySerialisation::serialise(buffer, entities, mode);
26-
}
2721
};
2822

23+
namespace BinarySerialisation
24+
{
25+
26+
inline void serialise(Buffer& buffer, SceneData& value, SerialisationMode mode)
27+
{
28+
serialise(buffer, value.entities, mode);
29+
}
30+
31+
} // namespace BinarySerialisation
32+
2933
} // namespace Siege
3034

3135
#endif // SIEGE_ENGINE_SCENEDATA_H

engine/resources/StaticMeshData.h

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,23 @@ inline void serialise(BinarySerialisation::Buffer& buffer,
5050
serialise(buffer, value.uv, mode);
5151
}
5252

53-
struct StaticMeshData : BinarySerialisation::BinarySerialisable
53+
struct StaticMeshData
5454
{
5555
std::vector<uint32_t> indices;
5656
std::vector<BaseVertex> vertices;
57-
58-
void serialise(BinarySerialisation::Buffer& buffer,
59-
BinarySerialisation::SerialisationMode mode) override
60-
{
61-
BinarySerialisation::serialise(buffer, indices, mode);
62-
BinarySerialisation::serialise(buffer, vertices, mode);
63-
}
6457
};
6558

59+
namespace BinarySerialisation
60+
{
61+
62+
inline void serialise(Buffer& buffer, StaticMeshData& value, SerialisationMode mode)
63+
{
64+
serialise(buffer, value.indices, mode);
65+
serialise(buffer, value.vertices, mode);
66+
}
67+
68+
} // namespace BinarySerialisation
69+
6670
} // namespace Siege
6771

6872
namespace std

engine/resources/Texture2DData.h

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,13 @@
1212

1313
#include <utils/BinarySerialisation.h>
1414

15-
#include "PackFile.h"
16-
1715
// TODO - Remove this hard-coded value and support various texture channel sizes
1816
#define TEXTURE2D_TEXTURE_CHANNELS 4
1917

2018
namespace Siege
2119
{
2220

23-
struct Texture2DData : BinarySerialisation::BinarySerialisable
21+
struct Texture2DData
2422
{
2523
int32_t texWidth = 0;
2624
int32_t texHeight = 0;
@@ -29,19 +27,23 @@ struct Texture2DData : BinarySerialisation::BinarySerialisable
2927

3028
uint64_t GetImageSize() const
3129
{
32-
return texWidth * texHeight * TEXTURE2D_TEXTURE_CHANNELS;
33-
}
34-
35-
void serialise(BinarySerialisation::Buffer& buffer,
36-
BinarySerialisation::SerialisationMode mode) override
37-
{
38-
BinarySerialisation::serialise(buffer, texWidth, mode);
39-
BinarySerialisation::serialise(buffer, texHeight, mode);
40-
BinarySerialisation::serialise(buffer, texChannels, mode);
41-
BinarySerialisation::serialise(buffer, pixels, mode);
30+
return texWidth * texHeight * texChannels;
4231
}
4332
};
4433

34+
namespace BinarySerialisation
35+
{
36+
37+
inline void serialise(Buffer& buffer, Texture2DData& value, SerialisationMode mode)
38+
{
39+
serialise(buffer, value.texWidth, mode);
40+
serialise(buffer, value.texHeight, mode);
41+
serialise(buffer, value.texChannels, mode);
42+
serialise(buffer, value.pixels, mode);
43+
}
44+
45+
} // namespace BinarySerialisation
46+
4547
} // namespace Siege
4648

4749
#endif // SIEGE_ENGINE_TEXTURE2DDATA_H

engine/utils/BinarySerialisation.h

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,6 @@ struct Buffer
5656
}
5757
};
5858

59-
struct BinarySerialisable
60-
{
61-
virtual ~BinarySerialisable() = default;
62-
63-
virtual void serialise(Buffer& buffer, SerialisationMode mode) {}
64-
};
65-
6659
template<typename T>
6760
void serialiseNative(Buffer& buffer, T& value, SerialisationMode mode)
6861
{
@@ -253,12 +246,6 @@ void serialise(Buffer& buffer, std::map<T1, T2>& value, SerialisationMode mode)
253246
}
254247
}
255248

256-
template<typename T>
257-
void serialise(Buffer& buffer, T& value, SerialisationMode mode)
258-
{
259-
value.serialise(buffer, mode);
260-
}
261-
262249
} // namespace Siege::BinarySerialisation
263250

264251
#endif // SIEGE_ENGINE_BINARYSERIALISATION_H

packer/src/types/GenericFileDataPacker.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "GenericFileDataPacker.h"
1111

1212
#include <resources/PackFileData.h>
13+
#include <utils/Defer.h>
1314
#include <utils/Logging.h>
1415

1516
#include <fstream>
@@ -25,7 +26,7 @@ Siege::PackFileData* PackGenericFile(const Siege::String& filePath)
2526

2627
// Since we consumed the entire file, we can tell the size by checking where
2728
// the file stream is reading from (which presumably is at the end of the file).
28-
uint32_t fileSize = static_cast<uint32_t>(file.tellg());
29+
uint32_t fileSize = file.tellg();
2930
char* data = static_cast<char*>(malloc(fileSize));
3031
defer([&data] { free(data); });
3132

packer/src/types/SceneDataPacker.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ Siege::PackFileData* PackSceneFile(const Siege::String& filePath)
3636
}
3737

3838
Siege::BinarySerialisation::Buffer dataBuffer;
39-
sceneData.serialise(dataBuffer, Siege::BinarySerialisation::SERIALISE);
39+
Siege::BinarySerialisation::serialise(dataBuffer,
40+
sceneData,
41+
Siege::BinarySerialisation::SERIALISE);
4042

4143
char* data = reinterpret_cast<char*>(dataBuffer.data.data());
4244
Siege::PackFileData* fileData = Siege::PackFileData::Create(data, dataBuffer.data.size());

packer/src/types/StaticMeshDataPacker.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,9 @@ Siege::PackFileData* PackStaticMeshFile(const Siege::String& filePath,
221221
staticMeshData.indices);
222222

223223
Siege::BinarySerialisation::Buffer dataBuffer;
224-
staticMeshData.serialise(dataBuffer, Siege::BinarySerialisation::SERIALISE);
224+
Siege::BinarySerialisation::serialise(dataBuffer,
225+
staticMeshData,
226+
Siege::BinarySerialisation::SERIALISE);
225227

226228
char* data = reinterpret_cast<char*>(dataBuffer.data.data());
227229
Siege::PackFileData* fileData = Siege::PackFileData::Create(data, dataBuffer.data.size());

packer/src/types/Texture2DDataPacker.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ Siege::PackFileData* PackTexture2DFile(const Siege::String& filePath)
3636
std::copy_n(pixels, texture2dData.GetImageSize(), std::back_inserter(texture2dData.pixels));
3737

3838
Siege::BinarySerialisation::Buffer dataBuffer;
39-
texture2dData.serialise(dataBuffer, Siege::BinarySerialisation::SERIALISE);
39+
Siege::BinarySerialisation::serialise(dataBuffer,
40+
texture2dData,
41+
Siege::BinarySerialisation::SERIALISE);
4042

4143
char* data = reinterpret_cast<char*>(dataBuffer.data.data());
4244
Siege::PackFileData* fileData = Siege::PackFileData::Create(data, dataBuffer.data.size());

0 commit comments

Comments
 (0)