From 75770f293c4070459b58938dc12c3ecdfbf15b35 Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 14 Apr 2014 13:13:07 +0100 Subject: [PATCH] New class: SharedResourcePointer --- .../MacOSX/JuceDemo.xcodeproj/project.pbxproj | 2 + .../Builds/VisualStudio2010/JuceDemo.vcxproj | 1 + .../VisualStudio2010/JuceDemo.vcxproj.filters | 3 + .../Builds/VisualStudio2012/JuceDemo.vcxproj | 1 + .../VisualStudio2012/JuceDemo.vcxproj.filters | 3 + .../Builds/VisualStudio2013/JuceDemo.vcxproj | 1 + .../VisualStudio2013/JuceDemo.vcxproj.filters | 3 + .../iOS/JuceDemo.xcodeproj/project.pbxproj | 2 + .../Builds/CodeBlocks/The Introjucer.cbp | 4 + .../The Introjucer.xcodeproj/project.pbxproj | 2 + .../VisualStudio2005/The Introjucer.vcproj | 1 + .../VisualStudio2008/The Introjucer.vcproj | 1 + .../VisualStudio2010/The Introjucer.vcxproj | 1 + .../The Introjucer.vcxproj.filters | 3 + .../VisualStudio2012/The Introjucer.vcxproj | 1 + .../The Introjucer.vcxproj.filters | 3 + .../VisualStudio2013/The Introjucer.vcxproj | 1 + .../The Introjucer.vcxproj.filters | 3 + .../JuceDemoPlugin.xcodeproj/project.pbxproj | 2 + .../VisualStudio2005/JuceDemoPlugin.vcproj | 1 + .../VisualStudio2008/JuceDemoPlugin.vcproj | 1 + .../VisualStudio2010/JuceDemoPlugin.vcxproj | 1 + .../JuceDemoPlugin.vcxproj.filters | 3 + .../Plugin Host.xcodeproj/project.pbxproj | 2 + .../VisualStudio2010/Plugin Host.vcxproj | 1 + .../Plugin Host.vcxproj.filters | 3 + .../BinaryBuilder.xcodeproj/project.pbxproj | 2 + .../VisualStudio2008/BinaryBuilder.vcproj | 1 + .../HelloWorld.xcodeproj/project.pbxproj | 2 + .../Builds/VisualStudio2005/HelloWorld.vcproj | 1 + .../Builds/VisualStudio2008/HelloWorld.vcproj | 1 + .../iOS/HelloWorld.xcodeproj/project.pbxproj | 2 + .../Builds/VisualStudio2008/juce_dll.vcproj | 1 + modules/juce_core/juce_core.h | 1 + .../memory/juce_ReferenceCountedObject.h | 6 +- .../memory/juce_SharedResourcePointer.h | 120 ++++++++++++++++++ .../juce_win32_Direct2DGraphicsContext.cpp | 15 +-- .../juce_win32_DirectWriteTypeLayout.cpp | 12 +- .../native/juce_win32_DirectWriteTypeface.cpp | 13 +- .../juce_graphics/native/juce_win32_Fonts.cpp | 22 ++-- .../native/juce_mac_NSViewComponent.mm | 1 - 41 files changed, 212 insertions(+), 38 deletions(-) create mode 100644 modules/juce_core/memory/juce_SharedResourcePointer.h diff --git a/extras/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj b/extras/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj index 9fc0f30704..3d2a5b03f4 100644 --- a/extras/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj +++ b/extras/Demo/Builds/MacOSX/JuceDemo.xcodeproj/project.pbxproj @@ -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 = ""; }; 29FD491D882C7A35353517C8 = {isa = PBXGroup; children = ( diff --git a/extras/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj b/extras/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj index 2bdf20f6bf..4c9a938cb4 100644 --- a/extras/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj +++ b/extras/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj @@ -1398,6 +1398,7 @@ + diff --git a/extras/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj.filters b/extras/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj.filters index 7151b7541f..572e3b15c6 100644 --- a/extras/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj.filters +++ b/extras/Demo/Builds/VisualStudio2010/JuceDemo.vcxproj.filters @@ -2019,6 +2019,9 @@ Juce Modules\juce_core\memory + + Juce Modules\juce_core\memory + Juce Modules\juce_core\memory diff --git a/extras/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj b/extras/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj index 37734d83e0..c576849249 100644 --- a/extras/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj +++ b/extras/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj @@ -1404,6 +1404,7 @@ + diff --git a/extras/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj.filters b/extras/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj.filters index 7151b7541f..572e3b15c6 100644 --- a/extras/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj.filters +++ b/extras/Demo/Builds/VisualStudio2012/JuceDemo.vcxproj.filters @@ -2019,6 +2019,9 @@ Juce Modules\juce_core\memory + + Juce Modules\juce_core\memory + Juce Modules\juce_core\memory diff --git a/extras/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj b/extras/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj index d2885eac7d..49e8516c99 100644 --- a/extras/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj +++ b/extras/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj @@ -1404,6 +1404,7 @@ + diff --git a/extras/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj.filters b/extras/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj.filters index 44d7b549dd..59c259fd49 100644 --- a/extras/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj.filters +++ b/extras/Demo/Builds/VisualStudio2013/JuceDemo.vcxproj.filters @@ -2019,6 +2019,9 @@ Juce Modules\juce_core\memory + + Juce Modules\juce_core\memory + Juce Modules\juce_core\memory diff --git a/extras/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj b/extras/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj index ea1940489b..61e0ba1af8 100644 --- a/extras/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj +++ b/extras/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj @@ -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 = ""; }; 29FD491D882C7A35353517C8 = {isa = PBXGroup; children = ( diff --git a/extras/Introjucer/Builds/CodeBlocks/The Introjucer.cbp b/extras/Introjucer/Builds/CodeBlocks/The Introjucer.cbp index e3461cfe6d..2c5ab71141 100644 --- a/extras/Introjucer/Builds/CodeBlocks/The Introjucer.cbp +++ b/extras/Introjucer/Builds/CodeBlocks/The Introjucer.cbp @@ -822,6 +822,10 @@