Hi everyone,

I’ve built an interface in Qt which interacts with a camera and a projector for synchronized image capture. I am using a button linked to a QProcess command on the interface to launch an external process which sends images to the projector to trigger image capture.

The issue is that, when I launch the process from this interface, the OpenGL instance created by the external process suffers greatly in performance, resulting in botched image captures. Such a performance drop is not experienced when running the process by itself. The only thing that I think might affect the new process is the 2 OpenGL instances running in the interface, but the external process itself does not do much processing at all: it just draws a square, binds a PNG image onto the surface, and refreshes at 60 Hz for all PNG images.

I was wondering if this is an issue with the way I have launched the program, or if its due to hardware limitations (the workstation does not have the highest specs. Thanks in advance! My launching code is included below:

Qt Code:
  1. bool bStartSuccess;
  2. QString sProgram = CASIO_EXE_PATH;
  3. QString sProgramDir = CASIO_EXE_DIR;
  4. QStringList arguments;
  5. arguments << QString("%1").arg(pattern_list.count());
  6. QString sOldPath = QDir::currentPath();
  7. QDir::setCurrent( sProgramDir );
  8. QProcess *process = new QProcess(this);
  9. bStartSuccess = process->startDetached(sProgram, arguments);
  10. QDir::setCurrent(sOldPath);
To copy to clipboard, switch view to plain text mode