1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

New class: SharedResourcePointer

This commit is contained in:
jules 2014-04-14 13:13:07 +01:00
parent d7777c87c5
commit 75770f293c
41 changed files with 212 additions and 38 deletions

View file

@ -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 = (

View file

@ -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"/>

View file

@ -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>

View file

@ -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"/>

View file

@ -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>

View file

@ -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"/>

View file

@ -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>

View file

@ -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 = (

View file

@ -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"/>

View file

@ -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 = (

View file

@ -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>

View file

@ -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>

View file

@ -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"/>

View file

@ -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>

View file

@ -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"/>

View file

@ -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>

View file

@ -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"/>

View file

@ -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>

View file

@ -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 = (

View file

@ -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>

View file

@ -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>

View file

@ -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"/>

View file

@ -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>

View file

@ -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 = (

View file

@ -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"/>

View file

@ -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>

View file

@ -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 = (

View file

@ -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>

View file

@ -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 = (

View file

@ -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>

View file

@ -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>

View file

@ -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 = (

View file

@ -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>

View file

@ -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"
}

View file

@ -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; }

View file

@ -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

View file

@ -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());

View file

@ -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

View file

@ -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;

View file

@ -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();

View file

@ -22,7 +22,6 @@
==============================================================================
*/
struct NSViewResizeWatcher
{
NSViewResizeWatcher() : callback (nil) {}