Files
2024-02-26 19:00:48 +01:00

40 lines
1.1 KiB
C++

// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
#include "ImportFont.h"
#if COMPILE_WITH_ASSETS_IMPORTER
#include "Engine/Core/DeleteMe.h"
#include "Engine/Core/Log.h"
#include "Engine/Serialization/FileReadStream.h"
#include "Engine/Render2D/FontAsset.h"
CreateAssetResult ImportFont::Import(CreateAssetContext& context)
{
// Base
IMPORT_SETUP(FontAsset, 3);
// Setup header
FontOptions options;
options.Hinting = FontHinting::Default;
options.Flags = FontFlags::AntiAliasing;
context.Data.CustomData.Copy(&options);
// Open the file
auto stream = FileReadStream::Open(context.InputPath);
if (stream == nullptr)
return CreateAssetResult::InvalidPath;
DeleteMe<FileReadStream> deleteStream(stream);
// Copy font file data
if (context.AllocateChunk(0))
return CreateAssetResult::CannotAllocateChunk;
const auto size = stream->GetLength();
context.Data.Header.Chunks[0]->Data.Allocate(size);
stream->ReadBytes(context.Data.Header.Chunks[0]->Get(), size);
return CreateAssetResult::Ok;
}
#endif