Files
FlaxEngine/Source/Engine/Content/Upgraders/FontAssetUpgrader.h
2023-01-10 15:29:37 +01:00

76 lines
2.0 KiB
C++

// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#if USE_EDITOR
#include "BinaryAssetUpgrader.h"
#include "Engine/Render2D/FontAsset.h"
/// <summary>
/// Font Asset Upgrader
/// </summary>
/// <seealso cref="BinaryAssetUpgrader" />
class FontAssetUpgrader : public BinaryAssetUpgrader
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="FontAssetUpgrader"/> class.
/// </summary>
FontAssetUpgrader()
{
static const Upgrader upgraders[] =
{
{ 1, 2, &Upgrade_1_To_2 },
{ 2, 3, &Upgrade_2_To_3 },
};
setup(upgraders, ARRAY_COUNT(upgraders));
}
private:
// ============================================
// Version 1:
// Designed: long time ago in a galaxy far far away
// Custom Data: not used
// Chunk 0: Header
// Chunk 1: Font File data
// ============================================
// Version 2:
// Designed: 4/20/2017
// Custom Data: not used
// Chunk 0: Font File data
// ============================================
// Version 3:
// Designed: 10/24/2019
// Custom Data: Header1
// Chunk 0: Font File data
// ============================================
typedef FontOptions Header1;
static bool Upgrade_1_To_2(AssetMigrationContext& context)
{
ASSERT(context.Input.SerializedVersion == 1 && context.Output.SerializedVersion == 2);
if (context.AllocateChunk(0))
return true;
context.Output.Header.Chunks[0]->Data.Copy(context.Input.Header.Chunks[1]->Data);
return false;
}
static bool Upgrade_2_To_3(AssetMigrationContext& context)
{
ASSERT(context.Input.SerializedVersion == 2 && context.Output.SerializedVersion == 3);
Header1 header;
header.Hinting = FontHinting::Default;
header.Flags = FontFlags::AntiAliasing;
context.Output.CustomData.Copy(&header);
return CopyChunk(context, 0);
}
};
#endif