diff --git a/BREAKING_CHANGES.md b/BREAKING_CHANGES.md index d584924191..c412bc3be4 100644 --- a/BREAKING_CHANGES.md +++ b/BREAKING_CHANGES.md @@ -2,6 +2,27 @@ # develop +## Change + +The LowLevelGraphicsPostscriptRenderer has been removed. + +**Possible Issues** + +Code that uses this class will no longer compile. + +**Workaround** + +There is no workaround. If you need this functionality, please let us know +about your use case. In the meantime, you may be able to copy the old classes +into your own project/module and use them that way. + +**Rationale** + +We are not aware of any projects using this functionality. This renderer was +not as fully-featured as any of the other renders, so it's likely that users +would have filed issue reports if they were using this feature. + + ## Change Support for the MinGW toolchain has been removed. diff --git a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt index 83a94118ca..6ec3be6114 100644 --- a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt +++ b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt @@ -1475,8 +1475,6 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp" "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" "../../../../../modules/juce_graphics/detail/juce_Ranges.cpp" @@ -3971,8 +3969,6 @@ set_source_files_properties( "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp" "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" "../../../../../modules/juce_graphics/detail/juce_Ranges.cpp" diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj index c406fb3e06..8b78bd8541 100644 --- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj +++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj @@ -1871,9 +1871,6 @@ true - - true - true @@ -3923,7 +3920,6 @@ - diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters index d2ae24b13d..3aac3af106 100644 --- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters +++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters @@ -2620,9 +2620,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -6393,9 +6390,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj index 6b8e22292a..dfcd6b1a29 100644 --- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj +++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj @@ -1871,9 +1871,6 @@ true - - true - true @@ -3923,7 +3920,6 @@ - diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters index 485b5c0e34..bfbde30093 100644 --- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters +++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters @@ -2620,9 +2620,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -6393,9 +6390,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt index 9b2e825b56..3e570b3b9e 100644 --- a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt +++ b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt @@ -1237,8 +1237,6 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp" "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" "../../../../../modules/juce_graphics/detail/juce_Ranges.cpp" @@ -3416,8 +3414,6 @@ set_source_files_properties( "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp" "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" "../../../../../modules/juce_graphics/detail/juce_Ranges.cpp" diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj index 627c38416f..63baf5712c 100644 --- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj @@ -1564,9 +1564,6 @@ true - - true - true @@ -3394,7 +3391,6 @@ - diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters index 1c50dd185c..899a80f3fb 100644 --- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters @@ -2164,9 +2164,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -5448,9 +5445,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt index 5b22a857b7..676b3dacde 100644 --- a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt +++ b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt @@ -1367,8 +1367,6 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp" "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" "../../../../../modules/juce_graphics/detail/juce_Ranges.cpp" @@ -3699,8 +3697,6 @@ set_source_files_properties( "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp" "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" "../../../../../modules/juce_graphics/detail/juce_Ranges.cpp" diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj index 859e179f0c..080434d6cc 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj +++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj @@ -1698,9 +1698,6 @@ true - - true - true @@ -3627,7 +3624,6 @@ - diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters index d32c0880a1..03ed176d33 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters +++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters @@ -2371,9 +2371,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -5883,9 +5880,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj index abd36ff5b6..042df2713a 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj +++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj @@ -1698,9 +1698,6 @@ true - - true - true @@ -3627,7 +3624,6 @@ - diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters index 24541e288d..84c73e4a8e 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters +++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters @@ -2371,9 +2371,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -5883,9 +5880,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt index 9f06ddf78e..0074a15455 100644 --- a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt +++ b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt @@ -1256,8 +1256,6 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp" "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" "../../../../../modules/juce_graphics/detail/juce_Ranges.cpp" @@ -3515,8 +3513,6 @@ set_source_files_properties( "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp" "../../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" - "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" "../../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" "../../../../../modules/juce_graphics/detail/juce_Ranges.cpp" diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj index d890ea791c..05e65a5568 100644 --- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj +++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj @@ -1585,9 +1585,6 @@ true - - true - true @@ -3492,7 +3489,6 @@ - diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters index d457123ac8..d8659d5cc4 100644 --- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters +++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters @@ -2218,9 +2218,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -5610,9 +5607,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj index 2553febd3a..0699866e89 100644 --- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj @@ -745,9 +745,6 @@ true - - true - true @@ -2215,7 +2212,6 @@ - diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters index 53859e6e6f..bfc859bb95 100644 --- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters @@ -1075,9 +1075,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -3285,9 +3282,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj index 02920b26ff..1837e076ae 100644 --- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj @@ -745,9 +745,6 @@ true - - true - true @@ -2215,7 +2212,6 @@ - diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters index 2d923f5bb7..cc0b6e03cf 100644 --- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters @@ -1075,9 +1075,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -3285,9 +3282,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj index cb55f5ecd3..d497ed868e 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj +++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj @@ -1706,9 +1706,6 @@ true - - true - true @@ -3723,7 +3720,6 @@ - diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters index 15e6e0431a..cd11cfd172 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters +++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters @@ -2392,9 +2392,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -5997,9 +5994,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj index a453b66712..b6cd8f87e3 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj +++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj @@ -1706,9 +1706,6 @@ true - - true - true @@ -3723,7 +3720,6 @@ - diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters index 4edd5b779a..62c0958e7d 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters +++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters @@ -2392,9 +2392,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -5997,9 +5994,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj index ce183c3bd8..26eba9b158 100644 --- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj +++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj @@ -1584,9 +1584,6 @@ true - - true - true @@ -3468,7 +3465,6 @@ - diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters index 525618b06a..4e824343ee 100644 --- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters +++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters @@ -2215,9 +2215,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts @@ -5577,9 +5574,6 @@ JUCE Modules\juce_graphics\contexts - - JUCE Modules\juce_graphics\contexts - JUCE Modules\juce_graphics\contexts diff --git a/modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp b/modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp deleted file mode 100644 index fac4e0cb56..0000000000 --- a/modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp +++ /dev/null @@ -1,552 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE framework. - Copyright (c) Raw Material Software Limited - - JUCE is an open source framework subject to commercial or open source - licensing. - - By downloading, installing, or using the JUCE framework, or combining the - JUCE framework with any other source code, object code, content or any other - copyrightable work, you agree to the terms of the JUCE End User Licence - Agreement, and all incorporated terms including the JUCE Privacy Policy and - the JUCE Website Terms of Service, as applicable, which will bind you. If you - do not agree to the terms of these agreements, we will not license the JUCE - framework to you, and you must discontinue the installation or download - process and cease use of the JUCE framework. - - JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ - JUCE Privacy Policy: https://juce.com/juce-privacy-policy - JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ - - Or: - - You may also use this code under the terms of the AGPLv3: - https://www.gnu.org/licenses/agpl-3.0.en.html - - THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL - WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF - MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. - - ============================================================================== -*/ - -namespace juce -{ - -// this will throw an assertion if you try to draw something that's not -// possible in postscript -#define WARN_ABOUT_NON_POSTSCRIPT_OPERATIONS 0 - -//============================================================================== -#if JUCE_DEBUG && WARN_ABOUT_NON_POSTSCRIPT_OPERATIONS - #define notPossibleInPostscriptAssert jassertfalse -#else - #define notPossibleInPostscriptAssert -#endif - -//============================================================================== -LowLevelGraphicsPostScriptRenderer::LowLevelGraphicsPostScriptRenderer (OutputStream& resultingPostScript, - const String& documentTitle, - const int totalWidth_, - const int totalHeight_) - : out (resultingPostScript), - totalWidth (totalWidth_), - totalHeight (totalHeight_), - needToClip (true) -{ - stateStack.add (new SavedState()); - stateStack.getLast()->clip = Rectangle (totalWidth_, totalHeight_); - - const float scale = jmin ((520.0f / (float) totalWidth_), (750.0f / (float) totalHeight)); - - out << "%!PS-Adobe-3.0 EPSF-3.0" - "\n%%BoundingBox: 0 0 600 824" - "\n%%Pages: 0" - "\n%%Creator: Raw Material Software Limited - JUCE" - "\n%%Title: " << documentTitle << - "\n%%CreationDate: none" - "\n%%LanguageLevel: 2" - "\n%%EndComments" - "\n%%BeginProlog" - "\n%%BeginResource: JRes" - "\n/bd {bind def} bind def" - "\n/c {setrgbcolor} bd" - "\n/m {moveto} bd" - "\n/l {lineto} bd" - "\n/rl {rlineto} bd" - "\n/ct {curveto} bd" - "\n/cp {closepath} bd" - "\n/pr {3 index 3 index moveto 1 index 0 rlineto 0 1 index rlineto pop neg 0 rlineto pop pop closepath} bd" - "\n/doclip {initclip newpath} bd" - "\n/endclip {clip newpath} bd" - "\n%%EndResource" - "\n%%EndProlog" - "\n%%BeginSetup" - "\n%%EndSetup" - "\n%%Page: 1 1" - "\n%%BeginPageSetup" - "\n%%EndPageSetup\n\n" - << "40 800 translate\n" - << scale << ' ' << scale << " scale\n\n"; -} - -//============================================================================== -bool LowLevelGraphicsPostScriptRenderer::isVectorDevice() const -{ - return true; -} - -void LowLevelGraphicsPostScriptRenderer::setOrigin (Point o) -{ - if (! o.isOrigin()) - { - stateStack.getLast()->xOffset += o.x; - stateStack.getLast()->yOffset += o.y; - needToClip = true; - } -} - -void LowLevelGraphicsPostScriptRenderer::addTransform (const AffineTransform& /*transform*/) -{ - //xxx - jassertfalse; -} - -float LowLevelGraphicsPostScriptRenderer::getPhysicalPixelScaleFactor() const { return 1.0f; } - -bool LowLevelGraphicsPostScriptRenderer::clipToRectangle (const Rectangle& r) -{ - needToClip = true; - return stateStack.getLast()->clip.clipTo (r.translated (stateStack.getLast()->xOffset, stateStack.getLast()->yOffset)); -} - -bool LowLevelGraphicsPostScriptRenderer::clipToRectangleList (const RectangleList& clipRegion) -{ - needToClip = true; - return stateStack.getLast()->clip.clipTo (clipRegion); -} - -void LowLevelGraphicsPostScriptRenderer::excludeClipRectangle (const Rectangle& r) -{ - needToClip = true; - stateStack.getLast()->clip.subtract (r.translated (stateStack.getLast()->xOffset, stateStack.getLast()->yOffset)); -} - -void LowLevelGraphicsPostScriptRenderer::clipToPath (const Path& path, const AffineTransform& transform) -{ - writeClip(); - - Path p (path); - p.applyTransform (transform.translated ((float) stateStack.getLast()->xOffset, (float) stateStack.getLast()->yOffset)); - writePath (p); - out << "clip\n"; -} - -void LowLevelGraphicsPostScriptRenderer::clipToImageAlpha (const Image& /*sourceImage*/, const AffineTransform& /*transform*/) -{ - needToClip = true; - jassertfalse; // xxx -} - -bool LowLevelGraphicsPostScriptRenderer::clipRegionIntersects (const Rectangle& r) -{ - return stateStack.getLast()->clip.intersectsRectangle (r.translated (stateStack.getLast()->xOffset, stateStack.getLast()->yOffset)); -} - -Rectangle LowLevelGraphicsPostScriptRenderer::getClipBounds() const -{ - return stateStack.getLast()->clip.getBounds().translated (-stateStack.getLast()->xOffset, - -stateStack.getLast()->yOffset); -} - -bool LowLevelGraphicsPostScriptRenderer::isClipEmpty() const -{ - return stateStack.getLast()->clip.isEmpty(); -} - -//============================================================================== -LowLevelGraphicsPostScriptRenderer::SavedState::SavedState() - : xOffset (0), - yOffset (0) -{ -} - -void LowLevelGraphicsPostScriptRenderer::saveState() -{ - stateStack.add (new SavedState (*stateStack.getLast())); -} - -void LowLevelGraphicsPostScriptRenderer::restoreState() -{ - jassert (stateStack.size() > 0); - - if (stateStack.size() > 0) - stateStack.removeLast(); -} - -void LowLevelGraphicsPostScriptRenderer::beginTransparencyLayer (float) -{ -} - -void LowLevelGraphicsPostScriptRenderer::endTransparencyLayer() -{ -} - -//============================================================================== -void LowLevelGraphicsPostScriptRenderer::writeClip() -{ - if (needToClip) - { - needToClip = false; - - out << "doclip "; - - int itemsOnLine = 0; - - for (auto& i : stateStack.getLast()->clip) - { - if (++itemsOnLine == 6) - { - itemsOnLine = 0; - out << '\n'; - } - - out << i.getX() << ' ' << -i.getY() << ' ' - << i.getWidth() << ' ' << -i.getHeight() << " pr "; - } - - out << "endclip\n"; - } -} - -void LowLevelGraphicsPostScriptRenderer::writeColour (Colour colour) -{ - Colour c (Colours::white.overlaidWith (colour)); - - if (lastColour != c) - { - lastColour = c; - - out << String (c.getFloatRed(), 3) << ' ' - << String (c.getFloatGreen(), 3) << ' ' - << String (c.getFloatBlue(), 3) << " c\n"; - } -} - -void LowLevelGraphicsPostScriptRenderer::writeXY (const float x, const float y) const -{ - out << String (x, 2) << ' ' - << String (-y, 2) << ' '; -} - -void LowLevelGraphicsPostScriptRenderer::writePath (const Path& path) const -{ - out << "newpath "; - - float lastX = 0.0f; - float lastY = 0.0f; - int itemsOnLine = 0; - - Path::Iterator i (path); - - while (i.next()) - { - if (++itemsOnLine == 4) - { - itemsOnLine = 0; - out << '\n'; - } - - switch (i.elementType) - { - case Path::Iterator::startNewSubPath: - writeXY (i.x1, i.y1); - lastX = i.x1; - lastY = i.y1; - out << "m "; - break; - - case Path::Iterator::lineTo: - writeXY (i.x1, i.y1); - lastX = i.x1; - lastY = i.y1; - out << "l "; - break; - - case Path::Iterator::quadraticTo: - { - const float cp1x = lastX + (i.x1 - lastX) * 2.0f / 3.0f; - const float cp1y = lastY + (i.y1 - lastY) * 2.0f / 3.0f; - const float cp2x = cp1x + (i.x2 - lastX) / 3.0f; - const float cp2y = cp1y + (i.y2 - lastY) / 3.0f; - - writeXY (cp1x, cp1y); - writeXY (cp2x, cp2y); - writeXY (i.x2, i.y2); - out << "ct "; - lastX = i.x2; - lastY = i.y2; - } - break; - - case Path::Iterator::cubicTo: - writeXY (i.x1, i.y1); - writeXY (i.x2, i.y2); - writeXY (i.x3, i.y3); - out << "ct "; - lastX = i.x3; - lastY = i.y3; - break; - - case Path::Iterator::closePath: - out << "cp "; - break; - - default: - jassertfalse; - break; - } - } - - out << '\n'; -} - -void LowLevelGraphicsPostScriptRenderer::writeTransform (const AffineTransform& trans) const -{ - out << "[ " - << trans.mat00 << ' ' - << trans.mat10 << ' ' - << trans.mat01 << ' ' - << trans.mat11 << ' ' - << trans.mat02 << ' ' - << trans.mat12 << " ] concat "; -} - -//============================================================================== -void LowLevelGraphicsPostScriptRenderer::setFill (const FillType& fillType) -{ - stateStack.getLast()->fillType = fillType; -} - -void LowLevelGraphicsPostScriptRenderer::setOpacity (float /*opacity*/) -{ -} - -void LowLevelGraphicsPostScriptRenderer::setInterpolationQuality (Graphics::ResamplingQuality /*quality*/) -{ -} - -//============================================================================== -void LowLevelGraphicsPostScriptRenderer::fillRect (const Rectangle& r, const bool /*replaceExistingContents*/) -{ - fillRect (r.toFloat()); -} - -void LowLevelGraphicsPostScriptRenderer::fillRect (const Rectangle& r) -{ - if (stateStack.getLast()->fillType.isColour()) - { - writeClip(); - writeColour (stateStack.getLast()->fillType.colour); - - auto r2 = r.translated ((float) stateStack.getLast()->xOffset, - (float) stateStack.getLast()->yOffset); - - out << r2.getX() << ' ' << -r2.getBottom() << ' ' << r2.getWidth() << ' ' << r2.getHeight() << " rectfill\n"; - } - else - { - Path p; - p.addRectangle (r); - fillPath (p, AffineTransform()); - } -} - -void LowLevelGraphicsPostScriptRenderer::fillRectList (const RectangleList& list) -{ - fillPath (list.toPath(), AffineTransform()); -} - -//============================================================================== -void LowLevelGraphicsPostScriptRenderer::fillPath (const Path& path, const AffineTransform& t) -{ - if (stateStack.getLast()->fillType.isColour()) - { - writeClip(); - - Path p (path); - p.applyTransform (t.translated ((float) stateStack.getLast()->xOffset, - (float) stateStack.getLast()->yOffset)); - writePath (p); - - writeColour (stateStack.getLast()->fillType.colour); - - out << "fill\n"; - } - else if (stateStack.getLast()->fillType.isGradient()) - { - // this doesn't work correctly yet - it could be improved to handle solid gradients, but - // postscript can't do semi-transparent ones. - notPossibleInPostscriptAssert; // you can disable this warning by setting the WARN_ABOUT_NON_POSTSCRIPT_OPERATIONS flag at the top of this file - - writeClip(); - out << "gsave "; - - { - Path p (path); - p.applyTransform (t.translated ((float) stateStack.getLast()->xOffset, (float) stateStack.getLast()->yOffset)); - writePath (p); - out << "clip\n"; - } - - auto bounds = stateStack.getLast()->clip.getBounds(); - - // ideally this would draw lots of lines or ellipses to approximate the gradient, but for the - // time-being, this just fills it with the average colour.. - writeColour (stateStack.getLast()->fillType.gradient->getColourAtPosition (0.5f)); - out << bounds.getX() << ' ' << -bounds.getBottom() << ' ' << bounds.getWidth() << ' ' << bounds.getHeight() << " rectfill\n"; - - out << "grestore\n"; - } -} - -//============================================================================== -void LowLevelGraphicsPostScriptRenderer::writeImage (const Image& im, - const int sx, const int sy, - const int maxW, const int maxH) const -{ - out << "{<\n"; - - const int w = jmin (maxW, im.getWidth()); - const int h = jmin (maxH, im.getHeight()); - - int charsOnLine = 0; - const Image::BitmapData srcData (im, 0, 0, w, h); - Colour pixel; - - for (int y = h; --y >= 0;) - { - for (int x = 0; x < w; ++x) - { - const uint8* pixelData = srcData.getPixelPointer (x, y); - - if (x >= sx && y >= sy) - { - if (im.isARGB()) - { - PixelARGB p (*(const PixelARGB*) pixelData); - p.unpremultiply(); - pixel = Colours::white.overlaidWith (Colour (p)); - } - else if (im.isRGB()) - { - pixel = Colour (*((const PixelRGB*) pixelData)); - } - else - { - pixel = Colour ((uint8) 0, (uint8) 0, (uint8) 0, *pixelData); - } - } - else - { - pixel = Colours::transparentWhite; - } - - const uint8 pixelValues[3] = { pixel.getRed(), pixel.getGreen(), pixel.getBlue() }; - - out << String::toHexString (pixelValues, 3, 0); - charsOnLine += 3; - - if (charsOnLine > 100) - { - out << '\n'; - charsOnLine = 0; - } - } - } - - out << "\n>}\n"; -} - -void LowLevelGraphicsPostScriptRenderer::drawImage (const Image& sourceImage, const AffineTransform& transform) -{ - const int w = sourceImage.getWidth(); - const int h = sourceImage.getHeight(); - - writeClip(); - - out << "gsave "; - writeTransform (transform.translated ((float) stateStack.getLast()->xOffset, (float) stateStack.getLast()->yOffset) - .scaled (1.0f, -1.0f)); - - RectangleList imageClip; - sourceImage.createSolidAreaMask (imageClip, 0.5f); - - out << "newpath "; - int itemsOnLine = 0; - - for (auto& i : imageClip) - { - if (++itemsOnLine == 6) - { - out << '\n'; - itemsOnLine = 0; - } - - out << i.getX() << ' ' << i.getY() << ' ' << i.getWidth() << ' ' << i.getHeight() << " pr "; - } - - out << " clip newpath\n"; - - out << w << ' ' << h << " scale\n"; - out << w << ' ' << h << " 8 [" << w << " 0 0 -" << h << ' ' << (int) 0 << ' ' << h << " ]\n"; - - writeImage (sourceImage, 0, 0, w, h); - - out << "false 3 colorimage grestore\n"; - needToClip = true; -} - - -//============================================================================== -void LowLevelGraphicsPostScriptRenderer::drawLine (const Line& line) -{ - Path p; - p.addLineSegment (line, 1.0f); - fillPath (p, AffineTransform()); -} - -//============================================================================== -void LowLevelGraphicsPostScriptRenderer::setFont (const Font& newFont) -{ - stateStack.getLast()->font = newFont; -} - -const Font& LowLevelGraphicsPostScriptRenderer::getFont() -{ - return stateStack.getLast()->font; -} - -void LowLevelGraphicsPostScriptRenderer::drawGlyphs (Span glyphs, - Span> positions, - const AffineTransform& transform) -{ - jassert (glyphs.size() == positions.size()); - - const auto& font = stateStack.getLast()->font; - - for (const auto [index, glyph] : enumerate (glyphs, size_t{})) - { - Path p; - font.getTypefacePtr()->getOutlineForGlyph (font.getMetricsKind(), glyph, p); - - const auto fullTransform = AffineTransform::scale (font.getHeight() * font.getHorizontalScale(), font.getHeight()) - .translated (positions[index]) - .followedBy (transform); - fillPath (p, fullTransform); - } -} - -} // namespace juce diff --git a/modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h b/modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h deleted file mode 100644 index 755a6538d8..0000000000 --- a/modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE framework. - Copyright (c) Raw Material Software Limited - - JUCE is an open source framework subject to commercial or open source - licensing. - - By downloading, installing, or using the JUCE framework, or combining the - JUCE framework with any other source code, object code, content or any other - copyrightable work, you agree to the terms of the JUCE End User Licence - Agreement, and all incorporated terms including the JUCE Privacy Policy and - the JUCE Website Terms of Service, as applicable, which will bind you. If you - do not agree to the terms of these agreements, we will not license the JUCE - framework to you, and you must discontinue the installation or download - process and cease use of the JUCE framework. - - JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ - JUCE Privacy Policy: https://juce.com/juce-privacy-policy - JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ - - Or: - - You may also use this code under the terms of the AGPLv3: - https://www.gnu.org/licenses/agpl-3.0.en.html - - THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL - WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF - MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. - - ============================================================================== -*/ - -namespace juce -{ - -//============================================================================== -/** - An implementation of LowLevelGraphicsContext that turns the drawing operations - into a PostScript document. - - @tags{Graphics} -*/ -class JUCE_API LowLevelGraphicsPostScriptRenderer : public LowLevelGraphicsContext -{ -public: - //============================================================================== - LowLevelGraphicsPostScriptRenderer (OutputStream& resultingPostScript, - const String& documentTitle, - int totalWidth, - int totalHeight); - - //============================================================================== - bool isVectorDevice() const override; - void setOrigin (Point) override; - void addTransform (const AffineTransform&) override; - float getPhysicalPixelScaleFactor() const override; - - bool clipToRectangle (const Rectangle&) override; - bool clipToRectangleList (const RectangleList&) override; - void excludeClipRectangle (const Rectangle&) override; - void clipToPath (const Path&, const AffineTransform&) override; - void clipToImageAlpha (const Image&, const AffineTransform&) override; - - void saveState() override; - void restoreState() override; - - void beginTransparencyLayer (float) override; - void endTransparencyLayer() override; - - bool clipRegionIntersects (const Rectangle&) override; - Rectangle getClipBounds() const override; - bool isClipEmpty() const override; - - //============================================================================== - void setFill (const FillType&) override; - void setOpacity (float) override; - void setInterpolationQuality (Graphics::ResamplingQuality) override; - - //============================================================================== - void fillRect (const Rectangle&, bool replaceExistingContents) override; - void fillRect (const Rectangle&) override; - void fillRectList (const RectangleList&) override; - void fillPath (const Path&, const AffineTransform&) override; - void drawImage (const Image&, const AffineTransform&) override; - void drawLine (const Line&) override; - - //============================================================================== - const Font& getFont() override; - void setFont (const Font&) override; - void drawGlyphs (Span glyphs, - Span> positions, - const AffineTransform&) override; - -protected: - //============================================================================== - OutputStream& out; - int totalWidth, totalHeight; - bool needToClip; - Colour lastColour; - - /** Describes a saved state */ - struct SavedState - { - SavedState(); - SavedState (const SavedState&) = default; - SavedState& operator= (const SavedState&) = delete; - - RectangleList clip; - int xOffset, yOffset; - FillType fillType; - Font font { FontOptions{} }; - }; - - OwnedArray stateStack; - - void writeClip(); - void writeColour (Colour colour); - void writePath (const Path&) const; - void writeXY (float x, float y) const; - void writeTransform (const AffineTransform&) const; - void writeImage (const Image&, int sx, int sy, int maxW, int maxH) const; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LowLevelGraphicsPostScriptRenderer) -}; - -} // namespace juce diff --git a/modules/juce_graphics/juce_graphics.cpp b/modules/juce_graphics/juce_graphics.cpp index b4f1f4b301..296dae0975 100644 --- a/modules/juce_graphics/juce_graphics.cpp +++ b/modules/juce_graphics/juce_graphics.cpp @@ -166,7 +166,6 @@ #include "geometry/juce_PathStrokeType.cpp" #include "placement/juce_RectanglePlacement.cpp" #include "contexts/juce_GraphicsContext.cpp" -#include "contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp" #include "contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp" #include "images/juce_Image.cpp" #include "images/juce_ImageCache.cpp" diff --git a/modules/juce_graphics/juce_graphics.h b/modules/juce_graphics/juce_graphics.h index 571de617c2..44a73ae248 100644 --- a/modules/juce_graphics/juce_graphics.h +++ b/modules/juce_graphics/juce_graphics.h @@ -146,7 +146,6 @@ namespace juce #include "fonts/juce_LruCache.h" #include "native/juce_RenderingHelpers.h" #include "contexts/juce_LowLevelGraphicsSoftwareRenderer.h" -#include "contexts/juce_LowLevelGraphicsPostScriptRenderer.h" #include "effects/juce_ImageEffectFilter.h" #include "effects/juce_DropShadowEffect.h" #include "effects/juce_GlowEffect.h"