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)
|
class DirectWriteCustomFontCollectionLoader::MemoryFontFileLoader final : public ComBaseClassHelper<IDWriteFontFileLoader>
|
||||||
: block (std::make_shared<const MemoryBlock> (std::move (blob)))
|
|
||||||
{
|
{
|
||||||
}
|
public:
|
||||||
|
explicit MemoryFontFileLoader (MemoryBlock blob)
|
||||||
HRESULT WINAPI MemoryFontFileLoader::CreateStreamFromKey (const void* fontFileReferenceKey,
|
: block (std::make_shared<const MemoryBlock> (std::move (blob)))
|
||||||
UINT32 keySize,
|
|
||||||
IDWriteFontFileStream** fontFileStream) noexcept
|
|
||||||
{
|
|
||||||
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;
|
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:
|
public:
|
||||||
FontFileEnumerator (IDWriteFactory& factoryIn, ComSmartPtr<MemoryFontFileLoader> loaderIn)
|
FontFileEnumerator (IDWriteFactory& factoryIn, ComSmartPtr<MemoryFontFileLoader> loaderIn)
|
||||||
|
|
|
||||||
|
|
@ -470,24 +470,6 @@ private:
|
||||||
std::mutex mutex;
|
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>
|
class DirectWriteCustomFontCollectionLoader final : public ComBaseClassHelper<IDWriteFontCollectionLoader>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -503,6 +485,9 @@ public:
|
||||||
IDWriteFontFileEnumerator** fontFileEnumerator) noexcept override;
|
IDWriteFontFileEnumerator** fontFileEnumerator) noexcept override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
class MemoryFontFileLoader;
|
||||||
|
class FontFileEnumerator;
|
||||||
|
|
||||||
IDWriteFactory& factory;
|
IDWriteFactory& factory;
|
||||||
std::vector<ComSmartPtr<MemoryFontFileLoader>> fileLoaders;
|
std::vector<ComSmartPtr<MemoryFontFileLoader>> fileLoaders;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue