Skip to content

Commit 2031586

Browse files
authored
Merge pull request #85 from bboczula/codex/issue-43-codec-registry
[codex] Build internal codec registry probing
2 parents 63e5b0d + d86e73f commit 2031586

6 files changed

Lines changed: 579 additions & 25 deletions

File tree

source/common/AssetSuite.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,10 @@ AssetSuite::ErrorCode AssetSuite::Manager::ImageDecode(ImageDecoders decoder)
281281

282282
if (decoder == ImageDecoders::Auto)
283283
{
284-
decoder = state.codecRegistry.ResolveImageDecoder(state.fileInfo.extension);
284+
decoder = state.codecRegistry.ProbeImageDecoder(
285+
state.fileInfo.extension,
286+
state.rawBuffer.data(),
287+
state.rawBuffer.size());
285288
if (decoder == ImageDecoders::Auto)
286289
{
287290
state.diagnostics.Add(ErrorCode::FileTypeNotSupported, "Image file type is not supported.");
@@ -361,7 +364,10 @@ AssetSuite::ErrorCode AssetSuite::Manager::MeshDecode(MeshDecoders decoder)
361364

362365
if (decoder == MeshDecoders::Auto)
363366
{
364-
decoder = state.codecRegistry.ResolveMeshDecoder(state.fileInfo.extension);
367+
decoder = state.codecRegistry.ProbeMeshDecoder(
368+
state.fileInfo.extension,
369+
state.rawBuffer.data(),
370+
state.rawBuffer.size());
365371
if (decoder == MeshDecoders::Auto)
366372
{
367373
state.diagnostics.Add(ErrorCode::FileTypeNotSupported, "Mesh file type is not supported.");

source/common/ImageEncoder.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ namespace AssetSuite
88
{
99
class ImageEncoder
1010
{
11+
public:
12+
virtual ~ImageEncoder() = default;
1113
virtual std::vector<BYTE> Encode(const std::vector<BYTE>& buffer, const ImageDescriptor& descriptor) = 0;
1214
};
13-
}
15+
}

0 commit comments

Comments
 (0)