From 98d4ddef87657db2b13a4089e6c60a5e319ac669 Mon Sep 17 00:00:00 2001 From: reuk Date: Thu, 17 Apr 2025 14:31:26 +0100 Subject: [PATCH] Direct2D: Move MemoryFontFileLoader to DirectX.cpp --- .../native/juce_DirectX_windows.cpp | 50 ++++++++++++------- .../native/juce_DirectX_windows.h | 21 ++------ 2 files changed, 34 insertions(+), 37 deletions(-) diff --git a/modules/juce_graphics/native/juce_DirectX_windows.cpp b/modules/juce_graphics/native/juce_DirectX_windows.cpp index 3e6663a6d4..6d7203f78e 100644 --- a/modules/juce_graphics/native/juce_DirectX_windows.cpp +++ b/modules/juce_graphics/native/juce_DirectX_windows.cpp @@ -869,31 +869,43 @@ private: }; //============================================================================== -MemoryFontFileLoader::MemoryFontFileLoader (MemoryBlock blob) - : block (std::make_shared (std::move (blob))) +class DirectWriteCustomFontCollectionLoader::MemoryFontFileLoader final : public ComBaseClassHelper { -} - -HRESULT WINAPI MemoryFontFileLoader::CreateStreamFromKey (const void* fontFileReferenceKey, - UINT32 keySize, - IDWriteFontFileStream** fontFileStream) noexcept -{ - if (keySize != Uuid::size()) - return E_INVALIDARG; - - Uuid requestedKey { static_cast (fontFileReferenceKey) }; - - if (requestedKey == uuid) +public: + explicit MemoryFontFileLoader (MemoryBlock blob) + : block (std::make_shared (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 (fontFileReferenceKey) }; + + if (requestedKey == uuid) + { + *fontFileStream = new MemoryFontFileStream { block }; + return S_OK; + } + + return E_INVALIDARG; + } + + Uuid getUuid() const { return uuid; } + +private: + std::shared_ptr block; + Uuid uuid; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MemoryFontFileLoader) +}; //============================================================================== -class FontFileEnumerator final : public ComBaseClassHelper +class DirectWriteCustomFontCollectionLoader::FontFileEnumerator final : public ComBaseClassHelper { public: FontFileEnumerator (IDWriteFactory& factoryIn, ComSmartPtr loaderIn) diff --git a/modules/juce_graphics/native/juce_DirectX_windows.h b/modules/juce_graphics/native/juce_DirectX_windows.h index ec4622e921..281b7c2f7a 100644 --- a/modules/juce_graphics/native/juce_DirectX_windows.h +++ b/modules/juce_graphics/native/juce_DirectX_windows.h @@ -470,24 +470,6 @@ private: std::mutex mutex; }; -class MemoryFontFileLoader final : public ComBaseClassHelper -{ -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 block; - Uuid uuid; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MemoryFontFileLoader) -}; - class DirectWriteCustomFontCollectionLoader final : public ComBaseClassHelper { public: @@ -503,6 +485,9 @@ public: IDWriteFontFileEnumerator** fontFileEnumerator) noexcept override; private: + class MemoryFontFileLoader; + class FontFileEnumerator; + IDWriteFactory& factory; std::vector> fileLoaders; };