32
32
#include " Renderer/TextureManager.hpp"
33
33
#include " Renderer/TransitionShaderManager.hpp"
34
34
35
- #if PROJECTM_USE_THREADS
36
- #include " libprojectM/BackgroundWorker.hpp"
37
- #endif
38
-
39
35
namespace libprojectM {
40
36
41
37
ProjectM::ProjectM ()
42
38
: m_presetFactoryManager(std::make_unique<PresetFactoryManager>())
43
- #if PROJECTM_USE_THREADS
44
- , m_workerSync(std::make_unique<BackgroundWorkerSync>())
45
- #endif
46
39
{
47
40
Initialize ();
48
41
}
49
42
50
43
ProjectM::~ProjectM ()
51
44
{
52
- #if PROJECTM_USE_THREADS
53
- m_workerSync->FinishUp ();
54
- m_workerThread.join ();
55
- #endif
45
+ // Can't use "=default" in the header due to unique_ptr requiring the actual type declarations.
56
46
}
57
47
58
48
void ProjectM::PresetSwitchRequestedEvent (bool ) const
@@ -113,22 +103,6 @@ void ProjectM::ResetTextures()
113
103
m_textureManager = std::make_unique<Renderer::TextureManager>(m_textureSearchPaths);
114
104
}
115
105
116
- #if PROJECTM_USE_THREADS
117
-
118
- void ProjectM::ThreadWorker ()
119
- {
120
- while (true )
121
- {
122
- if (!m_workerSync->WaitForWork ())
123
- {
124
- return ;
125
- }
126
- m_workerSync->FinishedWork ();
127
- }
128
- }
129
-
130
- #endif
131
-
132
106
void ProjectM::RenderFrame ()
133
107
{
134
108
// Don't render if window area is zero.
@@ -137,10 +111,6 @@ void ProjectM::RenderFrame()
137
111
return ;
138
112
}
139
113
140
- #if PROJECTM_USE_THREADS
141
- std::lock_guard<std::recursive_mutex> guard (m_presetSwitchMutex);
142
- #endif
143
-
144
114
// Update FPS and other timer values.
145
115
m_timeKeeper->UpdateTimers ();
146
116
@@ -181,12 +151,6 @@ void ProjectM::RenderFrame()
181
151
182
152
if (m_timeKeeper->IsSmoothing () && m_transitioningPreset != nullptr )
183
153
{
184
- #if PROJECTM_USE_THREADS
185
- m_workerSync->WakeUpBackgroundTask ();
186
- // FIXME: Instead of waiting after a single render pass, check every frame if it's done.
187
- m_workerSync->WaitForBackgroundTaskToFinish ();
188
- #endif
189
-
190
154
// ToDo: check if new preset is loaded.
191
155
192
156
if (m_timeKeeper->SmoothRatio () >= 1.0 )
@@ -256,11 +220,6 @@ void ProjectM::Initialize()
256
220
257
221
LoadIdlePreset ();
258
222
259
- #if PROJECTM_USE_THREADS
260
- m_workerSync->Reset ();
261
- m_workerThread = std::thread (&ProjectM::ThreadWorker, this );
262
- #endif
263
-
264
223
m_timeKeeper->StartPreset ();
265
224
}
266
225
0 commit comments