| @@ -173,6 +173,7 @@ | |||||
| 271A1D94B96A8B7C949FD8ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; | 271A1D94B96A8B7C949FD8ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2A060BB0D79BEC3CF644F553 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; | 2A060BB0D79BEC3CF644F553 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2A4B079CDB9C40EB912B6EEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; | 2A4B079CDB9C40EB912B6EEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2AADCE9D8BADF4DAC05CCA1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | |||||
| 2B074BFC193A25602E73D0CC = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_core/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; | 2B074BFC193A25602E73D0CC = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_core/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2B8548461E318DCB3354DB43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; | 2B8548461E318DCB3354DB43 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2BB98D1E325EF7BD90C6BBB4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; | 2BB98D1E325EF7BD90C6BBB4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| @@ -1202,6 +1203,7 @@ | |||||
| 1F36217CE7A5B1D63D41EA6C, | 1F36217CE7A5B1D63D41EA6C, | ||||
| 045B9C5D21C5C86FED140D81, | 045B9C5D21C5C86FED140D81, | ||||
| 0B96A219A0CFF707E5A13B68, | 0B96A219A0CFF707E5A13B68, | ||||
| 2AADCE9D8BADF4DAC05CCA1E, | |||||
| 21FAFA7F2C5D0E8D99876EA8, | 21FAFA7F2C5D0E8D99876EA8, | ||||
| 5843A5060852C6ACC4770EC7 ); name = native; sourceTree = "<group>"; }; | 5843A5060852C6ACC4770EC7 ); name = native; sourceTree = "<group>"; }; | ||||
| E9819C83D0B797FC71811B1B = { isa = PBXGroup; children = ( | E9819C83D0B797FC71811B1B = { isa = PBXGroup; children = ( | ||||
| @@ -1874,6 +1874,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -1874,6 +1874,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -1166,6 +1166,7 @@ | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\effects\juce_ImageEffectFilter.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\effects\juce_ImageEffectFilter.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_Component.h"/> | <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_Component.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_ComponentListener.h"/> | <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_ComponentListener.h"/> | ||||
| @@ -1851,6 +1851,9 @@ | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"> | ||||
| <Filter>Juce Modules\juce_graphics\native</Filter> | <Filter>Juce Modules\juce_graphics\native</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"> | |||||
| <Filter>Juce Modules\juce_graphics\native</Filter> | |||||
| </ClInclude> | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"> | <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"> | ||||
| <Filter>Juce Modules\juce_graphics</Filter> | <Filter>Juce Modules\juce_graphics</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -185,6 +185,7 @@ | |||||
| 2590DCE65DE2323D9EF77214 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; | 2590DCE65DE2323D9EF77214 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2597ED98D3C16A7EEF1FBFFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | 2597ED98D3C16A7EEF1FBFFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 25FECE7ACACB29E1725A6A17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; | 25FECE7ACACB29E1725A6A17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2649F70294DB168919CBCAD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | |||||
| 2666A5013948E2EAD29458C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; | 2666A5013948E2EAD29458C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 26B73C77D47B146F92BEA265 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; | 26B73C77D47B146F92BEA265 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2708E4F2F73D88F73D8E54D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; | 2708E4F2F73D88F73D8E54D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| @@ -1511,6 +1512,7 @@ | |||||
| 8EB9B4853F225BDB97D6626E, | 8EB9B4853F225BDB97D6626E, | ||||
| 8154D2D681E028B8783E5331, | 8154D2D681E028B8783E5331, | ||||
| 0BBEDD3E8C0C2B7C4B52016A, | 0BBEDD3E8C0C2B7C4B52016A, | ||||
| 2649F70294DB168919CBCAD3, | |||||
| 5712EB90A8B51DBBC4E19A39, | 5712EB90A8B51DBBC4E19A39, | ||||
| 5CABE190EBD0F4EEB763114A ); name = native; sourceTree = "<group>"; }; | 5CABE190EBD0F4EEB763114A ); name = native; sourceTree = "<group>"; }; | ||||
| 980520A52BB3BF76E45AECA8 = { isa = PBXGroup; children = ( | 980520A52BB3BF76E45AECA8 = { isa = PBXGroup; children = ( | ||||
| @@ -2608,6 +2608,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -2608,6 +2608,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -1431,6 +1431,7 @@ | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\effects\juce_ImageEffectFilter.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\effects\juce_ImageEffectFilter.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_Component.h"/> | <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_Component.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_ComponentListener.h"/> | <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_ComponentListener.h"/> | ||||
| @@ -2334,6 +2334,9 @@ | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"> | ||||
| <Filter>Juce Modules\juce_graphics\native</Filter> | <Filter>Juce Modules\juce_graphics\native</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"> | |||||
| <Filter>Juce Modules\juce_graphics\native</Filter> | |||||
| </ClInclude> | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"> | <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"> | ||||
| <Filter>Juce Modules\juce_graphics</Filter> | <Filter>Juce Modules\juce_graphics</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -178,6 +178,7 @@ | |||||
| 2590DCE65DE2323D9EF77214 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; | 2590DCE65DE2323D9EF77214 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2597ED98D3C16A7EEF1FBFFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | 2597ED98D3C16A7EEF1FBFFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 25FECE7ACACB29E1725A6A17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; | 25FECE7ACACB29E1725A6A17 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2649F70294DB168919CBCAD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | |||||
| 2666A5013948E2EAD29458C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; | 2666A5013948E2EAD29458C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 26B73C77D47B146F92BEA265 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; | 26B73C77D47B146F92BEA265 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 2708E4F2F73D88F73D8E54D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; | 2708E4F2F73D88F73D8E54D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| @@ -1501,6 +1502,7 @@ | |||||
| 8EB9B4853F225BDB97D6626E, | 8EB9B4853F225BDB97D6626E, | ||||
| 8154D2D681E028B8783E5331, | 8154D2D681E028B8783E5331, | ||||
| 0BBEDD3E8C0C2B7C4B52016A, | 0BBEDD3E8C0C2B7C4B52016A, | ||||
| 2649F70294DB168919CBCAD3, | |||||
| 5712EB90A8B51DBBC4E19A39, | 5712EB90A8B51DBBC4E19A39, | ||||
| 5CABE190EBD0F4EEB763114A ); name = native; sourceTree = "<group>"; }; | 5CABE190EBD0F4EEB763114A ); name = native; sourceTree = "<group>"; }; | ||||
| 980520A52BB3BF76E45AECA8 = { isa = PBXGroup; children = ( | 980520A52BB3BF76E45AECA8 = { isa = PBXGroup; children = ( | ||||
| @@ -123,6 +123,7 @@ | |||||
| 103FA4C6C505052C818A4829 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUTimestampGenerator.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUTimestampGenerator.h; sourceTree = "DEVELOPER_DIR"; }; | 103FA4C6C505052C818A4829 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUTimestampGenerator.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUTimestampGenerator.h; sourceTree = "DEVELOPER_DIR"; }; | ||||
| 104CC5F094E0B3D1D3055D04 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; | 104CC5F094E0B3D1D3055D04 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 10A49DD74F3FB9E69FC989B9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; | 10A49DD74F3FB9E69FC989B9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 1127215528CC4A4A504078BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | |||||
| 115FCA1C09C15AD7EB4AC87C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; | 115FCA1C09C15AD7EB4AC87C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 121FB46FF3426D00B9776611 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; | 121FB46FF3426D00B9776611 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 1225618F94215E066D1D982D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; | 1225618F94215E066D1D982D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| @@ -1427,6 +1428,7 @@ | |||||
| 3F05190135896541D991C075, | 3F05190135896541D991C075, | ||||
| 802E244849C0AE5DACD3FCCB, | 802E244849C0AE5DACD3FCCB, | ||||
| 56A295F04B7F248D0A52B878, | 56A295F04B7F248D0A52B878, | ||||
| 1127215528CC4A4A504078BF, | |||||
| C8302DD07934EBD796C2BFBB, | C8302DD07934EBD796C2BFBB, | ||||
| 78959840E3EF9DC06998BB42 ); name = native; sourceTree = "<group>"; }; | 78959840E3EF9DC06998BB42 ); name = native; sourceTree = "<group>"; }; | ||||
| F0F89564A3784EB052CEE01B = { isa = PBXGroup; children = ( | F0F89564A3784EB052CEE01B = { isa = PBXGroup; children = ( | ||||
| @@ -2545,6 +2545,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -2545,6 +2545,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -521,6 +521,7 @@ | |||||
| 94A770B7E16685F3469CA932 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; | 94A770B7E16685F3469CA932 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 94B22D21E4DE9259A3F385A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; | 94B22D21E4DE9259A3F385A3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 94B986F221A8369B8DE3D986 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; | 94B986F221A8369B8DE3D986 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 94D27CA81B1481621186F4D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | |||||
| 956BE0B32D5B1410E43A3C58 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; | 956BE0B32D5B1410E43A3C58 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 957428BC0CD90C37ED1EB7E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; | 957428BC0CD90C37ED1EB7E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 9647232A743A0C7BFE819385 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; | 9647232A743A0C7BFE819385 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| @@ -734,7 +735,6 @@ | |||||
| DD53156BA824889FD7DF52D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; | DD53156BA824889FD7DF52D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| DD8E5D0C88FA2C287F824357 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GraphEditorPanel.h; path = ../../Source/GraphEditorPanel.h; sourceTree = "SOURCE_ROOT"; }; | DD8E5D0C88FA2C287F824357 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GraphEditorPanel.h; path = ../../Source/GraphEditorPanel.h; sourceTree = "SOURCE_ROOT"; }; | ||||
| DE0C4CC1CE545BAD009786E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; | DE0C4CC1CE545BAD009786E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| DE8035865F6033F8BBF41740 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||||
| E146C1CCDC8EA0498CD33E5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; | E146C1CCDC8EA0498CD33E5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| E179C9C99270068D4ED16872 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; | E179C9C99270068D4ED16872 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| E68018DE199135B7F738FB17 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; | E68018DE199135B7F738FB17 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; | ||||
| @@ -756,6 +756,7 @@ | |||||
| DE0712F13AD6AB6180E2E680 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | DE0712F13AD6AB6180E2E680 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| DE1FE14BE1B14A214C2D8B66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; | DE1FE14BE1B14A214C2D8B66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| DE435BB18276B8626AF37D05 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; | DE435BB18276B8626AF37D05 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| DE8035865F6033F8BBF41740 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||||
| DEEFCE87BE3B9D7AFC7ADC16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; | DEEFCE87BE3B9D7AFC7ADC16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| DF309886A3D26FC34280B329 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; }; | DF309886A3D26FC34280B329 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; }; | ||||
| DF614EDBEA2D76889E002465 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; | DF614EDBEA2D76889E002465 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| @@ -1433,6 +1434,7 @@ | |||||
| 3D64A2C5EB65C68C4CBE47C3, | 3D64A2C5EB65C68C4CBE47C3, | ||||
| 2355148BC8F47D63CB66C40F, | 2355148BC8F47D63CB66C40F, | ||||
| AA7350771ED17561EB915EED, | AA7350771ED17561EB915EED, | ||||
| 94D27CA81B1481621186F4D5, | |||||
| C62FBDF34D1B74CCF12AEA2F, | C62FBDF34D1B74CCF12AEA2F, | ||||
| 64A1DACEA71957604AD58B3C ); name = native; sourceTree = "<group>"; }; | 64A1DACEA71957604AD58B3C ); name = native; sourceTree = "<group>"; }; | ||||
| 735136A0AB9278D0871D9684 = { isa = PBXGroup; children = ( | 735136A0AB9278D0871D9684 = { isa = PBXGroup; children = ( | ||||
| @@ -2531,6 +2531,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -2531,6 +2531,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -204,6 +204,7 @@ | |||||
| 4A5ED88CC2ED6ADD8A5B102A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; | 4A5ED88CC2ED6ADD8A5B102A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 4A8C64BB96FB93919DDF2166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; | 4A8C64BB96FB93919DDF2166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 4BCEEF3FC9849208FF6B1BD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; }; | 4BCEEF3FC9849208FF6B1BD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 4C34CB4DC542D86A193C055A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | |||||
| 4CC331BEE18B3EC4BADF38CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; | 4CC331BEE18B3EC4BADF38CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 4D44E9AD19469774ED8245B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | 4D44E9AD19469774ED8245B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 4D6C90354134741F7F295412 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | 4D6C90354134741F7F295412 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| @@ -987,6 +988,7 @@ | |||||
| 65A88D5E8C1F0BE74F05C072, | 65A88D5E8C1F0BE74F05C072, | ||||
| 06EF239CDE579FFC28F65BE2, | 06EF239CDE579FFC28F65BE2, | ||||
| C6BCFCD2732C7153C33B6168, | C6BCFCD2732C7153C33B6168, | ||||
| 4C34CB4DC542D86A193C055A, | |||||
| A3961F3261459774B65EBD3B, | A3961F3261459774B65EBD3B, | ||||
| A5E748EC8CB636CEBF7BA497 ); name = native; sourceTree = "<group>"; }; | A5E748EC8CB636CEBF7BA497 ); name = native; sourceTree = "<group>"; }; | ||||
| 0BD57F3380CCDFE06E36335D = { isa = PBXGroup; children = ( | 0BD57F3380CCDFE06E36335D = { isa = PBXGroup; children = ( | ||||
| @@ -1602,6 +1602,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -1602,6 +1602,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -202,6 +202,7 @@ | |||||
| 4A5ED88CC2ED6ADD8A5B102A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; | 4A5ED88CC2ED6ADD8A5B102A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 4A8C64BB96FB93919DDF2166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; | 4A8C64BB96FB93919DDF2166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 4BCEEF3FC9849208FF6B1BD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; }; | 4BCEEF3FC9849208FF6B1BD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 4C34CB4DC542D86A193C055A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | |||||
| 4CC331BEE18B3EC4BADF38CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; | 4CC331BEE18B3EC4BADF38CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 4D44E9AD19469774ED8245B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | 4D44E9AD19469774ED8245B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 4D6C90354134741F7F295412 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | 4D6C90354134741F7F295412 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| @@ -985,6 +986,7 @@ | |||||
| 65A88D5E8C1F0BE74F05C072, | 65A88D5E8C1F0BE74F05C072, | ||||
| 06EF239CDE579FFC28F65BE2, | 06EF239CDE579FFC28F65BE2, | ||||
| C6BCFCD2732C7153C33B6168, | C6BCFCD2732C7153C33B6168, | ||||
| 4C34CB4DC542D86A193C055A, | |||||
| A3961F3261459774B65EBD3B, | A3961F3261459774B65EBD3B, | ||||
| A5E748EC8CB636CEBF7BA497 ); name = native; sourceTree = "<group>"; }; | A5E748EC8CB636CEBF7BA497 ); name = native; sourceTree = "<group>"; }; | ||||
| 0BD57F3380CCDFE06E36335D = { isa = PBXGroup; children = ( | 0BD57F3380CCDFE06E36335D = { isa = PBXGroup; children = ( | ||||
| @@ -283,6 +283,7 @@ | |||||
| 5880762117A1A76DD727CA63 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; | 5880762117A1A76DD727CA63 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 5902132028ACFC53C962F230 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; | 5902132028ACFC53C962F230 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 592A4CD8EED76FAA0FBEA184 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; | 592A4CD8EED76FAA0FBEA184 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 593F1523B6A7AB5415E2CD53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | |||||
| 594ABD541467FC1AFBCD55FA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; | 594ABD541467FC1AFBCD55FA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 59832DC05A7ABD631038D969 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; | 59832DC05A7ABD631038D969 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 59A49FA3DB4C77011B973631 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | 59A49FA3DB4C77011B973631 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| @@ -1352,6 +1353,7 @@ | |||||
| 56EBED6737E33DF652255BE9, | 56EBED6737E33DF652255BE9, | ||||
| D380ABD8012C0F956AFAAD10, | D380ABD8012C0F956AFAAD10, | ||||
| FA89AC987131D027ACE40582, | FA89AC987131D027ACE40582, | ||||
| 593F1523B6A7AB5415E2CD53, | |||||
| 124BDF35CA497A669F44F8A0, | 124BDF35CA497A669F44F8A0, | ||||
| AF1FAE38CC1CE6EA02FFD06E ); name = native; sourceTree = "<group>"; }; | AF1FAE38CC1CE6EA02FFD06E ); name = native; sourceTree = "<group>"; }; | ||||
| CEDD2E509C8955328B9E4338 = { isa = PBXGroup; children = ( | CEDD2E509C8955328B9E4338 = { isa = PBXGroup; children = ( | ||||
| @@ -2422,6 +2422,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -1377,6 +1377,7 @@ | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\effects\juce_ImageEffectFilter.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\effects\juce_ImageEffectFilter.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_Component.h"/> | <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_Component.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_ComponentListener.h"/> | <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_ComponentListener.h"/> | ||||
| @@ -2169,6 +2169,9 @@ | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"> | ||||
| <Filter>Juce Modules\juce_graphics\native</Filter> | <Filter>Juce Modules\juce_graphics\native</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"> | |||||
| <Filter>Juce Modules\juce_graphics\native</Filter> | |||||
| </ClInclude> | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"> | <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"> | ||||
| <Filter>Juce Modules\juce_graphics</Filter> | <Filter>Juce Modules\juce_graphics</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -304,6 +304,7 @@ | |||||
| 568F49023595072F6E4915D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; | 568F49023595072F6E4915D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 56AF594373CD84AB81D63595 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; | 56AF594373CD84AB81D63595 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 56B86E116B1A1204837D4F02 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; | 56B86E116B1A1204837D4F02 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 570D06B805FFCB2D29247478 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; | |||||
| 571668630341CED2E68ED143 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; | 571668630341CED2E68ED143 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 5727AEA6C0EC63CDBC35623D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; | 5727AEA6C0EC63CDBC35623D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; | ||||
| 5730B4F295752F68F543A5F1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; | 5730B4F295752F68F543A5F1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; | ||||
| @@ -1247,6 +1248,7 @@ | |||||
| FCB2AD7C12426703410DA46C, | FCB2AD7C12426703410DA46C, | ||||
| 0875B5E550065BE3ACF5833E, | 0875B5E550065BE3ACF5833E, | ||||
| 4E07995C0E9951843B936AF1, | 4E07995C0E9951843B936AF1, | ||||
| 570D06B805FFCB2D29247478, | |||||
| A27536EAA6565A95670917FE, | A27536EAA6565A95670917FE, | ||||
| A639ECE96CA7798C1E61F5FA ); name = native; sourceTree = "<group>"; }; | A639ECE96CA7798C1E61F5FA ); name = native; sourceTree = "<group>"; }; | ||||
| 8E157165495A4C0D5FE429BE = { isa = PBXGroup; children = ( | 8E157165495A4C0D5FE429BE = { isa = PBXGroup; children = ( | ||||
| @@ -1769,6 +1769,7 @@ | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_mac_Fonts.mm"/> | ||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | <File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp"> | ||||
| <FileConfiguration Name="Debug|Win32" | <FileConfiguration Name="Debug|Win32" | ||||
| ExcludedFromBuild="true"> | ExcludedFromBuild="true"> | ||||
| @@ -1163,6 +1163,7 @@ | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\effects\juce_ImageEffectFilter.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\effects\juce_ImageEffectFilter.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsContext.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"/> | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"/> | <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_Component.h"/> | <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_Component.h"/> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_ComponentListener.h"/> | <ClInclude Include="..\..\..\..\modules\juce_gui_basics\components\juce_ComponentListener.h"/> | ||||
| @@ -1908,6 +1908,9 @@ | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"> | <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_mac_CoreGraphicsHelpers.h"> | ||||
| <Filter>Juce Modules\juce_graphics\native</Filter> | <Filter>Juce Modules\juce_graphics\native</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\native\juce_RenderingHelpers.h"> | |||||
| <Filter>Juce Modules\juce_graphics\native</Filter> | |||||
| </ClInclude> | |||||
| <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"> | <ClInclude Include="..\..\..\..\modules\juce_graphics\juce_graphics.h"> | ||||
| <Filter>Juce Modules\juce_graphics</Filter> | <Filter>Juce Modules\juce_graphics</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -424,6 +424,17 @@ bool isPowerOfTwo (IntegerType value) | |||||
| return (value & (value - 1)) == 0; | return (value & (value - 1)) == 0; | ||||
| } | } | ||||
| /** Performs a modulo operation, but can cope with the dividend being negative. | |||||
| The divisor must be greater than zero. | |||||
| */ | |||||
| template <typename IntegerType> | |||||
| int negativeAwareModulo (IntegerType dividend, const IntegerType divisor) noexcept | |||||
| { | |||||
| jassert (divisor > 0); | |||||
| dividend %= divisor; | |||||
| return (dividend < 0) ? (dividend + divisor) : dividend; | |||||
| } | |||||
| //============================================================================== | //============================================================================== | ||||
| #if (JUCE_INTEL && JUCE_32BIT) || defined (DOXYGEN) | #if (JUCE_INTEL && JUCE_32BIT) || defined (DOXYGEN) | ||||
| /** This macro can be applied to a float variable to check whether it contains a denormalised | /** This macro can be applied to a float variable to check whether it contains a denormalised | ||||
| @@ -394,17 +394,6 @@ private: | |||||
| JUCE_DECLARE_NON_COPYABLE (GradientEdgeTableRenderer); | JUCE_DECLARE_NON_COPYABLE (GradientEdgeTableRenderer); | ||||
| }; | }; | ||||
| //============================================================================== | |||||
| namespace RenderingHelpers | |||||
| { | |||||
| forcedinline int safeModulo (int n, const int divisor) noexcept | |||||
| { | |||||
| jassert (divisor > 0); | |||||
| n %= divisor; | |||||
| return (n < 0) ? (n + divisor) : n; | |||||
| } | |||||
| } | |||||
| //============================================================================== | //============================================================================== | ||||
| template <class DestPixelType, class SrcPixelType, bool repeatPattern> | template <class DestPixelType, class SrcPixelType, bool repeatPattern> | ||||
| class ImageFillEdgeTableRenderer | class ImageFillEdgeTableRenderer | ||||
| @@ -417,8 +406,8 @@ public: | |||||
| : destData (destData_), | : destData (destData_), | ||||
| srcData (srcData_), | srcData (srcData_), | ||||
| extraAlpha (extraAlpha_ + 1), | extraAlpha (extraAlpha_ + 1), | ||||
| xOffset (repeatPattern ? RenderingHelpers::safeModulo (x, srcData_.width) - srcData_.width : x), | |||||
| yOffset (repeatPattern ? RenderingHelpers::safeModulo (y, srcData_.height) - srcData_.height : y) | |||||
| xOffset (repeatPattern ? negativeAwareModulo (x, srcData_.width) - srcData_.width : x), | |||||
| yOffset (repeatPattern ? negativeAwareModulo (y, srcData_.height) - srcData_.height : y) | |||||
| { | { | ||||
| } | } | ||||
| @@ -660,8 +649,8 @@ private: | |||||
| if (repeatPattern) | if (repeatPattern) | ||||
| { | { | ||||
| loResX = RenderingHelpers::safeModulo (loResX, srcData.width); | |||||
| loResY = RenderingHelpers::safeModulo (loResY, srcData.height); | |||||
| loResX = negativeAwareModulo (loResX, srcData.width); | |||||
| loResY = negativeAwareModulo (loResY, srcData.height); | |||||
| } | } | ||||
| if (betterQuality) | if (betterQuality) | ||||
| @@ -1762,69 +1751,36 @@ class LowLevelGraphicsSoftwareRenderer::SavedState | |||||
| public: | public: | ||||
| SavedState (const Image& image_, const Rectangle<int>& clip_, const int xOffset_, const int yOffset_) | SavedState (const Image& image_, const Rectangle<int>& clip_, const int xOffset_, const int yOffset_) | ||||
| : image (image_), clip (new SoftwareRendererClasses::ClipRegion_RectangleList (clip_)), | : image (image_), clip (new SoftwareRendererClasses::ClipRegion_RectangleList (clip_)), | ||||
| xOffset (xOffset_), yOffset (yOffset_), compositionAlpha (1.0f), | |||||
| isOnlyTranslated (true), interpolationQuality (Graphics::mediumResamplingQuality) | |||||
| transform (xOffset_, yOffset_), | |||||
| interpolationQuality (Graphics::mediumResamplingQuality), | |||||
| transparencyLayerAlpha (1.0f) | |||||
| { | { | ||||
| } | } | ||||
| SavedState (const Image& image_, const RectangleList& clip_, const int xOffset_, const int yOffset_) | SavedState (const Image& image_, const RectangleList& clip_, const int xOffset_, const int yOffset_) | ||||
| : image (image_), clip (new SoftwareRendererClasses::ClipRegion_RectangleList (clip_)), | : image (image_), clip (new SoftwareRendererClasses::ClipRegion_RectangleList (clip_)), | ||||
| xOffset (xOffset_), yOffset (yOffset_), compositionAlpha (1.0f), | |||||
| isOnlyTranslated (true), interpolationQuality (Graphics::mediumResamplingQuality) | |||||
| transform (xOffset_, yOffset_), | |||||
| interpolationQuality (Graphics::mediumResamplingQuality), | |||||
| transparencyLayerAlpha (1.0f) | |||||
| { | { | ||||
| } | } | ||||
| SavedState (const SavedState& other) | SavedState (const SavedState& other) | ||||
| : image (other.image), clip (other.clip), complexTransform (other.complexTransform), | |||||
| xOffset (other.xOffset), yOffset (other.yOffset), compositionAlpha (other.compositionAlpha), | |||||
| isOnlyTranslated (other.isOnlyTranslated), font (other.font), fillType (other.fillType), | |||||
| interpolationQuality (other.interpolationQuality) | |||||
| { | |||||
| } | |||||
| void setOrigin (const int x, const int y) noexcept | |||||
| { | |||||
| if (isOnlyTranslated) | |||||
| { | |||||
| xOffset += x; | |||||
| yOffset += y; | |||||
| } | |||||
| else | |||||
| { | |||||
| complexTransform = getTransformWith (AffineTransform::translation ((float) x, (float) y)); | |||||
| } | |||||
| } | |||||
| void addTransform (const AffineTransform& t) | |||||
| { | |||||
| if ((! isOnlyTranslated) | |||||
| || (! t.isOnlyTranslation()) | |||||
| || (int) (t.getTranslationX() * 256.0f) != 0 | |||||
| || (int) (t.getTranslationY() * 256.0f) != 0) | |||||
| { | |||||
| complexTransform = getTransformWith (t); | |||||
| isOnlyTranslated = false; | |||||
| } | |||||
| else | |||||
| { | |||||
| xOffset += (int) t.getTranslationX(); | |||||
| yOffset += (int) t.getTranslationY(); | |||||
| } | |||||
| } | |||||
| float getScaleFactor() const | |||||
| : image (other.image), clip (other.clip), transform (other.transform), | |||||
| font (other.font), fillType (other.fillType), | |||||
| interpolationQuality (other.interpolationQuality), | |||||
| transparencyLayerAlpha (other.transparencyLayerAlpha) | |||||
| { | { | ||||
| return isOnlyTranslated ? 1.0f : complexTransform.getScaleFactor(); | |||||
| } | } | ||||
| bool clipToRectangle (const Rectangle<int>& r) | bool clipToRectangle (const Rectangle<int>& r) | ||||
| { | { | ||||
| if (clip != nullptr) | if (clip != nullptr) | ||||
| { | { | ||||
| if (isOnlyTranslated) | |||||
| if (transform.isOnlyTranslated) | |||||
| { | { | ||||
| cloneClipIfMultiplyReferenced(); | cloneClipIfMultiplyReferenced(); | ||||
| clip = clip->clipToRectangle (r.translated (xOffset, yOffset)); | |||||
| clip = clip->clipToRectangle (transform.translated (r)); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| @@ -1841,11 +1797,11 @@ public: | |||||
| { | { | ||||
| if (clip != nullptr) | if (clip != nullptr) | ||||
| { | { | ||||
| if (isOnlyTranslated) | |||||
| if (transform.isOnlyTranslated) | |||||
| { | { | ||||
| cloneClipIfMultiplyReferenced(); | cloneClipIfMultiplyReferenced(); | ||||
| RectangleList offsetList (r); | RectangleList offsetList (r); | ||||
| offsetList.offsetAll (xOffset, yOffset); | |||||
| offsetList.offsetAll (transform.xOffset, transform.yOffset); | |||||
| clip = clip->clipToRectangleList (offsetList); | clip = clip->clipToRectangleList (offsetList); | ||||
| } | } | ||||
| else | else | ||||
| @@ -1863,15 +1819,15 @@ public: | |||||
| { | { | ||||
| cloneClipIfMultiplyReferenced(); | cloneClipIfMultiplyReferenced(); | ||||
| if (isOnlyTranslated) | |||||
| if (transform.isOnlyTranslated) | |||||
| { | { | ||||
| clip = clip->excludeClipRectangle (r.translated (xOffset, yOffset)); | |||||
| clip = clip->excludeClipRectangle (transform.translated (r)); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| Path p; | Path p; | ||||
| p.addRectangle (r.toFloat()); | p.addRectangle (r.toFloat()); | ||||
| p.applyTransform (complexTransform); | |||||
| p.applyTransform (transform.complexTransform); | |||||
| p.addRectangle (clip->getClipBounds().toFloat()); | p.addRectangle (clip->getClipBounds().toFloat()); | ||||
| p.setUsingNonZeroWinding (false); | p.setUsingNonZeroWinding (false); | ||||
| clip = clip->clipToPath (p, AffineTransform::identity); | clip = clip->clipToPath (p, AffineTransform::identity); | ||||
| @@ -1881,12 +1837,12 @@ public: | |||||
| return clip != nullptr; | return clip != nullptr; | ||||
| } | } | ||||
| void clipToPath (const Path& p, const AffineTransform& transform) | |||||
| void clipToPath (const Path& p, const AffineTransform& t) | |||||
| { | { | ||||
| if (clip != nullptr) | if (clip != nullptr) | ||||
| { | { | ||||
| cloneClipIfMultiplyReferenced(); | cloneClipIfMultiplyReferenced(); | ||||
| clip = clip->clipToPath (p, getTransformWith (transform)); | |||||
| clip = clip->clipToPath (p, transform.getTransformWith (t)); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1897,7 +1853,7 @@ public: | |||||
| if (sourceImage.hasAlphaChannel()) | if (sourceImage.hasAlphaChannel()) | ||||
| { | { | ||||
| cloneClipIfMultiplyReferenced(); | cloneClipIfMultiplyReferenced(); | ||||
| clip = clip->clipToImageAlpha (sourceImage, getTransformWith (t), | |||||
| clip = clip->clipToImageAlpha (sourceImage, transform.getTransformWith (t), | |||||
| interpolationQuality != Graphics::lowResamplingQuality); | interpolationQuality != Graphics::lowResamplingQuality); | ||||
| } | } | ||||
| else | else | ||||
| @@ -1913,8 +1869,8 @@ public: | |||||
| { | { | ||||
| if (clip != nullptr) | if (clip != nullptr) | ||||
| { | { | ||||
| if (isOnlyTranslated) | |||||
| return clip->clipRegionIntersects (r.translated (xOffset, yOffset)); | |||||
| if (transform.isOnlyTranslated) | |||||
| return clip->clipRegionIntersects (transform.translated (r)); | |||||
| else | else | ||||
| return getClipBounds().intersects (r); | return getClipBounds().intersects (r); | ||||
| } | } | ||||
| @@ -1924,20 +1880,14 @@ public: | |||||
| Rectangle<int> getUntransformedClipBounds() const | Rectangle<int> getUntransformedClipBounds() const | ||||
| { | { | ||||
| return clip != nullptr ? clip->getClipBounds() : Rectangle<int>(); | |||||
| return clip != nullptr ? clip->getClipBounds() | |||||
| : Rectangle<int>(); | |||||
| } | } | ||||
| Rectangle<int> getClipBounds() const | Rectangle<int> getClipBounds() const | ||||
| { | { | ||||
| if (clip != nullptr) | |||||
| { | |||||
| if (isOnlyTranslated) | |||||
| return clip->getClipBounds().translated (-xOffset, -yOffset); | |||||
| else | |||||
| return clip->getClipBounds().toFloat().transformed (complexTransform.inverted()).getSmallestIntegerContainer(); | |||||
| } | |||||
| return Rectangle<int>(); | |||||
| return clip != nullptr ? transform.deviceSpaceToUserSpace (clip->getClipBounds()) | |||||
| : Rectangle<int>(); | |||||
| } | } | ||||
| SavedState* beginTransparencyLayer (float opacity) | SavedState* beginTransparencyLayer (float opacity) | ||||
| @@ -1946,18 +1896,8 @@ public: | |||||
| SavedState* s = new SavedState (*this); | SavedState* s = new SavedState (*this); | ||||
| s->image = Image (Image::ARGB, layerBounds.getWidth(), layerBounds.getHeight(), true); | s->image = Image (Image::ARGB, layerBounds.getWidth(), layerBounds.getHeight(), true); | ||||
| s->compositionAlpha = opacity; | |||||
| if (s->isOnlyTranslated) | |||||
| { | |||||
| s->xOffset -= layerBounds.getX(); | |||||
| s->yOffset -= layerBounds.getY(); | |||||
| } | |||||
| else | |||||
| { | |||||
| s->complexTransform = s->complexTransform.followedBy (AffineTransform::translation ((float) -layerBounds.getX(), | |||||
| (float) -layerBounds.getY())); | |||||
| } | |||||
| s->transparencyLayerAlpha = opacity; | |||||
| s->transform.moveOriginInDeviceSpace (-layerBounds.getX(), -layerBounds.getY()); | |||||
| s->cloneClipIfMultiplyReferenced(); | s->cloneClipIfMultiplyReferenced(); | ||||
| s->clip = s->clip->translated (-layerBounds.getPosition()); | s->clip = s->clip->translated (-layerBounds.getPosition()); | ||||
| @@ -1969,7 +1909,7 @@ public: | |||||
| const Rectangle<int> layerBounds (getUntransformedClipBounds()); | const Rectangle<int> layerBounds (getUntransformedClipBounds()); | ||||
| const ScopedPointer<LowLevelGraphicsContext> g (image.createLowLevelContext()); | const ScopedPointer<LowLevelGraphicsContext> g (image.createLowLevelContext()); | ||||
| g->setOpacity (layerState.compositionAlpha); | |||||
| g->setOpacity (layerState.transparencyLayerAlpha); | |||||
| g->drawImage (layerState.image, AffineTransform::translation ((float) layerBounds.getX(), | g->drawImage (layerState.image, AffineTransform::translation ((float) layerBounds.getX(), | ||||
| (float) layerBounds.getY()), false); | (float) layerBounds.getY()), false); | ||||
| } | } | ||||
| @@ -1979,17 +1919,17 @@ public: | |||||
| { | { | ||||
| if (clip != nullptr) | if (clip != nullptr) | ||||
| { | { | ||||
| if (isOnlyTranslated) | |||||
| if (transform.isOnlyTranslated) | |||||
| { | { | ||||
| if (fillType.isColour()) | if (fillType.isColour()) | ||||
| { | { | ||||
| Image::BitmapData destData (image, Image::BitmapData::readWrite); | Image::BitmapData destData (image, Image::BitmapData::readWrite); | ||||
| clip->fillRectWithColour (destData, r.translated (xOffset, yOffset), fillType.colour.getPixelARGB(), replaceContents); | |||||
| clip->fillRectWithColour (destData, transform.translated (r), fillType.colour.getPixelARGB(), replaceContents); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| const Rectangle<int> totalClip (clip->getClipBounds()); | const Rectangle<int> totalClip (clip->getClipBounds()); | ||||
| const Rectangle<int> clipped (totalClip.getIntersection (r.translated (xOffset, yOffset))); | |||||
| const Rectangle<int> clipped (totalClip.getIntersection (transform.translated (r))); | |||||
| if (! clipped.isEmpty()) | if (! clipped.isEmpty()) | ||||
| fillShape (new SoftwareRendererClasses::ClipRegion_RectangleList (clipped), false); | fillShape (new SoftwareRendererClasses::ClipRegion_RectangleList (clipped), false); | ||||
| @@ -2008,17 +1948,17 @@ public: | |||||
| { | { | ||||
| if (clip != nullptr) | if (clip != nullptr) | ||||
| { | { | ||||
| if (isOnlyTranslated) | |||||
| if (transform.isOnlyTranslated) | |||||
| { | { | ||||
| if (fillType.isColour()) | if (fillType.isColour()) | ||||
| { | { | ||||
| Image::BitmapData destData (image, Image::BitmapData::readWrite); | Image::BitmapData destData (image, Image::BitmapData::readWrite); | ||||
| clip->fillRectWithColour (destData, r.translated ((float) xOffset, (float) yOffset), fillType.colour.getPixelARGB()); | |||||
| clip->fillRectWithColour (destData, transform.translated (r), fillType.colour.getPixelARGB()); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| const Rectangle<float> totalClip (clip->getClipBounds().toFloat()); | const Rectangle<float> totalClip (clip->getClipBounds().toFloat()); | ||||
| const Rectangle<float> clipped (totalClip.getIntersection (r.translated ((float) xOffset, (float) yOffset))); | |||||
| const Rectangle<float> clipped (totalClip.getIntersection (transform.translated (r))); | |||||
| if (! clipped.isEmpty()) | if (! clipped.isEmpty()) | ||||
| fillShape (new SoftwareRendererClasses::ClipRegion_EdgeTable (clipped), false); | fillShape (new SoftwareRendererClasses::ClipRegion_EdgeTable (clipped), false); | ||||
| @@ -2033,28 +1973,28 @@ public: | |||||
| } | } | ||||
| } | } | ||||
| void fillPath (const Path& path, const AffineTransform& transform) | |||||
| void fillPath (const Path& path, const AffineTransform& t) | |||||
| { | { | ||||
| if (clip != nullptr) | if (clip != nullptr) | ||||
| fillShape (new SoftwareRendererClasses::ClipRegion_EdgeTable (clip->getClipBounds(), path, getTransformWith (transform)), false); | |||||
| fillShape (new SoftwareRendererClasses::ClipRegion_EdgeTable (clip->getClipBounds(), path, transform.getTransformWith (t)), false); | |||||
| } | } | ||||
| void fillEdgeTable (const EdgeTable& edgeTable, const float x, const int y) | void fillEdgeTable (const EdgeTable& edgeTable, const float x, const int y) | ||||
| { | { | ||||
| jassert (isOnlyTranslated); | |||||
| jassert (transform.isOnlyTranslated); | |||||
| if (clip != nullptr) | if (clip != nullptr) | ||||
| { | { | ||||
| SoftwareRendererClasses::ClipRegion_EdgeTable* edgeTableClip = new SoftwareRendererClasses::ClipRegion_EdgeTable (edgeTable); | SoftwareRendererClasses::ClipRegion_EdgeTable* edgeTableClip = new SoftwareRendererClasses::ClipRegion_EdgeTable (edgeTable); | ||||
| SoftwareRendererClasses::ClipRegionBase::Ptr shapeToFill (edgeTableClip); | SoftwareRendererClasses::ClipRegionBase::Ptr shapeToFill (edgeTableClip); | ||||
| edgeTableClip->edgeTable.translate (x + xOffset, y + yOffset); | |||||
| edgeTableClip->edgeTable.translate (x + transform.xOffset, y + transform.yOffset); | |||||
| fillShape (shapeToFill, false); | fillShape (shapeToFill, false); | ||||
| } | } | ||||
| } | } | ||||
| void drawGlyph (const Font& f, int glyphNumber, const AffineTransform& transform) | |||||
| void drawGlyph (const Font& f, int glyphNumber, const AffineTransform& t) | |||||
| { | { | ||||
| const ScopedPointer<EdgeTable> et (f.getTypeface()->getEdgeTableForGlyph (glyphNumber, getTransformWith (transform))); | |||||
| const ScopedPointer<EdgeTable> et (f.getTypeface()->getEdgeTableForGlyph (glyphNumber, transform.getTransformWith (t))); | |||||
| if (et != nullptr && clip != nullptr) | if (et != nullptr && clip != nullptr) | ||||
| { | { | ||||
| @@ -2080,19 +2020,19 @@ public: | |||||
| ColourGradient g2 (*(fillType.gradient)); | ColourGradient g2 (*(fillType.gradient)); | ||||
| g2.multiplyOpacity (fillType.getOpacity()); | g2.multiplyOpacity (fillType.getOpacity()); | ||||
| AffineTransform transform (getTransformWith (fillType.transform).translated (-0.5f, -0.5f)); | |||||
| AffineTransform t (transform.getTransformWith (fillType.transform).translated (-0.5f, -0.5f)); | |||||
| const bool isIdentity = transform.isOnlyTranslation(); | |||||
| const bool isIdentity = t.isOnlyTranslation(); | |||||
| if (isIdentity) | if (isIdentity) | ||||
| { | { | ||||
| // If our translation doesn't involve any distortion, we can speed it up.. | // If our translation doesn't involve any distortion, we can speed it up.. | ||||
| g2.point1.applyTransform (transform); | |||||
| g2.point2.applyTransform (transform); | |||||
| transform = AffineTransform::identity; | |||||
| g2.point1.applyTransform (t); | |||||
| g2.point2.applyTransform (t); | |||||
| t = AffineTransform::identity; | |||||
| } | } | ||||
| shapeToFill->fillAllWithGradient (destData, g2, transform, isIdentity); | |||||
| shapeToFill->fillAllWithGradient (destData, g2, t, isIdentity); | |||||
| } | } | ||||
| else if (fillType.isTiledImage()) | else if (fillType.isTiledImage()) | ||||
| { | { | ||||
| @@ -2106,20 +2046,21 @@ public: | |||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| void renderImage (const Image& sourceImage, const AffineTransform& t, const SoftwareRendererClasses::ClipRegionBase* const tiledFillClipRegion) | |||||
| void renderImage (const Image& sourceImage, const AffineTransform& trans, | |||||
| const SoftwareRendererClasses::ClipRegionBase* const tiledFillClipRegion) | |||||
| { | { | ||||
| const AffineTransform transform (getTransformWith (t)); | |||||
| const AffineTransform t (transform.getTransformWith (trans)); | |||||
| const Image::BitmapData destData (image, Image::BitmapData::readWrite); | const Image::BitmapData destData (image, Image::BitmapData::readWrite); | ||||
| const Image::BitmapData srcData (sourceImage, Image::BitmapData::readOnly); | const Image::BitmapData srcData (sourceImage, Image::BitmapData::readOnly); | ||||
| const int alpha = fillType.colour.getAlpha(); | const int alpha = fillType.colour.getAlpha(); | ||||
| const bool betterQuality = (interpolationQuality != Graphics::lowResamplingQuality); | const bool betterQuality = (interpolationQuality != Graphics::lowResamplingQuality); | ||||
| if (transform.isOnlyTranslation()) | |||||
| if (t.isOnlyTranslation()) | |||||
| { | { | ||||
| // If our translation doesn't involve any distortion, just use a simple blit.. | // If our translation doesn't involve any distortion, just use a simple blit.. | ||||
| int tx = (int) (transform.getTranslationX() * 256.0f); | |||||
| int ty = (int) (transform.getTranslationY() * 256.0f); | |||||
| int tx = (int) (t.getTranslationX() * 256.0f); | |||||
| int ty = (int) (t.getTranslationY() * 256.0f); | |||||
| if ((! betterQuality) || ((tx | ty) & 224) == 0) | if ((! betterQuality) || ((tx | ty) & 224) == 0) | ||||
| { | { | ||||
| @@ -2149,12 +2090,12 @@ public: | |||||
| } | } | ||||
| } | } | ||||
| if (transform.isSingularity()) | |||||
| if (t.isSingularity()) | |||||
| return; | return; | ||||
| if (tiledFillClipRegion != nullptr) | if (tiledFillClipRegion != nullptr) | ||||
| { | { | ||||
| tiledFillClipRegion->renderImageTransformed (destData, srcData, alpha, transform, betterQuality, true); | |||||
| tiledFillClipRegion->renderImageTransformed (destData, srcData, alpha, t, betterQuality, true); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| @@ -2162,52 +2103,30 @@ public: | |||||
| p.addRectangle (sourceImage.getBounds()); | p.addRectangle (sourceImage.getBounds()); | ||||
| SoftwareRendererClasses::ClipRegionBase::Ptr c (clip->clone()); | SoftwareRendererClasses::ClipRegionBase::Ptr c (clip->clone()); | ||||
| c = c->clipToPath (p, transform); | |||||
| c = c->clipToPath (p, t); | |||||
| if (c != nullptr) | if (c != nullptr) | ||||
| c->renderImageTransformed (destData, srcData, alpha, transform, betterQuality, false); | |||||
| c->renderImageTransformed (destData, srcData, alpha, t, betterQuality, false); | |||||
| } | } | ||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| Image image; | Image image; | ||||
| SoftwareRendererClasses::ClipRegionBase::Ptr clip; | SoftwareRendererClasses::ClipRegionBase::Ptr clip; | ||||
| private: | |||||
| AffineTransform complexTransform; | |||||
| int xOffset, yOffset; | |||||
| float compositionAlpha; | |||||
| public: | |||||
| bool isOnlyTranslated; | |||||
| RenderingHelpers::TranslationOrTransform transform; | |||||
| Font font; | Font font; | ||||
| FillType fillType; | FillType fillType; | ||||
| Graphics::ResamplingQuality interpolationQuality; | Graphics::ResamplingQuality interpolationQuality; | ||||
| private: | private: | ||||
| float transparencyLayerAlpha; | |||||
| void cloneClipIfMultiplyReferenced() | void cloneClipIfMultiplyReferenced() | ||||
| { | { | ||||
| if (clip->getReferenceCount() > 1) | if (clip->getReferenceCount() > 1) | ||||
| clip = clip->clone(); | clip = clip->clone(); | ||||
| } | } | ||||
| const AffineTransform getTransform() const | |||||
| { | |||||
| if (isOnlyTranslated) | |||||
| return AffineTransform::translation ((float) xOffset, (float) yOffset); | |||||
| return complexTransform; | |||||
| } | |||||
| const AffineTransform getTransformWith (const AffineTransform& userTransform) const | |||||
| { | |||||
| if (isOnlyTranslated) | |||||
| return userTransform.translated ((float) xOffset, (float) yOffset); | |||||
| return userTransform.followedBy (complexTransform); | |||||
| } | |||||
| SavedState& operator= (const SavedState&); | SavedState& operator= (const SavedState&); | ||||
| }; | }; | ||||
| @@ -2238,17 +2157,17 @@ bool LowLevelGraphicsSoftwareRenderer::isVectorDevice() const | |||||
| //============================================================================== | //============================================================================== | ||||
| void LowLevelGraphicsSoftwareRenderer::setOrigin (int x, int y) | void LowLevelGraphicsSoftwareRenderer::setOrigin (int x, int y) | ||||
| { | { | ||||
| currentState->setOrigin (x, y); | |||||
| currentState->transform.setOrigin (x, y); | |||||
| } | } | ||||
| void LowLevelGraphicsSoftwareRenderer::addTransform (const AffineTransform& transform) | void LowLevelGraphicsSoftwareRenderer::addTransform (const AffineTransform& transform) | ||||
| { | { | ||||
| currentState->addTransform (transform); | |||||
| currentState->transform.addTransform (transform); | |||||
| } | } | ||||
| float LowLevelGraphicsSoftwareRenderer::getScaleFactor() | float LowLevelGraphicsSoftwareRenderer::getScaleFactor() | ||||
| { | { | ||||
| return currentState->getScaleFactor(); | |||||
| return currentState->transform.getScaleFactor(); | |||||
| } | } | ||||
| bool LowLevelGraphicsSoftwareRenderer::clipToRectangle (const Rectangle<int>& r) | bool LowLevelGraphicsSoftwareRenderer::clipToRectangle (const Rectangle<int>& r) | ||||
| @@ -2288,7 +2207,7 @@ Rectangle<int> LowLevelGraphicsSoftwareRenderer::getClipBounds() const | |||||
| bool LowLevelGraphicsSoftwareRenderer::isClipEmpty() const | bool LowLevelGraphicsSoftwareRenderer::isClipEmpty() const | ||||
| { | { | ||||
| return currentState->clip == 0; | |||||
| return currentState->clip == nullptr; | |||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| @@ -2376,93 +2295,6 @@ void LowLevelGraphicsSoftwareRenderer::drawHorizontalLine (const int y, float le | |||||
| currentState->fillRect (Rectangle<float> (left, (float) y, right - left, 1.0f)); | currentState->fillRect (Rectangle<float> (left, (float) y, right - left, 1.0f)); | ||||
| } | } | ||||
| //============================================================================== | |||||
| template <class CachedGlyphType, class RenderTargetType> | |||||
| class GlyphCache : private DeletedAtShutdown | |||||
| { | |||||
| public: | |||||
| GlyphCache() | |||||
| : accessCounter (0), hits (0), misses (0) | |||||
| { | |||||
| addNewGlyphSlots (120); | |||||
| } | |||||
| ~GlyphCache() | |||||
| { | |||||
| getSingletonPointer() = nullptr; | |||||
| } | |||||
| static GlyphCache& getInstance() | |||||
| { | |||||
| GlyphCache*& g = getSingletonPointer(); | |||||
| if (g == nullptr) | |||||
| g = new GlyphCache(); | |||||
| return *g; | |||||
| } | |||||
| //============================================================================== | |||||
| void drawGlyph (RenderTargetType& target, const Font& font, const int glyphNumber, float x, float y) | |||||
| { | |||||
| ++accessCounter; | |||||
| int oldestCounter = std::numeric_limits<int>::max(); | |||||
| CachedGlyphType* oldest = nullptr; | |||||
| for (int i = glyphs.size(); --i >= 0;) | |||||
| { | |||||
| CachedGlyphType* const glyph = glyphs.getUnchecked (i); | |||||
| if (glyph->glyph == glyphNumber && glyph->font == font) | |||||
| { | |||||
| ++hits; | |||||
| glyph->lastAccessCount = accessCounter; | |||||
| glyph->draw (target, x, y); | |||||
| return; | |||||
| } | |||||
| if (glyph->lastAccessCount <= oldestCounter) | |||||
| { | |||||
| oldestCounter = glyph->lastAccessCount; | |||||
| oldest = glyph; | |||||
| } | |||||
| } | |||||
| if (hits + ++misses > (glyphs.size() << 4)) | |||||
| { | |||||
| if (misses * 2 > hits) | |||||
| addNewGlyphSlots (32); | |||||
| hits = misses = 0; | |||||
| oldest = glyphs.getLast(); | |||||
| } | |||||
| jassert (oldest != nullptr); | |||||
| oldest->lastAccessCount = accessCounter; | |||||
| oldest->generate (font, glyphNumber); | |||||
| oldest->draw (target, x, y); | |||||
| } | |||||
| private: | |||||
| friend class OwnedArray <CachedGlyphType>; | |||||
| OwnedArray <CachedGlyphType> glyphs; | |||||
| int accessCounter, hits, misses; | |||||
| void addNewGlyphSlots (int num) | |||||
| { | |||||
| while (--num >= 0) | |||||
| glyphs.add (new CachedGlyphType()); | |||||
| } | |||||
| static GlyphCache*& getSingletonPointer() noexcept | |||||
| { | |||||
| static GlyphCache* g = nullptr; | |||||
| return g; | |||||
| } | |||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GlyphCache); | |||||
| }; | |||||
| //============================================================================== | //============================================================================== | ||||
| class CachedGlyphEdgeTable | class CachedGlyphEdgeTable | ||||
| { | { | ||||
| @@ -2507,9 +2339,9 @@ void LowLevelGraphicsSoftwareRenderer::drawGlyph (int glyphNumber, const AffineT | |||||
| { | { | ||||
| Font& f = currentState->font; | Font& f = currentState->font; | ||||
| if (transform.isOnlyTranslation() && currentState->isOnlyTranslated) | |||||
| if (transform.isOnlyTranslation() && currentState->transform.isOnlyTranslated) | |||||
| { | { | ||||
| GlyphCache <CachedGlyphEdgeTable, SavedState>::getInstance() | |||||
| RenderingHelpers::GlyphCache <CachedGlyphEdgeTable, SavedState>::getInstance() | |||||
| .drawGlyph (*currentState, f, glyphNumber, | .drawGlyph (*currentState, f, glyphNumber, | ||||
| transform.getTranslationX(), | transform.getTranslationX(), | ||||
| transform.getTranslationY()); | transform.getTranslationY()); | ||||
| @@ -54,6 +54,8 @@ | |||||
| #endif | #endif | ||||
| //============================================================================== | //============================================================================== | ||||
| #include "native/juce_RenderingHelpers.h" | |||||
| // START_AUTOINCLUDE colour/*.cpp, geometry/*.cpp, placement/*.cpp, contexts/*.cpp, images/*.cpp, | // START_AUTOINCLUDE colour/*.cpp, geometry/*.cpp, placement/*.cpp, contexts/*.cpp, images/*.cpp, | ||||
| // image_formats/*.cpp, fonts/*.cpp, effects/*.cpp | // image_formats/*.cpp, fonts/*.cpp, effects/*.cpp | ||||
| #include "colour/juce_Colour.cpp" | #include "colour/juce_Colour.cpp" | ||||
| @@ -0,0 +1,230 @@ | |||||
| /* | |||||
| ============================================================================== | |||||
| This file is part of the JUCE library - "Jules' Utility Class Extensions" | |||||
| Copyright 2004-11 by Raw Material Software Ltd. | |||||
| ------------------------------------------------------------------------------ | |||||
| JUCE can be redistributed and/or modified under the terms of the GNU General | |||||
| Public License (Version 2), as published by the Free Software Foundation. | |||||
| A copy of the license is included in the JUCE distribution, or can be found | |||||
| online at www.gnu.org/licenses. | |||||
| JUCE is distributed in the hope that it will be useful, but WITHOUT ANY | |||||
| WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |||||
| A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||||
| ------------------------------------------------------------------------------ | |||||
| To release a closed-source product which uses JUCE, commercial licenses are | |||||
| available: visit www.rawmaterialsoftware.com/juce for more information. | |||||
| ============================================================================== | |||||
| */ | |||||
| #ifndef __JUCE_RENDERINGHELPERS_JUCEHEADER__ | |||||
| #define __JUCE_RENDERINGHELPERS_JUCEHEADER__ | |||||
| BEGIN_JUCE_NAMESPACE | |||||
| namespace RenderingHelpers | |||||
| { | |||||
| //============================================================================== | |||||
| /** Holds either a simple integer translation, or an affine transform. | |||||
| */ | |||||
| class TranslationOrTransform | |||||
| { | |||||
| public: | |||||
| TranslationOrTransform (int xOffset_, int yOffset_) noexcept | |||||
| : xOffset (xOffset_), yOffset (yOffset_), isOnlyTranslated (true) | |||||
| { | |||||
| } | |||||
| TranslationOrTransform (const TranslationOrTransform& other) noexcept | |||||
| : complexTransform (other.complexTransform), | |||||
| xOffset (other.xOffset), yOffset (other.yOffset), | |||||
| isOnlyTranslated (other.isOnlyTranslated) | |||||
| { | |||||
| } | |||||
| AffineTransform getTransform() const noexcept | |||||
| { | |||||
| return isOnlyTranslated ? AffineTransform::translation ((float) xOffset, (float) yOffset) | |||||
| : complexTransform; | |||||
| } | |||||
| AffineTransform getTransformWith (const AffineTransform& userTransform) const noexcept | |||||
| { | |||||
| return isOnlyTranslated ? userTransform.translated ((float) xOffset, (float) yOffset) | |||||
| : userTransform.followedBy (complexTransform); | |||||
| } | |||||
| void setOrigin (const int x, const int y) noexcept | |||||
| { | |||||
| if (isOnlyTranslated) | |||||
| { | |||||
| xOffset += x; | |||||
| yOffset += y; | |||||
| } | |||||
| else | |||||
| { | |||||
| complexTransform = AffineTransform::translation ((float) x, (float) y) | |||||
| .followedBy (complexTransform); | |||||
| } | |||||
| } | |||||
| void addTransform (const AffineTransform& t) noexcept | |||||
| { | |||||
| if (isOnlyTranslated | |||||
| && t.isOnlyTranslation() | |||||
| && isIntegerTranlation (t)) | |||||
| { | |||||
| xOffset += (int) t.getTranslationX(); | |||||
| yOffset += (int) t.getTranslationY(); | |||||
| } | |||||
| else | |||||
| { | |||||
| complexTransform = getTransformWith (t); | |||||
| isOnlyTranslated = false; | |||||
| } | |||||
| } | |||||
| float getScaleFactor() const noexcept | |||||
| { | |||||
| return isOnlyTranslated ? 1.0f : complexTransform.getScaleFactor(); | |||||
| } | |||||
| void moveOriginInDeviceSpace (const int dx, const int dy) noexcept | |||||
| { | |||||
| if (isOnlyTranslated) | |||||
| { | |||||
| xOffset += dx; | |||||
| yOffset += dy; | |||||
| } | |||||
| else | |||||
| { | |||||
| complexTransform = complexTransform.translated ((float) dx, (float) dx); | |||||
| } | |||||
| } | |||||
| template <typename Type> | |||||
| Rectangle<Type> translated (const Rectangle<Type>& r) const noexcept | |||||
| { | |||||
| jassert (isOnlyTranslated); | |||||
| return r.translated (static_cast <Type> (xOffset), | |||||
| static_cast <Type> (yOffset)); | |||||
| } | |||||
| Rectangle<int> deviceSpaceToUserSpace (const Rectangle<int>& r) const noexcept | |||||
| { | |||||
| return isOnlyTranslated ? r.translated (-xOffset, -yOffset) | |||||
| : r.toFloat().transformed (complexTransform.inverted()).getSmallestIntegerContainer(); | |||||
| } | |||||
| AffineTransform complexTransform; | |||||
| int xOffset, yOffset; | |||||
| bool isOnlyTranslated; | |||||
| private: | |||||
| static inline bool isIntegerTranlation (const AffineTransform& t) noexcept | |||||
| { | |||||
| const int tx = (int) (t.getTranslationX() * 256.0f); | |||||
| const int ty = (int) (t.getTranslationY() * 256.0f); | |||||
| return ((tx | ty) & 0xf8) == 0; | |||||
| } | |||||
| }; | |||||
| //============================================================================== | |||||
| template <class CachedGlyphType, class RenderTargetType> | |||||
| class GlyphCache : private DeletedAtShutdown | |||||
| { | |||||
| public: | |||||
| GlyphCache() | |||||
| : accessCounter (0), hits (0), misses (0) | |||||
| { | |||||
| addNewGlyphSlots (120); | |||||
| } | |||||
| ~GlyphCache() | |||||
| { | |||||
| getSingletonPointer() = nullptr; | |||||
| } | |||||
| static GlyphCache& getInstance() | |||||
| { | |||||
| GlyphCache*& g = getSingletonPointer(); | |||||
| if (g == nullptr) | |||||
| g = new GlyphCache(); | |||||
| return *g; | |||||
| } | |||||
| //============================================================================== | |||||
| void drawGlyph (RenderTargetType& target, const Font& font, const int glyphNumber, float x, float y) | |||||
| { | |||||
| ++accessCounter; | |||||
| int oldestCounter = std::numeric_limits<int>::max(); | |||||
| CachedGlyphType* oldest = nullptr; | |||||
| for (int i = glyphs.size(); --i >= 0;) | |||||
| { | |||||
| CachedGlyphType* const glyph = glyphs.getUnchecked (i); | |||||
| if (glyph->glyph == glyphNumber && glyph->font == font) | |||||
| { | |||||
| ++hits; | |||||
| glyph->lastAccessCount = accessCounter; | |||||
| glyph->draw (target, x, y); | |||||
| return; | |||||
| } | |||||
| if (glyph->lastAccessCount <= oldestCounter) | |||||
| { | |||||
| oldestCounter = glyph->lastAccessCount; | |||||
| oldest = glyph; | |||||
| } | |||||
| } | |||||
| if (hits + ++misses > (glyphs.size() << 4)) | |||||
| { | |||||
| if (misses * 2 > hits) | |||||
| addNewGlyphSlots (32); | |||||
| hits = misses = 0; | |||||
| oldest = glyphs.getLast(); | |||||
| } | |||||
| jassert (oldest != nullptr); | |||||
| oldest->lastAccessCount = accessCounter; | |||||
| oldest->generate (font, glyphNumber); | |||||
| oldest->draw (target, x, y); | |||||
| } | |||||
| private: | |||||
| friend class OwnedArray <CachedGlyphType>; | |||||
| OwnedArray <CachedGlyphType> glyphs; | |||||
| int accessCounter, hits, misses; | |||||
| void addNewGlyphSlots (int num) | |||||
| { | |||||
| while (--num >= 0) | |||||
| glyphs.add (new CachedGlyphType()); | |||||
| } | |||||
| static GlyphCache*& getSingletonPointer() noexcept | |||||
| { | |||||
| static GlyphCache* g = nullptr; | |||||
| return g; | |||||
| } | |||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GlyphCache); | |||||
| }; | |||||
| } | |||||
| END_JUCE_NAMESPACE | |||||
| #endif // __JUCE_RENDERINGHELPERS_JUCEHEADER__ | |||||
| @@ -311,6 +311,28 @@ bool OpenGLFrameBuffer::initialise (const Image& image) | |||||
| return false; | return false; | ||||
| } | } | ||||
| bool OpenGLFrameBuffer::initialise (const OpenGLFrameBuffer& other) | |||||
| { | |||||
| const Pimpl* const p = other.pimpl; | |||||
| if (p == nullptr) | |||||
| { | |||||
| pimpl = nullptr; | |||||
| return true; | |||||
| } | |||||
| if (initialise (p->width, p->height)) | |||||
| { | |||||
| pimpl->bind(); | |||||
| glDisable (GL_BLEND); | |||||
| glColor4f (1.0f, 1.0f, 1.0f, 1.0f); | |||||
| other.drawAt (0, 0); | |||||
| pimpl->unbind(); | |||||
| } | |||||
| return false; | |||||
| } | |||||
| void OpenGLFrameBuffer::release() | void OpenGLFrameBuffer::release() | ||||
| { | { | ||||
| pimpl = nullptr; | pimpl = nullptr; | ||||
| @@ -55,6 +55,10 @@ public: | |||||
| */ | */ | ||||
| bool initialise (const Image& content); | bool initialise (const Image& content); | ||||
| /** Tries to allocate a copy of another framebuffer. | |||||
| */ | |||||
| bool initialise (const OpenGLFrameBuffer& other); | |||||
| /** Releases the buffer, if one has been allocated. | /** Releases the buffer, if one has been allocated. | ||||
| Any saved state that was created with saveAndRelease() will also be freed by this call. | Any saved state that was created with saveAndRelease() will also be freed by this call. | ||||
| */ | */ | ||||