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:
parent
8d29edec92
commit
96683e49a1
2 changed files with 30 additions and 36 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue