1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Direct2D: Move MemoryFontFileLoader to DirectX.cpp

This commit is contained in:
reuk 2025-04-17 14:31:26 +01:00 committed by Oli
parent 234e75b2be
commit 98d4ddef87
2 changed files with 34 additions and 37 deletions

View file

@ -869,15 +869,18 @@ private:
};
//==============================================================================
MemoryFontFileLoader::MemoryFontFileLoader (MemoryBlock blob)
class DirectWriteCustomFontCollectionLoader::MemoryFontFileLoader final : public ComBaseClassHelper<IDWriteFontFileLoader>
{
public:
explicit MemoryFontFileLoader (MemoryBlock blob)
: block (std::make_shared<const MemoryBlock> (std::move (blob)))
{
}
{
}
HRESULT WINAPI MemoryFontFileLoader::CreateStreamFromKey (const void* fontFileReferenceKey,
HRESULT WINAPI CreateStreamFromKey (const void* fontFileReferenceKey,
UINT32 keySize,
IDWriteFontFileStream** fontFileStream) noexcept
{
IDWriteFontFileStream** fontFileStream) noexcept override
{
if (keySize != Uuid::size())
return E_INVALIDARG;
@ -890,10 +893,19 @@ HRESULT WINAPI MemoryFontFileLoader::CreateStreamFromKey (const void* fontFileRe
}
return E_INVALIDARG;
}
}
Uuid getUuid() const { return uuid; }
private:
std::shared_ptr<const MemoryBlock> block;
Uuid uuid;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MemoryFontFileLoader)
};
//==============================================================================
class FontFileEnumerator final : public ComBaseClassHelper<IDWriteFontFileEnumerator>
class DirectWriteCustomFontCollectionLoader::FontFileEnumerator final : public ComBaseClassHelper<IDWriteFontFileEnumerator>
{
public:
FontFileEnumerator (IDWriteFactory& factoryIn, ComSmartPtr<MemoryFontFileLoader> loaderIn)

View file

@ -470,24 +470,6 @@ private:
std::mutex mutex;
};
class MemoryFontFileLoader final : public ComBaseClassHelper<IDWriteFontFileLoader>
{
public:
explicit MemoryFontFileLoader (MemoryBlock blob);
HRESULT WINAPI CreateStreamFromKey (const void* fontFileReferenceKey,
UINT32 keySize,
IDWriteFontFileStream** fontFileStream) noexcept override;
Uuid getUuid() const { return uuid; }
private:
std::shared_ptr<const MemoryBlock> block;
Uuid uuid;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MemoryFontFileLoader)
};
class DirectWriteCustomFontCollectionLoader final : public ComBaseClassHelper<IDWriteFontCollectionLoader>
{
public:
@ -503,6 +485,9 @@ public:
IDWriteFontFileEnumerator** fontFileEnumerator) noexcept override;
private:
class MemoryFontFileLoader;
class FontFileEnumerator;
IDWriteFactory& factory;
std::vector<ComSmartPtr<MemoryFontFileLoader>> fileLoaders;
};