File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -166,15 +166,6 @@ void VisualizerEditor::ButtonResponder::buttonClicked (Button* button)
166166 editor->dataWindow ->setVisible (true );
167167 editor->dataWindow ->toFront (true );
168168 editor->dataWindow ->addListener (editor);
169-
170- // Set the rendering engine for the window
171- auto editorPeer = editor->getPeer ();
172- if (auto peer = editor->canvas ->getPeer ())
173- {
174- auto editorPeer = editor->getPeer ();
175- if (editorPeer)
176- peer->setCurrentRenderingEngine (editorPeer->getCurrentRenderingEngine ());
177- }
178169 }
179170 else
180171 {
@@ -191,6 +182,19 @@ void VisualizerEditor::ButtonResponder::buttonClicked (Button* button)
191182 editor->dataWindow ->setVisible (false );
192183 }
193184 }
185+
186+ #if JUCE_WINDOWS
187+ // Set the rendering engine for the window
188+ if (editor->dataWindow ->isVisible ())
189+ {
190+ auto editorPeer = editor->getPeer ();
191+ if (auto peer = editor->dataWindow ->getPeer ())
192+ {
193+ if (editorPeer)
194+ peer->setCurrentRenderingEngine (editorPeer->getCurrentRenderingEngine ());
195+ }
196+ }
197+ #endif
194198 }
195199 else if (button == editor->tabSelector .get ())
196200 {
Original file line number Diff line number Diff line change @@ -1105,21 +1105,13 @@ bool UIComponent::perform (const InvocationInfo& info)
11051105
11061106 case setSoftwareRenderer:
11071107 {
1108- if (auto peer = getPeer ())
1109- {
1110- peer->setCurrentRenderingEngine (0 );
1111- repaint ();
1112- }
1108+ setRenderingEngine (0 );
11131109 break ;
11141110 }
11151111
11161112 case setDirect2DRenderer:
11171113 {
1118- if (auto peer = getPeer ())
1119- {
1120- peer->setCurrentRenderingEngine (1 );
1121- repaint ();
1122- }
1114+ setRenderingEngine (1 );
11231115 break ;
11241116 }
11251117
@@ -1148,6 +1140,23 @@ bool UIComponent::perform (const InvocationInfo& info)
11481140 return true ;
11491141}
11501142
1143+ void UIComponent::setRenderingEngine (int index)
1144+ {
1145+ #if JUCE_WINDOWS
1146+ for (int i = 0 ; i < TopLevelWindow::getNumTopLevelWindows (); i++)
1147+ {
1148+ if (TopLevelWindow* window = TopLevelWindow::getTopLevelWindow (i))
1149+ {
1150+ if (auto * peer = window->getPeer ())
1151+ {
1152+ peer->setCurrentRenderingEngine (index);
1153+ window->repaint ();
1154+ }
1155+ }
1156+ }
1157+ #endif
1158+ }
1159+
11511160void UIComponent::saveStateToXml (XmlElement* xml)
11521161{
11531162 XmlElement* uiComponentState = xml->createNewChildElement (" UICOMPONENT" );
Original file line number Diff line number Diff line change @@ -294,6 +294,9 @@ class UIComponent : public Component,
294294
295295 CustomLookAndFeel* customLookAndFeel;
296296
297+ /* * Set the rendering engine to use on Windows - Software (CPU) or Direct2D (GPU))*/
298+ void setRenderingEngine (int engineIndex);
299+
297300 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (UIComponent);
298301};
299302
You can’t perform that action at this time.
0 commit comments