File tree Expand file tree Collapse file tree 2 files changed +32
-1
lines changed
Expand file tree Collapse file tree 2 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -898,8 +898,37 @@ bool Freenect2DeviceImpl::close()
898898 return true ;
899899}
900900
901+ PacketPipeline *createPacketPipelineByName (std::string name)
902+ {
903+ #if defined(LIBFREENECT2_WITH_OPENGL_SUPPORT)
904+ if (name == " gl" )
905+ return new OpenGLPacketPipeline ();
906+ #endif
907+ #if defined(LIBFREENECT2_WITH_CUDA_SUPPORT)
908+ if (name == " cuda" )
909+ return new CudaPacketPipeline ();
910+ #endif
911+ #if defined(LIBFREENECT2_WITH_OPENCL_SUPPORT)
912+ if (name == " cl" )
913+ return new OpenCLPacketPipeline ();
914+ #endif
915+ if (name == " cpu" )
916+ return new CpuPacketPipeline ();
917+ return NULL ;
918+ }
919+
901920PacketPipeline *createDefaultPacketPipeline ()
902921{
922+ const char *pipeline_env = std::getenv (" LIBFREENECT2_PIPELINE" );
923+ if (pipeline_env)
924+ {
925+ PacketPipeline *pipeline = createPacketPipelineByName (pipeline_env);
926+ if (pipeline)
927+ return pipeline;
928+ else
929+ LOG_WARNING << " `" << pipeline_env << " ' pipeline is not available." ;
930+ }
931+
903932#if defined(LIBFREENECT2_WITH_OPENGL_SUPPORT)
904933 return new OpenGLPacketPipeline ();
905934#elif defined(LIBFREENECT2_WITH_CUDA_SUPPORT)
Original file line number Diff line number Diff line change @@ -500,7 +500,9 @@ namespace Freenect2Driver
500500 WriteMessage (" Opening device " + std::string (uri));
501501 int id = uri_to_devid (iter->first .uri );
502502 DeviceImpl* device = new DeviceImpl (id);
503- device->setFreenect2Device (freenect2.openDevice (id)); // XXX, detault pipeline // const PacketPipeline *factory);
503+ // The LIBFREENECT2_PIPELINE variable allows to select
504+ // the non-default pipeline
505+ device->setFreenect2Device (freenect2.openDevice (id));
504506 device->setConfigStrings (config);
505507 iter->second = device;
506508 return device;
You can’t perform that action at this time.
0 commit comments