From 8de9d9c6daba709c92150683bee0fb4ca928a92e Mon Sep 17 00:00:00 2001 From: jules Date: Fri, 30 Mar 2012 15:40:17 +0100 Subject: [PATCH] Version number bump. Clean-ups. --- .../Builds/VisualStudio2005/Juce Demo.vcproj | 1 + .../Builds/VisualStudio2008/Juce Demo.vcproj | 1 + .../Builds/VisualStudio2010/Juce Demo.vcxproj | 1 + .../Juce Demo.vcxproj.filters | 3 + .../iOS/Juce Demo.xcodeproj/project.pbxproj | 2 + .../Plugin Host.xcodeproj/project.pbxproj | 2 + .../VisualStudio2005/Plugin Host.vcproj | 1 + .../VisualStudio2008/Plugin Host.vcproj | 1 + .../MacOSX/juce.xcodeproj/project.pbxproj | 4 +- .../Builds/VisualStudio2008/juce.vcproj | 1 + .../Builds/VisualStudio2010/juce.vcxproj | 1 + .../VisualStudio2010/juce.vcxproj.filters | 3 + modules/juce_audio_basics/juce_module_info | 2 +- modules/juce_audio_devices/juce_module_info | 2 +- modules/juce_audio_formats/juce_module_info | 2 +- .../juce_audio_plugin_client/juce_module_info | 2 +- .../juce_audio_processors/juce_module_info | 2 +- modules/juce_audio_utils/juce_module_info | 2 +- modules/juce_browser_plugin/juce_module_info | 2 +- modules/juce_core/juce_module_info | 2 +- .../juce_core/system/juce_StandardHeader.h | 2 +- modules/juce_cryptography/juce_module_info | 2 +- modules/juce_data_structures/juce_module_info | 2 +- modules/juce_events/juce_module_info | 2 +- modules/juce_graphics/juce_module_info | 2 +- modules/juce_gui_basics/juce_module_info | 2 +- modules/juce_gui_extra/juce_module_info | 2 +- modules/juce_opengl/juce_module_info | 2 +- modules/juce_opengl/juce_opengl.h | 3 + .../juce_opengl/opengl/juce_OpenGLContext.h | 56 ++++----------- .../juce_opengl/opengl/juce_OpenGLRenderer.h | 70 +++++++++++++++++++ modules/juce_video/juce_module_info | 2 +- 32 files changed, 123 insertions(+), 61 deletions(-) create mode 100644 modules/juce_opengl/opengl/juce_OpenGLRenderer.h diff --git a/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj b/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj index 04a6854a04..64e2f1057e 100644 --- a/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj +++ b/extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj @@ -4331,6 +4331,7 @@ + diff --git a/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj b/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj index aa79680b68..501cdd1864 100644 --- a/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj +++ b/extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj @@ -4331,6 +4331,7 @@ + diff --git a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj index 1083b6777e..620f47a932 100644 --- a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj +++ b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj @@ -1608,6 +1608,7 @@ + diff --git a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters index 497686a5dc..73384d1d1c 100644 --- a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters +++ b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters @@ -2817,6 +2817,9 @@ Juce Modules\juce_opengl\opengl + + Juce Modules\juce_opengl\opengl + Juce Modules\juce_opengl\opengl diff --git a/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj b/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj index a5beb85ce5..0418355bdb 100644 --- a/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj +++ b/extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj @@ -508,6 +508,7 @@ 7FC1A0B1663AC9262104D715 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; 8042D0D2B38EBD19652CBA55 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OldSchoolLookAndFeel.cpp"; path = "../../../../modules/juce_gui_extra/lookandfeel/juce_OldSchoolLookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; 805B94425CD56EA78E0A705B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioDemoPlaybackPage.h; path = ../../Source/demos/AudioDemoPlaybackPage.h; sourceTree = "SOURCE_ROOT"; }; + 80945993EC383052DA7BB92D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLRenderer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h"; sourceTree = "SOURCE_ROOT"; }; 80E7D8D4E601BCC20054475E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; 80EEC26431102B212C9F873B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; 814313374CD209A40282985E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1901,6 +1902,7 @@ 17422D876DAAF091ED089B8D, AAAA086F74F507C87200AD2E, B81FA2ED22BCC03D124031ED, + 80945993EC383052DA7BB92D, 58864C3D7F369EBE01E42C5C, 8EEB4DEB11F3DF01BA6F7528, FE9A5898294228EB7F439951, diff --git a/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj b/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj index a41d9d5a50..ae6848ac37 100644 --- a/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj +++ b/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj @@ -458,6 +458,7 @@ 7F031C3EECC44A707A4B1F5A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; 80101DB42394F099476E9EEC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; 807C6A24C920DBD11B9D6D89 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 81026C4FD8F62B3D78EFE722 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLRenderer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h"; sourceTree = "SOURCE_ROOT"; }; 813F42FA0CDB76C5150A482E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; 81D77B804ED4556D69FFE37D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; 81F7A7CD9847CBAFC6615F07 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; @@ -1831,6 +1832,7 @@ 4CE76ABC51CC5E019AED3C2B, 918A6AE024A876783EC063DD, 8BA1AF085755958342C9213A, + 81026C4FD8F62B3D78EFE722, DFE18134F58A9C546AD16FF7, 442E6311FB54378E88B6811C, 651055751E902F40B83EFD55, diff --git a/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj b/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj index c5a3ae15bf..b3c2e75405 100644 --- a/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj +++ b/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj @@ -4254,6 +4254,7 @@ + diff --git a/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj b/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj index cb726452c2..986177e3a2 100644 --- a/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj +++ b/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj @@ -4254,6 +4254,7 @@ + diff --git a/extras/static library/Builds/MacOSX/juce.xcodeproj/project.pbxproj b/extras/static library/Builds/MacOSX/juce.xcodeproj/project.pbxproj index d0872e488c..dd606731ed 100644 --- a/extras/static library/Builds/MacOSX/juce.xcodeproj/project.pbxproj +++ b/extras/static library/Builds/MacOSX/juce.xcodeproj/project.pbxproj @@ -191,6 +191,7 @@ 36203646F7650EEBC8E561E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; 3693E6A29D3276AE2FD99E7C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; 36C52951440860FFBD722ADC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 371BD79724C7949D135B837E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLRenderer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h"; sourceTree = "SOURCE_ROOT"; }; 3726D2A716AFFCAFC689F699 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; 3739A44261DD4D4BE787109C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; 3775CD7D5E1F969B5159556A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -610,7 +611,7 @@ B9E3D8A5B69F14C6404E2AB2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; BA94000B8C2FCD758F5152FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../../../modules/juce_graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; BAF325E9748B0670F34129BE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; - BB3752B34C9A609E300D679B = { isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libjucedebug.a; sourceTree = "BUILT_PRODUCTS_DIR"; }; + BB3752B34C9A609E300D679B = { isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = sourcecode.c.h; sourceTree = "BUILT_PRODUCTS_DIR"; }; BBB6077B7D799C2FD4187355 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; BC2411690315F3F1612A9A13 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; BCA1200B13A683E6A3DC3CEB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; @@ -1781,6 +1782,7 @@ 7251827C30AC1C4F55C3DB69, 789DD960143BCB1B9A2559EC, 6D95302F8D68BA3F0538214F, + 371BD79724C7949D135B837E, 1DC59B4A97D5DF77801ACAE8, F7010D646D19C704DE9D42A1, A0D54F01BC8018CC41FA34E9, diff --git a/extras/static library/Builds/VisualStudio2008/juce.vcproj b/extras/static library/Builds/VisualStudio2008/juce.vcproj index 7ce03c7557..99d825a0b0 100644 --- a/extras/static library/Builds/VisualStudio2008/juce.vcproj +++ b/extras/static library/Builds/VisualStudio2008/juce.vcproj @@ -4216,6 +4216,7 @@ + diff --git a/extras/static library/Builds/VisualStudio2010/juce.vcxproj b/extras/static library/Builds/VisualStudio2010/juce.vcxproj index 5b26b339ba..8e2a414d06 100644 --- a/extras/static library/Builds/VisualStudio2010/juce.vcxproj +++ b/extras/static library/Builds/VisualStudio2010/juce.vcxproj @@ -1576,6 +1576,7 @@ + diff --git a/extras/static library/Builds/VisualStudio2010/juce.vcxproj.filters b/extras/static library/Builds/VisualStudio2010/juce.vcxproj.filters index ac830405d2..5b5cec6b1f 100644 --- a/extras/static library/Builds/VisualStudio2010/juce.vcxproj.filters +++ b/extras/static library/Builds/VisualStudio2010/juce.vcxproj.filters @@ -2700,6 +2700,9 @@ Juce Modules\juce_opengl\opengl + + Juce Modules\juce_opengl\opengl + Juce Modules\juce_opengl\opengl diff --git a/modules/juce_audio_basics/juce_module_info b/modules/juce_audio_basics/juce_module_info index aece9bf25f..bf995196ff 100644 --- a/modules/juce_audio_basics/juce_module_info +++ b/modules/juce_audio_basics/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_basics", "name": "JUCE audio and midi data classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for audio buffer manipulation, midi message handling, synthesis, etc", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_audio_devices/juce_module_info b/modules/juce_audio_devices/juce_module_info index dedb6a3468..08964c3254 100644 --- a/modules/juce_audio_devices/juce_module_info +++ b/modules/juce_audio_devices/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_devices", "name": "JUCE audio and midi I/O device classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes to play and record from audio and midi i/o devices.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_audio_formats/juce_module_info b/modules/juce_audio_formats/juce_module_info index cce8a1d101..f657ecb06a 100644 --- a/modules/juce_audio_formats/juce_module_info +++ b/modules/juce_audio_formats/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_formats", "name": "JUCE audio file format codecs", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for reading and writing various audio file formats.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_audio_plugin_client/juce_module_info b/modules/juce_audio_plugin_client/juce_module_info index 2d2bc06026..9899f00f03 100644 --- a/modules/juce_audio_plugin_client/juce_module_info +++ b/modules/juce_audio_plugin_client/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_plugin_client", "name": "JUCE audio plugin wrapper classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for building VST, RTAS and AU plugins.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_audio_processors/juce_module_info b/modules/juce_audio_processors/juce_module_info index 6f29b7603c..c50edb3d18 100644 --- a/modules/juce_audio_processors/juce_module_info +++ b/modules/juce_audio_processors/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_processors", "name": "JUCE audio plugin hosting classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for loading and playing VST, AU, or internally-generated audio processors.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_audio_utils/juce_module_info b/modules/juce_audio_utils/juce_module_info index 5846365958..ca8be74cd2 100644 --- a/modules/juce_audio_utils/juce_module_info +++ b/modules/juce_audio_utils/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_utils", "name": "JUCE extra audio utility classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for audio-related GUI and miscellaneous tasks.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_browser_plugin/juce_module_info b/modules/juce_browser_plugin/juce_module_info index adc4cb412f..041144fd81 100644 --- a/modules/juce_browser_plugin/juce_module_info +++ b/modules/juce_browser_plugin/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_browser_plugin_client", "name": "JUCE browser plugin wrapper classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for building NPAPI and ActiveX browser plugins.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_core/juce_module_info b/modules/juce_core/juce_module_info index 6c67c365c5..2f0670712d 100644 --- a/modules/juce_core/juce_module_info +++ b/modules/juce_core/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_core", "name": "JUCE core classes", - "version": "2.0.18", + "version": "2.0.19", "description": "The essential set of basic JUCE classes, as required by all the other JUCE modules. Includes text, container, memory, threading and i/o functionality.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_core/system/juce_StandardHeader.h b/modules/juce_core/system/juce_StandardHeader.h index e4dbf8547a..d3ec685756 100644 --- a/modules/juce_core/system/juce_StandardHeader.h +++ b/modules/juce_core/system/juce_StandardHeader.h @@ -33,7 +33,7 @@ */ #define JUCE_MAJOR_VERSION 2 #define JUCE_MINOR_VERSION 0 -#define JUCE_BUILDNUMBER 18 +#define JUCE_BUILDNUMBER 19 /** Current Juce version number. diff --git a/modules/juce_cryptography/juce_module_info b/modules/juce_cryptography/juce_module_info index f4d548f9c4..d334ea16f8 100644 --- a/modules/juce_cryptography/juce_module_info +++ b/modules/juce_cryptography/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_cryptography", "name": "JUCE cryptography classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for various basic cryptography functions, including RSA, Blowfish, MD5, SHA, etc.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_data_structures/juce_module_info b/modules/juce_data_structures/juce_module_info index fd06b8f343..8d2dce05cd 100644 --- a/modules/juce_data_structures/juce_module_info +++ b/modules/juce_data_structures/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_data_structures", "name": "JUCE data model helper classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for undo/redo management, and smart data structures.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_events/juce_module_info b/modules/juce_events/juce_module_info index e4eda3c593..adaff5e480 100644 --- a/modules/juce_events/juce_module_info +++ b/modules/juce_events/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_events", "name": "JUCE message and event handling classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for running an application's main event loop and sending/receiving messages, timers, etc.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_graphics/juce_module_info b/modules/juce_graphics/juce_module_info index 7482e5bc93..e3ca0f8ffa 100644 --- a/modules/juce_graphics/juce_module_info +++ b/modules/juce_graphics/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_graphics", "name": "JUCE graphics classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for 2D vector graphics, image loading/saving, font handling, etc.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_gui_basics/juce_module_info b/modules/juce_gui_basics/juce_module_info index 816180d0ac..c6e72a0a36 100644 --- a/modules/juce_gui_basics/juce_module_info +++ b/modules/juce_gui_basics/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_gui_basics", "name": "JUCE GUI core classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Basic user-interface components and related classes.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_gui_extra/juce_module_info b/modules/juce_gui_extra/juce_module_info index db76160596..59f0b61a70 100644 --- a/modules/juce_gui_extra/juce_module_info +++ b/modules/juce_gui_extra/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_gui_extra", "name": "JUCE extended GUI classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Miscellaneous GUI classes for specialised tasks.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_opengl/juce_module_info b/modules/juce_opengl/juce_module_info index 2c6cf72e0c..0613628506 100644 --- a/modules/juce_opengl/juce_module_info +++ b/modules/juce_opengl/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_opengl", "name": "JUCE OpenGL classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for rendering OpenGL in a JUCE window.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_opengl/juce_opengl.h b/modules/juce_opengl/juce_opengl.h index 450ce3697e..897444d70c 100644 --- a/modules/juce_opengl/juce_opengl.h +++ b/modules/juce_opengl/juce_opengl.h @@ -105,6 +105,9 @@ namespace juce #ifndef __JUCE_OPENGLPIXELFORMAT_JUCEHEADER__ #include "opengl/juce_OpenGLPixelFormat.h" #endif +#ifndef __JUCE_OPENGLRENDERER_JUCEHEADER__ + #include "opengl/juce_OpenGLRenderer.h" +#endif #ifndef __JUCE_OPENGLSHADERPROGRAM_JUCEHEADER__ #include "opengl/juce_OpenGLShaderProgram.h" #endif diff --git a/modules/juce_opengl/opengl/juce_OpenGLContext.h b/modules/juce_opengl/opengl/juce_OpenGLContext.h index 7a0982c301..f48228a194 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLContext.h +++ b/modules/juce_opengl/opengl/juce_OpenGLContext.h @@ -28,54 +28,22 @@ #include "juce_OpenGLPixelFormat.h" #include "../native/juce_OpenGLExtensions.h" +#include "juce_OpenGLRenderer.h" -//============================================================================== -/** - A base class that should be implemented by classes which want to render openGL - on a background thread. - - @see OpenGLContext -*/ -class JUCE_API OpenGLRenderer -{ -public: - OpenGLRenderer() {} - virtual ~OpenGLRenderer() {} - - /** Called when a new GL context has been created. - You can use this as an opportunity to create your textures, shaders, etc. - When the method is invoked, the new GL context will be active. - Note that this callback will be made on a background thread, so make sure - that your implementation is thread-safe. - */ - virtual void newOpenGLContextCreated() = 0; - - /** Called when you should render the next openGL frame. - Note that this callback will be made on a background thread, so make sure - that your implementation is thread-safe. - */ - virtual void renderOpenGL() = 0; - - /** Called when the current openGL context is about to close. - You can use this opportunity to release any GL resources that you may have - created. - - Note that this callback will be made on a background thread, so make sure - that your implementation is thread-safe. - - (Also note that on Android, this callback won't happen, because there's currently - no way to implement it..) - */ - virtual void openGLContextClosing() = 0; -}; //============================================================================== /** Creates an OpenGL context, which can be attached to a component. - To render some OpenGL in a component, you should create an instance of an OpenGLContext, - and call attachTo() to make it use your component as its render target. - To free the context, either call detach(), or delete the OpenGLContext. + To render some OpenGL, you should create an instance of an OpenGLContext, + and call attachTo() to make it use a component as its render target. + + To provide threaded rendering, you can supply an OpenGLRenderer object that + will be used to render each frame. + + Before your target component or OpenGLRenderer is deleted, you MUST call + detach() or delete the OpenGLContext to allow the background thread to + stop and the native resources to be freed safely. @see OpenGLRenderer */ @@ -160,6 +128,7 @@ public: /** Asynchronously causes a repaint to be made. */ void triggerRepaint(); + //============================================================================== /** Returns the width of this context */ inline int getWidth() const noexcept { return width; } @@ -256,6 +225,8 @@ public: const Rectangle& anchorPosAndTextureSize, int contextWidth, int contextHeight); + + //============================================================================== #ifndef DOXYGEN class NativeContext; #endif @@ -277,5 +248,4 @@ private: }; - #endif // __JUCE_OPENGLCONTEXT_JUCEHEADER__ diff --git a/modules/juce_opengl/opengl/juce_OpenGLRenderer.h b/modules/juce_opengl/opengl/juce_OpenGLRenderer.h new file mode 100644 index 0000000000..e6772ad04a --- /dev/null +++ b/modules/juce_opengl/opengl/juce_OpenGLRenderer.h @@ -0,0 +1,70 @@ +/* + ============================================================================== + + 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_OPENGLRENDERER_JUCEHEADER__ +#define __JUCE_OPENGLRENDERER_JUCEHEADER__ + +//============================================================================== +/** + A base class that should be implemented by classes which want to render openGL + on a background thread. + + @see OpenGLContext +*/ +class JUCE_API OpenGLRenderer +{ +public: + OpenGLRenderer() {} + virtual ~OpenGLRenderer() {} + + /** Called when a new GL context has been created. + You can use this as an opportunity to create your textures, shaders, etc. + When the method is invoked, the new GL context will be active. + Note that this callback will be made on a background thread, so make sure + that your implementation is thread-safe. + */ + virtual void newOpenGLContextCreated() = 0; + + /** Called when you should render the next openGL frame. + Note that this callback will be made on a background thread, so make sure + that your implementation is thread-safe. + */ + virtual void renderOpenGL() = 0; + + /** Called when the current openGL context is about to close. + You can use this opportunity to release any GL resources that you may have + created. + + Note that this callback will be made on a background thread, so make sure + that your implementation is thread-safe. + + (Also note that on Android, this callback won't happen, because there's currently + no way to implement it..) + */ + virtual void openGLContextClosing() = 0; +}; + + +#endif // __JUCE_OPENGLRENDERER_JUCEHEADER__ diff --git a/modules/juce_video/juce_module_info b/modules/juce_video/juce_module_info index 29fec94446..9ee06462c0 100644 --- a/modules/juce_video/juce_module_info +++ b/modules/juce_video/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_video", "name": "JUCE video playback and capture classes", - "version": "2.0.18", + "version": "2.0.19", "description": "Classes for playing video and capturing camera input.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial",