@@ -99,6 +99,8 @@ int main(int argc, char *argv[])
99
99
100
100
std::string serial = freenect2.getDefaultDeviceSerialNumber ();
101
101
102
+ bool viewer_enabled = true ;
103
+
102
104
for (int argI = 1 ; argI < argc; ++argI)
103
105
{
104
106
const std::string arg (argv[argI]);
@@ -130,6 +132,10 @@ int main(int argc, char *argv[])
130
132
{
131
133
serial = arg;
132
134
}
135
+ else if (arg == " -noviewer" )
136
+ {
137
+ viewer_enabled = false ;
138
+ }
133
139
else
134
140
{
135
141
std::cout << " Unknown argument: " << arg << std::endl;
@@ -167,9 +173,13 @@ int main(int argc, char *argv[])
167
173
168
174
libfreenect2::Registration* registration = new libfreenect2::Registration (dev->getIrCameraParams (), dev->getColorCameraParams ());
169
175
176
+ size_t framecount = 0 ;
170
177
#ifdef LIBFREENECT2_WITH_OPENGL_SUPPORT
171
178
Viewer viewer;
172
- viewer.initialize ();
179
+ if (viewer_enabled)
180
+ viewer.initialize ();
181
+ #else
182
+ viewer_enabled = false ;
173
183
#endif
174
184
175
185
while (!protonect_shutdown)
@@ -181,15 +191,22 @@ int main(int argc, char *argv[])
181
191
182
192
registration->apply (rgb, depth, &undistorted, ®istered);
183
193
194
+ framecount++;
195
+ if (!viewer_enabled)
196
+ {
197
+ if (framecount % 100 == 0 )
198
+ std::cout << " The viewer is turned off. Received " << framecount << " frames. Ctrl-C to stop." << std::endl;
199
+ listener.release (frames);
200
+ continue ;
201
+ }
202
+
184
203
#ifdef LIBFREENECT2_WITH_OPENGL_SUPPORT
185
204
viewer.addFrame (" RGB" , rgb);
186
205
viewer.addFrame (" ir" , ir);
187
206
viewer.addFrame (" depth" , depth);
188
207
viewer.addFrame (" registered" , ®istered);
189
208
190
- protonect_shutdown = viewer.render ();
191
- #else
192
- protonect_shutdown = true ;
209
+ protonect_shutdown = protonect_shutdown || viewer.render ();
193
210
#endif
194
211
195
212
listener.release (frames);
0 commit comments