summaryrefslogtreecommitdiff
path: root/src/qcam/viewfinder_gl.h
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-10-20 00:44:55 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-10-20 13:36:25 +0300
commit84ad104499d9efc0253dae1a60ee070ed375ad95 (patch)
treed10fd53eb79cebb28fa3f72b18b46dddb6382b83 /src/qcam/viewfinder_gl.h
parentdaf3f4b59f4ea0ecb42c6a39fe909f071d3a2842 (diff)
Move test applications to src/apps/
The cam and qcam test application share code, currently through a crude hack that references the cam source files directly from the qcam meson.build file. To prepare for the introduction of hosting that code in a static library, move all applications to src/apps/. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/qcam/viewfinder_gl.h')
-rw-r--r--src/qcam/viewfinder_gl.h108
1 files changed, 0 insertions, 108 deletions
diff --git a/src/qcam/viewfinder_gl.h b/src/qcam/viewfinder_gl.h
deleted file mode 100644
index 68c2912d..00000000
--- a/src/qcam/viewfinder_gl.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.1-or-later */
-/*
- * Copyright (C) 2020, Linaro
- *
- * viewfinder_GL.h - OpenGL Viewfinder for rendering by OpenGL shader
- *
- */
-
-#pragma once
-
-#include <array>
-#include <memory>
-
-#include <QImage>
-#include <QMutex>
-#include <QOpenGLBuffer>
-#include <QOpenGLFunctions>
-#include <QOpenGLShader>
-#include <QOpenGLShaderProgram>
-#include <QOpenGLTexture>
-#include <QOpenGLWidget>
-#include <QSize>
-
-#include <libcamera/formats.h>
-#include <libcamera/framebuffer.h>
-
-#include "viewfinder.h"
-
-class ViewFinderGL : public QOpenGLWidget,
- public ViewFinder,
- protected QOpenGLFunctions
-{
- Q_OBJECT
-
-public:
- ViewFinderGL(QWidget *parent = nullptr);
- ~ViewFinderGL();
-
- const QList<libcamera::PixelFormat> &nativeFormats() const override;
-
- int setFormat(const libcamera::PixelFormat &format, const QSize &size,
- const libcamera::ColorSpace &colorSpace,
- unsigned int stride) override;
- void render(libcamera::FrameBuffer *buffer, Image *image) override;
- void stop() override;
-
- QImage getCurrentImage() override;
-
-Q_SIGNALS:
- void renderComplete(libcamera::FrameBuffer *buffer);
-
-protected:
- void initializeGL() override;
- void paintGL() override;
- void resizeGL(int w, int h) override;
- QSize sizeHint() const override;
-
-private:
- bool selectFormat(const libcamera::PixelFormat &format);
- void selectColorSpace(const libcamera::ColorSpace &colorSpace);
-
- void configureTexture(QOpenGLTexture &texture);
- bool createFragmentShader();
- bool createVertexShader();
- void removeShader();
- void doRender();
-
- /* Captured image size, format and buffer */
- libcamera::FrameBuffer *buffer_;
- libcamera::PixelFormat format_;
- libcamera::ColorSpace colorSpace_;
- QSize size_;
- unsigned int stride_;
- Image *image_;
-
- /* Shaders */
- QOpenGLShaderProgram shaderProgram_;
- std::unique_ptr<QOpenGLShader> vertexShader_;
- std::unique_ptr<QOpenGLShader> fragmentShader_;
- QString vertexShaderFile_;
- QString fragmentShaderFile_;
- QStringList fragmentShaderDefines_;
-
- /* Vertex buffer */
- QOpenGLBuffer vertexBuffer_;
-
- /* Textures */
- std::array<std::unique_ptr<QOpenGLTexture>, 3> textures_;
-
- /* Common texture parameters */
- GLuint textureMinMagFilters_;
-
- /* YUV texture parameters */
- GLuint textureUniformU_;
- GLuint textureUniformV_;
- GLuint textureUniformY_;
- GLuint textureUniformStep_;
- unsigned int horzSubSample_;
- unsigned int vertSubSample_;
-
- /* Raw Bayer texture parameters */
- GLuint textureUniformSize_;
- GLuint textureUniformStrideFactor_;
- GLuint textureUniformBayerFirstRed_;
- QPointF firstRed_;
-
- QMutex mutex_; /* Prevent concurrent access to image_ */
-};