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:
parent
234e75b2be
commit
98d4ddef87
2 changed files with 34 additions and 37 deletions
|
|
@ -869,31 +869,43 @@ private:
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
MemoryFontFileLoader::MemoryFontFileLoader (MemoryBlock blob)
|
||||
: block (std::make_shared<const MemoryBlock> (std::move (blob)))
|
||||
class DirectWriteCustomFontCollectionLoader::MemoryFontFileLoader final : public ComBaseClassHelper<IDWriteFontFileLoader>
|
||||
{
|
||||
}
|
||||
|
||||
HRESULT WINAPI MemoryFontFileLoader::CreateStreamFromKey (const void* fontFileReferenceKey,
|
||||
UINT32 keySize,
|
||||
IDWriteFontFileStream** fontFileStream) noexcept
|
||||
{
|
||||
if (keySize != Uuid::size())
|
||||
return E_INVALIDARG;
|
||||
|
||||
Uuid requestedKey { static_cast<const uint8*> (fontFileReferenceKey) };
|
||||
|
||||
if (requestedKey == uuid)
|
||||
public:
|
||||
explicit MemoryFontFileLoader (MemoryBlock blob)
|
||||
: block (std::make_shared<const MemoryBlock> (std::move (blob)))
|
||||
{
|
||||
*fontFileStream = new MemoryFontFileStream { block };
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
HRESULT WINAPI CreateStreamFromKey (const void* fontFileReferenceKey,
|
||||
UINT32 keySize,
|
||||
IDWriteFontFileStream** fontFileStream) noexcept override
|
||||
{
|
||||
if (keySize != Uuid::size())
|
||||
return E_INVALIDARG;
|
||||
|
||||
Uuid requestedKey { static_cast<const uint8*> (fontFileReferenceKey) };
|
||||
|
||||
if (requestedKey == uuid)
|
||||
{
|
||||
*fontFileStream = new MemoryFontFileStream { block };
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue