mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-19 18:35:07 +03:00
qcam: Add additional command line option to select the renderer type
Add new option "--renderer=qt|gles" to select the renderer type, "--renderer=gles" to accelerate format conversion and rendering "--renderer=qt" is the original Qt rendering. Signed-off-by: Show Liu <show.liu@linaro.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
9db6ce0ba4
commit
219cbfe76b
3 changed files with 33 additions and 5 deletions
|
@ -28,6 +28,9 @@
|
|||
#include <libcamera/version.h>
|
||||
|
||||
#include "dng_writer.h"
|
||||
#ifndef QT_NO_OPENGL
|
||||
#include "viewfinder_gl.h"
|
||||
#endif
|
||||
#include "viewfinder_qt.h"
|
||||
|
||||
using namespace libcamera;
|
||||
|
@ -106,11 +109,32 @@ MainWindow::MainWindow(CameraManager *cm, const OptionsParser::Options &options)
|
|||
setWindowTitle(title_);
|
||||
connect(&titleTimer_, SIGNAL(timeout()), this, SLOT(updateTitle()));
|
||||
|
||||
ViewFinderQt *viewfinder = new ViewFinderQt(this);
|
||||
connect(viewfinder, &ViewFinderQt::renderComplete,
|
||||
this, &MainWindow::queueRequest);
|
||||
viewfinder_ = viewfinder;
|
||||
setCentralWidget(viewfinder);
|
||||
/* Renderer type Qt or GLES, select Qt by default. */
|
||||
std::string renderType = "qt";
|
||||
if (options_.isSet(OptRenderer))
|
||||
renderType = options_[OptRenderer].toString();
|
||||
|
||||
if (renderType == "qt") {
|
||||
ViewFinderQt *viewfinder = new ViewFinderQt(this);
|
||||
connect(viewfinder, &ViewFinderQt::renderComplete,
|
||||
this, &MainWindow::queueRequest);
|
||||
viewfinder_ = viewfinder;
|
||||
setCentralWidget(viewfinder);
|
||||
#ifndef QT_NO_OPENGL
|
||||
} else if (renderType == "gles") {
|
||||
ViewFinderGL *viewfinder = new ViewFinderGL(this);
|
||||
connect(viewfinder, &ViewFinderGL::renderComplete,
|
||||
this, &MainWindow::queueRequest);
|
||||
viewfinder_ = viewfinder;
|
||||
setCentralWidget(viewfinder);
|
||||
#endif
|
||||
} else {
|
||||
qWarning() << "Invalid render type"
|
||||
<< QString::fromStdString(renderType);
|
||||
quit();
|
||||
return;
|
||||
}
|
||||
|
||||
adjustSize();
|
||||
|
||||
/* Hotplug/unplug support */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue