This commit is contained in:
parent
1ab514be71
commit
197e10c0cf
2 changed files with 18 additions and 11 deletions
|
|
@ -26,7 +26,6 @@ struct AssetMetadata
|
|||
Type_T type;
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
struct BlobMetadata
|
||||
{
|
||||
Tag_T tag;
|
||||
|
|
|
|||
|
|
@ -38,23 +38,31 @@ public:
|
|||
destination,
|
||||
std::ios::binary | std::ios::trunc,
|
||||
};
|
||||
ensure(stream.is_open(), "Failed to pack shader asset to {}", destination.string());
|
||||
|
||||
// NOLINTBEGIN(cppcoreguidelines-pro-type-cstyle-cast)
|
||||
stream.write((char *)&asset_metadata, sizeof(asset_metadata));
|
||||
stream.write((char *)&metadata, sizeof(metadata));
|
||||
|
||||
auto code_blob_metadata = BlobMetadata {
|
||||
const auto code_blob_metadata = BlobMetadata {
|
||||
.tag = std::to_underlying(BlobTag::code),
|
||||
.offset = static_cast<size_t>(stream.tellp()) + sizeof(BlobMetadata),
|
||||
.compression_type = CompressionType::none,
|
||||
.compressed_size = code_blob.size(),
|
||||
.uncompressed_size = code_blob.size(),
|
||||
};
|
||||
stream.write((char *)&code_blob_metadata, sizeof(BlobMetadata));
|
||||
|
||||
stream.write((char *)code_blob.data(), static_cast<long long>(code_blob.size()));
|
||||
// NOLINTEND(cppcoreguidelines-pro-type-cstyle-cast)
|
||||
ensure(stream.is_open(), "Failed to pack shader asset to {}", destination.string());
|
||||
const auto write = [&stream](auto &field) {
|
||||
stream.write(std::bit_cast<char *>(&field), sizeof(field));
|
||||
};
|
||||
|
||||
write(asset_metadata.type);
|
||||
write(asset_metadata.version);
|
||||
write(metadata.type);
|
||||
write(code_blob_metadata.tag);
|
||||
write(code_blob_metadata.offset);
|
||||
write(code_blob_metadata.compression_type);
|
||||
write(code_blob_metadata.compressed_size);
|
||||
write(code_blob_metadata.uncompressed_size);
|
||||
stream.write(
|
||||
std::bit_cast<char *>(code_blob.data()),
|
||||
static_cast<long long>(code_blob.size())
|
||||
);
|
||||
}
|
||||
|
||||
ShaderAsset(const std::filesystem::path &path);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue