| @@ -519,6 +519,7 @@ | |||
| 720C3CA9E28181C76434D465 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 7286D6380C74734603D098EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 728E67FDBD3660742A33C7B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 7319ADBC735F957219774263 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 73267FE8DDE50FD1E6E31ED4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 7338D006521EDC5C10EEF974 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 734C43C3F7918061F2DDD214 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -1346,6 +1347,7 @@ | |||
| A2F0B85560090CFAC7D95132, | |||
| 734C43C3F7918061F2DDD214, | |||
| AA967AC6E8FDCD7502272DA7, | |||
| 7319ADBC735F957219774263, | |||
| D1D8A53A7614F106942DADED, | |||
| 6B1FEA349A6C8F51AB27E23C, ); name = memory; sourceTree = "<group>"; }; | |||
| 29FD491D882C7A35353517C8 = {isa = PBXGroup; children = ( | |||
| @@ -1398,6 +1398,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_AbstractFifo.h"/> | |||
| @@ -2019,6 +2019,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| @@ -1404,6 +1404,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_AbstractFifo.h"/> | |||
| @@ -2019,6 +2019,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| @@ -1404,6 +1404,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_AbstractFifo.h"/> | |||
| @@ -2019,6 +2019,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| @@ -513,6 +513,7 @@ | |||
| 720C3CA9E28181C76434D465 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 7286D6380C74734603D098EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 728E67FDBD3660742A33C7B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 7319ADBC735F957219774263 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 73267FE8DDE50FD1E6E31ED4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 7338D006521EDC5C10EEF974 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 734C43C3F7918061F2DDD214 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -1336,6 +1337,7 @@ | |||
| A2F0B85560090CFAC7D95132, | |||
| 734C43C3F7918061F2DDD214, | |||
| AA967AC6E8FDCD7502272DA7, | |||
| 7319ADBC735F957219774263, | |||
| D1D8A53A7614F106942DADED, | |||
| 6B1FEA349A6C8F51AB27E23C, ); name = memory; sourceTree = "<group>"; }; | |||
| 29FD491D882C7A35353517C8 = {isa = PBXGroup; children = ( | |||
| @@ -822,6 +822,10 @@ | |||
| <Option compile="0"/> | |||
| <Option link="0"/> | |||
| </Unit> | |||
| <Unit filename="../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"> | |||
| <Option compile="0"/> | |||
| <Option link="0"/> | |||
| </Unit> | |||
| <Unit filename="../../../../modules/juce_core/memory/juce_Singleton.h"> | |||
| <Option compile="0"/> | |||
| <Option link="0"/> | |||
| @@ -177,6 +177,7 @@ | |||
| 2107C02B684C7F5B75662333 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 210A4FDD4A56CF817E5E8567 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 215EAB10AE8D19F23AD2BDBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 21B527BEBFFFC536BA0DEE6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 21B6FE5EEB3E112385D62127 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 21D1D6A04B25346CD5524B89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 21F4416597D1AB02D38BA62E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -1135,6 +1136,7 @@ | |||
| 6AA46ED6C6DDD5A7BC72F686, | |||
| 9F7896DA332F9718CAB6B162, | |||
| 1A1B5A2E9F1DA2122D21F9DF, | |||
| 21B527BEBFFFC536BA0DEE6B, | |||
| 990F2A6080B28137CCE2D7B9, | |||
| 6E815592344CAA798C9848BF, ); name = memory; sourceTree = "<group>"; }; | |||
| 101599FA5E724FC0C78144B3 = {isa = PBXGroup; children = ( | |||
| @@ -679,6 +679,7 @@ | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| </Filter> | |||
| @@ -679,6 +679,7 @@ | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| </Filter> | |||
| @@ -1174,6 +1174,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_AbstractFifo.h"/> | |||
| @@ -1743,6 +1743,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| @@ -1180,6 +1180,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_AbstractFifo.h"/> | |||
| @@ -1743,6 +1743,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| @@ -1180,6 +1180,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_AbstractFifo.h"/> | |||
| @@ -1743,6 +1743,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| @@ -381,6 +381,7 @@ | |||
| 58CEDDC16E6A5293A4F81E84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 58E978708BAA8613A40F61E3 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; | |||
| 58FD5A3294F6D4F415B9CA60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 595ABB3C5072077C8009AB03 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 598E9C9D95393B4E4699CF0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 59968E95CF78A0E8A03B1DA1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../../../modules/juce_core/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 5A15B77FF78B76ADDF1EB203 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -1264,6 +1265,7 @@ | |||
| E04D8B4BAEB817D520C2EF4A, | |||
| 86B1672E14AD6F060FF57BB1, | |||
| 8BBD921B5A82DB52E6842A1B, | |||
| 595ABB3C5072077C8009AB03, | |||
| D2724DFF5CF142D5264EE85B, | |||
| 9F9AC54CF90FDB770E5FCA03, ); name = memory; sourceTree = "<group>"; }; | |||
| 94AD627E1726C9B93F8269D8 = {isa = PBXGroup; children = ( | |||
| @@ -1286,6 +1286,7 @@ | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| </Filter> | |||
| @@ -1286,6 +1286,7 @@ | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| </Filter> | |||
| @@ -1331,6 +1331,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_AbstractFifo.h"/> | |||
| @@ -1854,6 +1854,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| @@ -685,6 +685,7 @@ | |||
| B87F288891641371F12CB597 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| B8E2DE991BF0D13E2C488E1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| B9310BD20E2EF7D2A4895C1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| B9D2E7D1B6610271E1B359D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| BA2BCD20921648A42CBF54CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../../../modules/juce_core/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| BA40B3FE630313FA9BA2D9F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| BA947E82A08CB93B5A9B64F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -1195,6 +1196,7 @@ | |||
| 2176F72FC750E8376E696CAF, | |||
| CF67033CFC21C0060B538042, | |||
| E6EDE8F1BBF28362AC9E1F28, | |||
| B9D2E7D1B6610271E1B359D6, | |||
| D06DA3FA113EAB0CCF8D7A64, | |||
| 94B986F221A8369B8DE3D986, ); name = memory; sourceTree = "<group>"; }; | |||
| D295FCA29CAA8C0F9C29CE78 = {isa = PBXGroup; children = ( | |||
| @@ -1354,6 +1354,7 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\containers\juce_AbstractFifo.h"/> | |||
| @@ -1875,6 +1875,9 @@ | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| <ClInclude Include="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"> | |||
| <Filter>Juce Modules\juce_core\memory</Filter> | |||
| </ClInclude> | |||
| @@ -40,6 +40,7 @@ | |||
| 2D0CC061BF40931BC88D5DB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 31CA33ED0082255CC0849423 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 33A39DE96B690694A19AD8C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 3456971F540274F9AB31C7BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 39CD0F6C4B430CB7857FCCB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 39ED61F0DADF05D9388872D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 3CC375E8CCC0987FAE0B40BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -258,6 +259,7 @@ | |||
| A16A62698D337DCA6945476F, | |||
| CA60B0396D8F46E1952F8E36, | |||
| E8B73F6E0763B9DF3750FAB3, | |||
| 3456971F540274F9AB31C7BF, | |||
| 9BDF1653598CCC66FFF33532, | |||
| B476D2D5837C9D5EB94C3B84, ); name = memory; sourceTree = "<group>"; }; | |||
| ED0FCD22D34539916A9A62F9 = {isa = PBXGroup; children = ( | |||
| @@ -287,6 +287,7 @@ | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| </Filter> | |||
| @@ -363,6 +363,7 @@ | |||
| 898C4B2D036C170A6ED46DD0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 89A3C346A8D9173D9CBDD088 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 89C44D65C6EA486543A139E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; | |||
| 89F164CF6D809DD8AB8FDB55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 8A3F6FFBE098968DC1C4538C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 8BA63270C9EBFE66AF17E7EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 8BEBE3E3D47AD3E8AAACF7BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -714,6 +715,7 @@ | |||
| EF28BA2B5E24F4749F732230, | |||
| 601874CF9435F18E7B69AE6A, | |||
| 45905746CA7C3BFE98B583C9, | |||
| 89F164CF6D809DD8AB8FDB55, | |||
| 6C556B58616171CC70488F0D, | |||
| 6615B376201BA6A338D7177E, ); name = memory; sourceTree = "<group>"; }; | |||
| 7582B2AE14482E2927B3AE2F = {isa = PBXGroup; children = ( | |||
| @@ -289,6 +289,7 @@ | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| </Filter> | |||
| @@ -289,6 +289,7 @@ | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| </Filter> | |||
| @@ -360,6 +360,7 @@ | |||
| 898C4B2D036C170A6ED46DD0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 89A3C346A8D9173D9CBDD088 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 89C44D65C6EA486543A139E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; | |||
| 89F164CF6D809DD8AB8FDB55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 8A3F6FFBE098968DC1C4538C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 8BA63270C9EBFE66AF17E7EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 8BEBE3E3D47AD3E8AAACF7BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -712,6 +713,7 @@ | |||
| EF28BA2B5E24F4749F732230, | |||
| 601874CF9435F18E7B69AE6A, | |||
| 45905746CA7C3BFE98B583C9, | |||
| 89F164CF6D809DD8AB8FDB55, | |||
| 6C556B58616171CC70488F0D, | |||
| 6615B376201BA6A338D7177E, ); name = memory; sourceTree = "<group>"; }; | |||
| 7582B2AE14482E2927B3AE2F = {isa = PBXGroup; children = ( | |||
| @@ -1209,6 +1209,7 @@ | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_OptionalScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ReferenceCountedObject.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_ScopedPointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_SharedResourcePointer.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_Singleton.h"/> | |||
| <File RelativePath="..\..\..\..\modules\juce_core\memory\juce_WeakReference.h"/> | |||
| </Filter> | |||
| @@ -272,6 +272,7 @@ extern JUCE_API void JUCE_CALLTYPE logAssertion (const char* file, int line) noe | |||
| #include "zip/juce_GZIPDecompressorInputStream.h" | |||
| #include "zip/juce_ZipFile.h" | |||
| #include "containers/juce_PropertySet.h" | |||
| #include "memory/juce_SharedResourcePointer.h" | |||
| } | |||
| @@ -329,17 +329,17 @@ public: | |||
| //============================================================================== | |||
| /** Returns the object that this pointer references. | |||
| The pointer returned may be zero, of course. | |||
| The pointer returned may be null, of course. | |||
| */ | |||
| operator ReferencedType*() const noexcept { return referencedObject; } | |||
| /** Returns the object that this pointer references. | |||
| The pointer returned may be zero, of course. | |||
| The pointer returned may be null, of course. | |||
| */ | |||
| ReferencedType* get() const noexcept { return referencedObject; } | |||
| /** Returns the object that this pointer references. | |||
| The pointer returned may be zero, of course. | |||
| The pointer returned may be null, of course. | |||
| */ | |||
| ReferencedType* getObject() const noexcept { return referencedObject; } | |||
| @@ -0,0 +1,120 @@ | |||
| /* | |||
| ============================================================================== | |||
| This file is part of the juce_core module of the JUCE library. | |||
| Copyright (c) 2013 - Raw Material Software Ltd. | |||
| Permission to use, copy, modify, and/or distribute this software for any purpose with | |||
| or without fee is hereby granted, provided that the above copyright notice and this | |||
| permission notice appear in all copies. | |||
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD | |||
| TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN | |||
| NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | |||
| DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | |||
| IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |||
| CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||
| ------------------------------------------------------------------------------ | |||
| NOTE! This permissive ISC license applies ONLY to files within the juce_core module! | |||
| All other JUCE modules are covered by a dual GPL/commercial license, so if you are | |||
| using any other modules, be sure to check that you also comply with their license. | |||
| For more details, visit www.juce.com | |||
| ============================================================================== | |||
| */ | |||
| #ifndef JUCE_SHAREDRESOURCEPOINTER_H_INCLUDED | |||
| #define JUCE_SHAREDRESOURCEPOINTER_H_INCLUDED | |||
| //============================================================================== | |||
| /** | |||
| A smart-pointer that automatically creates and manages the lifetime of a | |||
| shared static instance of a class. | |||
| The SharedObjectType template type indicates the class to use for the shared | |||
| object - the only requirements on this class are that it must have a public | |||
| default constructor and destructor. | |||
| The SharedResourcePointer offers a pattern that differs from using a singleton or | |||
| static instance of an object, because it uses reference-counting to make sure that | |||
| the underlying shared object is automatically created/destroyed according to the | |||
| number of SharedResourcePointer objects that exist. When the last one is deleted, | |||
| the underlying object is also immediately destroyed. This allows you to use scoping | |||
| to manage the lifetime of a shared resource. | |||
| Note: the construction/deletion of the shared object must not involve any | |||
| code that makes recursive calls to a SharedResourcePointer, or you'll cause | |||
| a deadlock. | |||
| */ | |||
| template <typename SharedObjectType> | |||
| class SharedResourcePointer | |||
| { | |||
| public: | |||
| /** Creates an instance of the shared object. | |||
| If other SharedResourcePointer objects for this type already exist, then | |||
| this one will simply point to the same shared object that they are already | |||
| using. Otherwise, if this is the first SharedResourcePointer to be created, | |||
| then a shared object will be created automatically. | |||
| */ | |||
| SharedResourcePointer() | |||
| { | |||
| SharedObjectHolder& holder = getSharedObjectHolder(); | |||
| const SpinLock::ScopedLockType sl (holder.lock); | |||
| if (++(holder.refCount) == 1) | |||
| holder.sharedInstance = new SharedObjectType(); | |||
| sharedObject = holder.sharedInstance; | |||
| } | |||
| /** Destructor. | |||
| If no other SharedResourcePointer objects exist, this will also delete | |||
| the shared object to which it refers. | |||
| */ | |||
| ~SharedResourcePointer() | |||
| { | |||
| SharedObjectHolder& holder = getSharedObjectHolder(); | |||
| const SpinLock::ScopedLockType sl (holder.lock); | |||
| if (--(holder.refCount) == 0) | |||
| holder.sharedInstance = nullptr; | |||
| } | |||
| /** Returns the shared object. */ | |||
| operator SharedObjectType*() const noexcept { return sharedObject; } | |||
| /** Returns the shared object. */ | |||
| SharedObjectType& get() const noexcept { return *sharedObject; } | |||
| /** Returns the object that this pointer references. | |||
| The pointer returned may be zero, of course. | |||
| */ | |||
| SharedObjectType& getObject() const noexcept { return *sharedObject; } | |||
| SharedObjectType* operator->() const noexcept { return sharedObject; } | |||
| private: | |||
| struct SharedObjectHolder : public ReferenceCountedObject | |||
| { | |||
| SpinLock lock; | |||
| ScopedPointer<SharedObjectType> sharedInstance; | |||
| int refCount; | |||
| }; | |||
| static SharedObjectHolder& getSharedObjectHolder() noexcept | |||
| { | |||
| static char holder [sizeof (SharedObjectHolder)] = { 0 }; | |||
| return *reinterpret_cast<SharedObjectHolder*> (holder); | |||
| } | |||
| SharedObjectType* sharedObject; | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (SharedResourcePointer) | |||
| }; | |||
| #endif // JUCE_SHAREDRESOURCEPOINTER_H_INCLUDED | |||
| @@ -37,10 +37,9 @@ public: | |||
| D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(); | |||
| D2D1_HWND_RENDER_TARGET_PROPERTIES propsHwnd = D2D1::HwndRenderTargetProperties (hwnd, size); | |||
| const Direct2DFactories& factories = Direct2DFactories::getInstance(); | |||
| if (factories.d2dFactory != nullptr) | |||
| if (factories->d2dFactory != nullptr) | |||
| { | |||
| HRESULT hr = factories.d2dFactory->CreateHwndRenderTarget (props, propsHwnd, renderingTarget.resetAndGetPointerAddress()); | |||
| HRESULT hr = factories->d2dFactory->CreateHwndRenderTarget (props, propsHwnd, renderingTarget.resetAndGetPointerAddress()); | |||
| jassert (SUCCEEDED (hr)); (void) hr; | |||
| hr = renderingTarget->CreateSolidColorBrush (D2D1::ColorF::ColorF (0.0f, 0.0f, 0.0f, 1.0f), colourBrush.resetAndGetPointerAddress()); | |||
| } | |||
| @@ -287,9 +286,8 @@ public: | |||
| { | |||
| renderingTarget->SetTransform (transformToMatrix (currentState->transform)); | |||
| const Direct2DFactories& factories = Direct2DFactories::getInstance(); | |||
| DirectWriteTypeLayout::drawToD2DContext (text, area, renderingTarget, factories.directWriteFactory, | |||
| factories.d2dFactory, factories.systemFonts); | |||
| DirectWriteTypeLayout::drawToD2DContext (text, area, renderingTarget, factories->directWriteFactory, | |||
| factories->d2dFactory, factories->systemFonts); | |||
| renderingTarget->SetTransform (D2D1::IdentityMatrix()); | |||
| return true; | |||
| @@ -695,6 +693,7 @@ public: | |||
| //============================================================================== | |||
| private: | |||
| SharedResourcePointer<Direct2DFactories> factories; | |||
| HWND hwnd; | |||
| ComSmartPtr <ID2D1HwndRenderTarget> renderingTarget; | |||
| ComSmartPtr <ID2D1SolidColorBrush> colourBrush; | |||
| @@ -733,7 +732,7 @@ private: | |||
| static ID2D1PathGeometry* rectListToPathGeometry (const RectangleList<int>& clipRegion) | |||
| { | |||
| ID2D1PathGeometry* p = nullptr; | |||
| Direct2DFactories::getInstance().d2dFactory->CreatePathGeometry (&p); | |||
| factories->d2dFactory->CreatePathGeometry (&p); | |||
| ComSmartPtr <ID2D1GeometrySink> sink; | |||
| HRESULT hr = p->Open (sink.resetAndGetPointerAddress()); // xxx handle error | |||
| @@ -811,7 +810,7 @@ private: | |||
| static ID2D1PathGeometry* pathToPathGeometry (const Path& path, const AffineTransform& transform) | |||
| { | |||
| ID2D1PathGeometry* p = nullptr; | |||
| Direct2DFactories::getInstance().d2dFactory->CreatePathGeometry (&p); | |||
| factories->d2dFactory->CreatePathGeometry (&p); | |||
| ComSmartPtr <ID2D1GeometrySink> sink; | |||
| HRESULT hr = p->Open (sink.resetAndGetPointerAddress()); | |||
| @@ -389,9 +389,9 @@ namespace DirectWriteTypeLayout | |||
| bool TextLayout::createNativeLayout (const AttributedString& text) | |||
| { | |||
| #if JUCE_USE_DIRECTWRITE | |||
| const Direct2DFactories& factories = Direct2DFactories::getInstance(); | |||
| SharedResourcePointer<Direct2DFactories> factories; | |||
| if (factories.d2dFactory != nullptr && factories.systemFonts != nullptr) | |||
| if (factories->d2dFactory != nullptr && factories->systemFonts != nullptr) | |||
| { | |||
| #if JUCE_64BIT | |||
| // There's a mysterious bug in 64-bit Windows that causes garbage floating-point | |||
| @@ -402,13 +402,13 @@ bool TextLayout::createNativeLayout (const AttributedString& text) | |||
| { | |||
| hasBeenCalled = true; | |||
| TextLayout dummy; | |||
| DirectWriteTypeLayout::createLayout (dummy, text, factories.directWriteFactory, | |||
| factories.d2dFactory, factories.systemFonts); | |||
| DirectWriteTypeLayout::createLayout (dummy, text, factories->directWriteFactory, | |||
| factories->d2dFactory, factories->systemFonts); | |||
| } | |||
| #endif | |||
| DirectWriteTypeLayout::createLayout (*this, text, factories.directWriteFactory, | |||
| factories.d2dFactory, factories.systemFonts); | |||
| DirectWriteTypeLayout::createLayout (*this, text, factories->directWriteFactory, | |||
| factories->d2dFactory, factories->systemFonts); | |||
| return true; | |||
| } | |||
| #else | |||
| @@ -107,15 +107,9 @@ public: | |||
| systemFonts = nullptr; | |||
| } | |||
| static const Direct2DFactories& getInstance() | |||
| { | |||
| static Direct2DFactories instance; | |||
| return instance; | |||
| } | |||
| ComSmartPtr <ID2D1Factory> d2dFactory; | |||
| ComSmartPtr <IDWriteFactory> directWriteFactory; | |||
| ComSmartPtr <IDWriteFontCollection> systemFonts; | |||
| ComSmartPtr<ID2D1Factory> d2dFactory; | |||
| ComSmartPtr<IDWriteFactory> directWriteFactory; | |||
| ComSmartPtr<IDWriteFontCollection> systemFonts; | |||
| private: | |||
| DynamicLibrary direct2dDll, directWriteDll; | |||
| @@ -255,6 +249,7 @@ public: | |||
| IDWriteFontFace* getIDWriteFontFace() const noexcept { return dwFontFace; } | |||
| private: | |||
| SharedResourcePointer<Direct2DFactories> factories; | |||
| ComSmartPtr<IDWriteFontFace> dwFontFace; | |||
| float unitsToHeightScaleFactor, heightToPointsFactor, ascent; | |||
| int designUnitsPerEm; | |||
| @@ -176,17 +176,17 @@ StringArray Font::findAllTypefaceNames() | |||
| StringArray results; | |||
| #if JUCE_USE_DIRECTWRITE | |||
| const Direct2DFactories& factories = Direct2DFactories::getInstance(); | |||
| SharedResourcePointer<Direct2DFactories> factories; | |||
| if (factories.systemFonts != nullptr) | |||
| if (factories->systemFonts != nullptr) | |||
| { | |||
| ComSmartPtr<IDWriteFontFamily> fontFamily; | |||
| uint32 fontFamilyCount = 0; | |||
| fontFamilyCount = factories.systemFonts->GetFontFamilyCount(); | |||
| fontFamilyCount = factories->systemFonts->GetFontFamilyCount(); | |||
| for (uint32 i = 0; i < fontFamilyCount; ++i) | |||
| { | |||
| HRESULT hr = factories.systemFonts->GetFontFamily (i, fontFamily.resetAndGetPointerAddress()); | |||
| HRESULT hr = factories->systemFonts->GetFontFamily (i, fontFamily.resetAndGetPointerAddress()); | |||
| if (SUCCEEDED (hr)) | |||
| results.addIfNotAlreadyThere (getFontFamilyName (fontFamily)); | |||
| @@ -226,20 +226,20 @@ StringArray Font::findAllTypefaceStyles (const String& family) | |||
| StringArray results; | |||
| #if JUCE_USE_DIRECTWRITE | |||
| const Direct2DFactories& factories = Direct2DFactories::getInstance(); | |||
| SharedResourcePointer<Direct2DFactories> factories; | |||
| if (factories.systemFonts != nullptr) | |||
| if (factories->systemFonts != nullptr) | |||
| { | |||
| BOOL fontFound = false; | |||
| uint32 fontIndex = 0; | |||
| HRESULT hr = factories.systemFonts->FindFamilyName (family.toWideCharPointer(), &fontIndex, &fontFound); | |||
| HRESULT hr = factories->systemFonts->FindFamilyName (family.toWideCharPointer(), &fontIndex, &fontFound); | |||
| if (! fontFound) | |||
| fontIndex = 0; | |||
| // Get the font family using the search results | |||
| // Fonts like: Times New Roman, Times New Roman Bold, Times New Roman Italic are all in the same font family | |||
| ComSmartPtr<IDWriteFontFamily> fontFamily; | |||
| hr = factories.systemFonts->GetFontFamily (fontIndex, fontFamily.resetAndGetPointerAddress()); | |||
| hr = factories->systemFonts->GetFontFamily (fontIndex, fontFamily.resetAndGetPointerAddress()); | |||
| // Get the font faces | |||
| ComSmartPtr<IDWriteFont> dwFont; | |||
| @@ -619,11 +619,11 @@ const MAT2 WindowsTypeface::identityMatrix = { { 0, 1 }, { 0, 0 }, { 0, 0 }, { 0 | |||
| Typeface::Ptr Typeface::createSystemTypefaceFor (const Font& font) | |||
| { | |||
| #if JUCE_USE_DIRECTWRITE | |||
| const Direct2DFactories& factories = Direct2DFactories::getInstance(); | |||
| SharedResourcePointer<Direct2DFactories> factories; | |||
| if (factories.systemFonts != nullptr) | |||
| if (factories->systemFonts != nullptr) | |||
| { | |||
| ScopedPointer<WindowsDirectWriteTypeface> wtf (new WindowsDirectWriteTypeface (font, factories.systemFonts)); | |||
| ScopedPointer<WindowsDirectWriteTypeface> wtf (new WindowsDirectWriteTypeface (font, factories->systemFonts)); | |||
| if (wtf->loadedOk()) | |||
| return wtf.release(); | |||
| @@ -22,7 +22,6 @@ | |||
| ============================================================================== | |||
| */ | |||
| struct NSViewResizeWatcher | |||
| { | |||
| NSViewResizeWatcher() : callback (nil) {} | |||