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

Direct2D: Move FontFileEnumerator to DirectX.cpp

This commit is contained in:
reuk 2025-04-17 14:22:00 +01:00 committed by Oli
parent 8d29edec92
commit 96683e49a1
2 changed files with 30 additions and 36 deletions

View file

@ -884,30 +884,40 @@ HRESULT WINAPI MemoryFontFileLoader::CreateStreamFromKey (const void* fontFileRe
}
//==============================================================================
FontFileEnumerator::FontFileEnumerator (IDWriteFactory& factoryIn,
ComSmartPtr<MemoryFontFileLoader> loaderIn)
: factory (factoryIn), loader (loaderIn) {}
HRESULT WINAPI FontFileEnumerator::GetCurrentFontFile (IDWriteFontFile** fontFile) noexcept
class FontFileEnumerator final : public ComBaseClassHelper<IDWriteFontFileEnumerator>
{
*fontFile = nullptr;
public:
FontFileEnumerator (IDWriteFactory& factoryIn, ComSmartPtr<MemoryFontFileLoader> loaderIn)
: factory (factoryIn), loader (loaderIn) {}
if (! isPositiveAndBelow (rawDataIndex, 1))
return E_FAIL;
HRESULT WINAPI GetCurrentFontFile (IDWriteFontFile** fontFile) noexcept override
{
*fontFile = nullptr;
const auto uuid = loader->getUuid();
return factory.CreateCustomFontFileReference (uuid.getRawData(),
(UINT32) uuid.size(),
loader,
fontFile);
}
if (! isPositiveAndBelow (rawDataIndex, 1))
return E_FAIL;
HRESULT WINAPI FontFileEnumerator::MoveNext (BOOL* hasCurrentFile) noexcept
{
++rawDataIndex;
*hasCurrentFile = rawDataIndex < 1 ? TRUE : FALSE;
return S_OK;
}
const auto uuid = loader->getUuid();
return factory.CreateCustomFontFileReference (uuid.getRawData(),
(UINT32) uuid.size(),
loader,
fontFile);
}
HRESULT WINAPI MoveNext (BOOL* hasCurrentFile) noexcept override
{
++rawDataIndex;
*hasCurrentFile = rawDataIndex < 1 ? TRUE : FALSE;
return S_OK;
}
private:
IDWriteFactory& factory;
ComSmartPtr<MemoryFontFileLoader> loader;
size_t rawDataIndex = std::numeric_limits<size_t>::max();
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FontFileEnumerator)
};
//==============================================================================
DirectWriteCustomFontCollectionLoader::DirectWriteCustomFontCollectionLoader (IDWriteFactory& factoryIn)

View file

@ -506,22 +506,6 @@ private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MemoryFontFileLoader)
};
class FontFileEnumerator final : public ComBaseClassHelper<IDWriteFontFileEnumerator>
{
public:
FontFileEnumerator (IDWriteFactory& factoryIn, ComSmartPtr<MemoryFontFileLoader> loaderIn);
HRESULT WINAPI GetCurrentFontFile (IDWriteFontFile** fontFile) noexcept override;
HRESULT WINAPI MoveNext (BOOL* hasCurrentFile) noexcept override;
private:
IDWriteFactory& factory;
ComSmartPtr<MemoryFontFileLoader> loader;
size_t rawDataIndex = std::numeric_limits<size_t>::max();
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FontFileEnumerator)
};
class DirectWriteCustomFontCollectionLoader final : public ComBaseClassHelper<IDWriteFontCollectionLoader>
{
public: