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()
898
898
return true ;
899
899
}
900
900
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
+
901
920
PacketPipeline *createDefaultPacketPipeline ()
902
921
{
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
+
903
932
#if defined(LIBFREENECT2_WITH_OPENGL_SUPPORT)
904
933
return new OpenGLPacketPipeline ();
905
934
#elif defined(LIBFREENECT2_WITH_CUDA_SUPPORT)
Original file line number Diff line number Diff line change @@ -500,7 +500,9 @@ namespace Freenect2Driver
500
500
WriteMessage (" Opening device " + std::string (uri));
501
501
int id = uri_to_devid (iter->first .uri );
502
502
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));
504
506
device->setConfigStrings (config);
505
507
iter->second = device;
506
508
return device;
You can’t perform that action at this time.
0 commit comments