From patchwork Thu Nov 16 12:24:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 97081 X-Patchwork-Delegate: hverkuil@xs4all.nl Received: from ny.mirrors.kernel.org ([147.75.199.223]) by www.linuxtv.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1r3bQ1-008lsD-MB for patchwork@linuxtv.org; Thu, 16 Nov 2023 12:24:26 +0000 Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 038751C20878 for ; Thu, 16 Nov 2023 12:24:23 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1B3C030646; Thu, 16 Nov 2023 12:24:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="p5Xf2otB" X-Original-To: linux-media@vger.kernel.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 561AD18B for ; Thu, 16 Nov 2023 04:24:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1700137443; x=1700742243; i=ps.report@gmx.net; bh=ySeIlhOOwktLi3B5nIs5oiHBHk5RsCsPVrhMoG88W3o=; h=X-UI-Sender-Class:From:To:Subject:Date:In-Reply-To:References; b=p5Xf2otB22pUWFcJbjwHGoQGw+VDFWCKQflyg7naJsRuTRRJpwZPr20w69toZiTi XSYAzEAoytC7yPWSN+tPmaVXgX6T6sBMQhwV0Zqrtaz+FlcYuoez5iYx38xo4PnO6 z8d1puFNad/hnmkikjLBS+JgtncmwTor+ZwKjObphCyaDcpebNanby1FOeLCNgWvl QlQW4Toa1w2rQR/eGQWr8U0qzUJmc4VsYBmG+aTOyvWL6uWBgbhBaFz61teRa0E+C aMFznnB+UulMrAzdapr6chMvPknDDKiYfnmSWxdjmbcNYsHzNqIKkrzvxb/e55s0d sJWEBNY8W3Ye/EprEQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([62.216.208.247]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MmlT2-1rk7xV2gbO-00jpGU for ; Thu, 16 Nov 2023 13:24:03 +0100 From: Peter Seiderer To: linux-media@vger.kernel.org Subject: [PATCH v4l-utils v1 2/4] qv4l2: enable Qt6 compile with Qt OpenGL support Date: Thu, 16 Nov 2023 13:24:00 +0100 Message-ID: <20231116122402.28730-2-ps.report@gmx.net> X-Mailer: git-send-email 2.42.1 In-Reply-To: <20231116122402.28730-1-ps.report@gmx.net> References: <20231116122402.28730-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:OF9ROViI2UjOO9n3JbpqFzM1+zDExdFnwtW/zFyLm1PVMFFAk1T yiZ8zIj0TZcgEntFCvHDxp18mOh2T2Z1KAqfRK8ZLKAQj6NGI+wUu6+tHBqUlQmSYY48Vqv wYLVXMEK30UGDdtl4rOKyzBA4EKFw5r1zGCxP1BMXGKdf5U/H2FraBnr6yUk+t4hqZOcTU8 eotYmggzMUpaO+tLbUqPQ== UI-OutboundReport: notjunk:1;M01:P0:eU51BkVQiM8=;CPuUVyZQaMJVDlcFeeX547xZQHC 6DkIzkvqa9v3kMx+kNs5Mpxg7/rAUQ5Qt5jA0+NNzNn1F04xFewtvIz7BXX4kHd9M8nuyI2g1 TD+HaZdkhUKoSJby+3Zw420+ctJE24PX4d2OqCtoWg6j1rj7VZy85FXH+PFMM7gDVPzI8OVt4 r79v7t3lcHXjO9UHjx6hMigTT6m/MEv8c0gl8hg8rWTr9/3lnGR8Enw4N4mY9MI9I2NwZGXkh uE+X/I7QhxloSnGbn54V7n/syq9k3I1/uWg5eKt6cW+nO6EuF73iZlQcxjT46qRLnr7Guhqwt Hg992FrVgRUZBgoKFh+bn4fNASXEO13umsO0HySvIoBju84xIhWg42QxrW3JIz4SFowvRJHNn hs5H8jIO02JHIE+ql9fa9X3hAVFDJHXzdGbTLlRK/fztWKwstx6x7geNp7Jwy/fLcgTz7Ah+W 0yozSmbmgZcu6R8YD7TTTqFnkU2tF+03sPRpoyWPtU5PsU2DCBHEhqfOMog4W7cZzlBbLEq7G RWBKerSRPs8CfOhdCG3PA3/7FU98EuHX8PzLv+jbkOswHy1HtoCrbdoovh0fyfUGFguKVrNk3 LniqOqca62DbhtWPQytWlVkJutzfg+xG3mAyVnWv4q8yaahQa6KdwvoXxN+Cn+mxcG7yy73vH taE/OrhsvGa1Pk9EmUF/8WcOSvOcspBqVzGqbOtjw6offTkWSCBZ3DlRJa5KpTXjBP3OB51Vz /oAUG1+1XCOKJXgcvXwBmDKsvDdCD+aP5PcAjKVrSr6hRKPBXOaMHmuE5/4d18YhJn0InJ1XS x8MAykPEmoijQ58f6CMuQhltYrRptvJyCQ9qALqfOUF3ivBGoGroZ9Q0aoC6sC6FdSFCIqUeq jkcJnKz96Clar8QbWVxeReCbu6eoUExU27Ftc8ONXfnusd3uDxNr5C5BIKKYOX8U44RGXwd5v 1z48z3mVd9s/EPN62d7/Si1vXAg= X-LSpam-Score: -3.1 (---) X-LSpam-Report: No, score=-3.1 required=5.0 tests=BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,FREEMAIL_FORGED_FROMDOMAIN=0.001,FREEMAIL_FROM=0.001,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,MIME_BASE64_TEXT=1.741,RCVD_IN_DNSWL_MED=-2.3 autolearn=ham autolearn_force=no Signed-off-by: Peter Seiderer --- utils/qv4l2/capture-win-gl.cpp | 125 ++++++++++++++++++++++++++++++--- utils/qv4l2/capture-win-gl.h | 17 +++++ utils/qv4l2/qv4l2.cpp | 4 ++ utils/qv4l2/qv4l2.pro | 3 + 4 files changed, 138 insertions(+), 11 deletions(-) diff --git a/utils/qv4l2/capture-win-gl.cpp b/utils/qv4l2/capture-win-gl.cpp index 6cbeb426..7e993e3b 100644 --- a/utils/qv4l2/capture-win-gl.cpp +++ b/utils/qv4l2/capture-win-gl.cpp @@ -151,7 +151,9 @@ CaptureWinGLEngine::CaptureWinGLEngine() : m_min_filter(GL_NEAREST) { makeCurrent(); +#if QT_VERSION < 0x060000 m_glfunction.initializeGLFunctions(context()); +#endif } CaptureWinGLEngine::~CaptureWinGLEngine() @@ -285,6 +287,9 @@ void CaptureWinGLEngine::stop() void CaptureWinGLEngine::initializeGL() { +#if QT_VERSION >= 0x060000 + initializeOpenGLFunctions(); +#endif glShadeModel(GL_FLAT); glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); @@ -337,7 +342,11 @@ void CaptureWinGLEngine::setFrame(int width, int height, int WCrop, int HCrop, m_frameData = data; m_frameData2 = data2 ? data2 : data; m_frameData3 = data3 ? data3 : data; +#if QT_VERSION < 0x060000 updateGL(); +#else + update(); +#endif } void CaptureWinGLEngine::checkError(const char *msg) @@ -431,8 +440,13 @@ bool CaptureWinGLEngine::hasNativeFormat(__u32 format) 0 }; +#if QT_VERSION < 0x060000 if (!m_glfunction.hasOpenGLFeature(QGLFunctions::Shaders)) return false; +#else + if (!hasOpenGLFeature(QOpenGLFunctions::Shaders)) + return false; +#endif for (int i = 0; supported_fmts[i]; i++) if (supported_fmts[i] == format) @@ -449,7 +463,11 @@ void CaptureWinGLEngine::changeShader() glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, m_frameWidth, m_frameHeight, 0, 0, 1); +#if QT_VERSION < 0x060000 resizeGL(QGLWidget::width(), QGLWidget::height()); +#else + resizeGL(QOpenGLWidget::width(), QOpenGLWidget::height()); +#endif checkError("Render settings.\n"); switch (m_frameFormat) { @@ -1010,7 +1028,12 @@ void CaptureWinGLEngine::shader_YUV(__u32 format) codeSuffix; bool src_c = m_shaderProgram.addShaderFromSourceCode( - QGLShader::Fragment, codeHead + codeTail); +#if QT_VERSION < 0x060000 + QGLShader::Fragment, +#else + QOpenGLShader::Fragment, +#endif + codeHead + codeTail); if (!src_c) fprintf(stderr, "OpenGL Error: YUV shader compilation failed.\n"); @@ -1053,7 +1076,11 @@ void CaptureWinGLEngine::render_YUV(__u32 format) glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_screenTexture[0]); +#if QT_VERSION < 0x060000 GLint Y = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "ytex"); +#else + GLint Y = glGetUniformLocation(m_shaderProgram.programId(), "ytex"); +#endif glUniform1i(Y, 0); glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_frameWidth, m_frameHeight, m_glRed, GL_UNSIGNED_BYTE, m_frameData); @@ -1061,7 +1088,11 @@ void CaptureWinGLEngine::render_YUV(__u32 format) glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, m_screenTexture[1]); +#if QT_VERSION < 0x060000 GLint U = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "utex"); +#else + GLint U = glGetUniformLocation(m_shaderProgram.programId(), "utex"); +#endif glUniform1i(U, 1); switch (format) { case V4L2_PIX_FMT_YUV422P: @@ -1087,7 +1118,11 @@ void CaptureWinGLEngine::render_YUV(__u32 format) glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_2D, m_screenTexture[2]); +#if QT_VERSION < 0x060000 GLint V = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "vtex"); +#else + GLint V = glGetUniformLocation(m_shaderProgram.programId(), "vtex"); +#endif glUniform1i(V, 2); switch (format) { case V4L2_PIX_FMT_YUV422P: @@ -1189,7 +1224,11 @@ void CaptureWinGLEngine::shader_NV12(__u32 format) codeSuffix; bool src_c = m_shaderProgram.addShaderFromSourceCode( +#if QT_VERSION < 0x060000 QGLShader::Fragment, +#else + QOpenGLShader::Fragment, +#endif QString("%1%2%3").arg(codeHead, codeBody, codeTail)); if (!src_c) @@ -1211,7 +1250,11 @@ void CaptureWinGLEngine::render_NV12(__u32 format) glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_screenTexture[0]); +#if QT_VERSION < 0x060000 GLint Y = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "ytex"); +#else + GLint Y = glGetUniformLocation(m_shaderProgram.programId(), "ytex"); +#endif glUniform1i(Y, 0); glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_frameWidth, m_frameHeight, m_glRed, GL_UNSIGNED_BYTE, m_frameData); @@ -1219,7 +1262,11 @@ void CaptureWinGLEngine::render_NV12(__u32 format) glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, m_screenTexture[1]); +#if QT_VERSION < 0x060000 GLint U = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "uvtex"); +#else + GLint U = glGetUniformLocation(m_shaderProgram.programId(), "uvtex"); +#endif glUniform1i(U, 1); switch (format) { case V4L2_PIX_FMT_NV12: @@ -1307,7 +1354,11 @@ void CaptureWinGLEngine::shader_NV24(__u32 format) codeSuffix; bool src_c = m_shaderProgram.addShaderFromSourceCode( +#if QT_VERSION < 0x060000 QGLShader::Fragment, +#else + QOpenGLShader::Fragment, +#endif QString("%1%2%3").arg(codeHead, codeBody, codeTail)); if (!src_c) @@ -1327,7 +1378,11 @@ void CaptureWinGLEngine::render_NV24(__u32 format) glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_screenTexture[0]); +#if QT_VERSION < 0x060000 GLint Y = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "ytex"); +#else + GLint Y = glGetUniformLocation(m_shaderProgram.programId(), "ytex"); +#endif glUniform1i(Y, 0); glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_frameWidth, m_frameHeight, m_glRed, GL_UNSIGNED_BYTE, m_frameData); @@ -1335,7 +1390,11 @@ void CaptureWinGLEngine::render_NV24(__u32 format) glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, m_screenTexture[1]); +#if QT_VERSION < 0x060000 GLint U = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "uvtex"); +#else + GLint U = glGetUniformLocation(m_shaderProgram.programId(), "uvtex"); +#endif glUniform1i(U, 1); glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_frameWidth, m_frameHeight, m_glRedGreen, GL_UNSIGNED_BYTE, @@ -1419,8 +1478,12 @@ void CaptureWinGLEngine::shader_NV16(__u32 format) codeSuffix; bool src_ok = m_shaderProgram.addShaderFromSourceCode( - QGLShader::Fragment, QString("%1%2%3").arg(codeHead, codeBody, codeTail) - ); +#if QT_VERSION < 0x060000 + QGLShader::Fragment, +#else + QOpenGLShader::Fragment, +#endif + QString("%1%2%3").arg(codeHead, codeBody, codeTail)); if (!src_ok) fprintf(stderr, "OpenGL Error: NV16 shader compilation failed.\n"); @@ -1440,7 +1503,11 @@ void CaptureWinGLEngine::render_NV16(__u32 format) glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_screenTexture[0]); +#if QT_VERSION < 0x060000 GLint Y = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "ytex"); +#else + GLint Y = glGetUniformLocation(m_shaderProgram.programId(), "ytex"); +#endif glUniform1i(Y, 0); glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_frameWidth, m_frameHeight, m_glRed, GL_UNSIGNED_BYTE, m_frameData); @@ -1448,7 +1515,11 @@ void CaptureWinGLEngine::render_NV16(__u32 format) glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, m_screenTexture[1]); +#if QT_VERSION < 0x060000 GLint UV = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "uvtex"); +#else + GLint UV = glGetUniformLocation(m_shaderProgram.programId(), "uvtex"); +#endif glUniform1i(UV, 1); switch (format) { case V4L2_PIX_FMT_NV16: @@ -1559,8 +1630,12 @@ void CaptureWinGLEngine::shader_YUY2(__u32 format) codeSuffix; bool src_ok = m_shaderProgram.addShaderFromSourceCode( - QGLShader::Fragment, QString("%1%2%3").arg(codeHead, codeBody, codeTail) - ); +#if QT_VERSION < 0x060000 + QGLShader::Fragment, +#else + QOpenGLShader::Fragment, +#endif + QString("%1%2%3").arg(codeHead, codeBody, codeTail)); if (!src_ok) fprintf(stderr, "OpenGL Error: YUY2 shader compilation failed.\n"); @@ -1580,7 +1655,11 @@ void CaptureWinGLEngine::render_YUY2(__u32 format) glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_screenTexture[0]); +#if QT_VERSION < 0x060000 GLint Y = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "tex"); +#else + GLint Y = glGetUniformLocation(m_shaderProgram.programId(), "tex"); +#endif glUniform1i(Y, 0); glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_frameWidth / 2, m_frameHeight, GL_RGBA, GL_UNSIGNED_BYTE, m_frameData); @@ -1785,8 +1864,12 @@ void CaptureWinGLEngine::shader_RGB(__u32 format) (hasAlpha ? codeSuffixWithAlpha : codeSuffix); bool src_ok = m_shaderProgram.addShaderFromSourceCode( - QGLShader::Fragment, QString("%1%2").arg(codeHead, codeTail) - ); +#if QT_VERSION < 0x060000 + QGLShader::Fragment, +#else + QOpenGLShader::Fragment, +#endif + QString("%1%2").arg(codeHead, codeTail)); if (!src_ok) fprintf(stderr, "OpenGL Error: RGB shader compilation failed.\n"); @@ -1798,7 +1881,11 @@ void CaptureWinGLEngine::render_RGB(__u32 format) { glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_screenTexture[0]); +#if QT_VERSION < 0x060000 GLint Y = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "tex"); +#else + GLint Y = glGetUniformLocation(m_shaderProgram.programId(), "tex"); +#endif glUniform1i(Y, 0); int idx = glGetUniformLocation(m_shaderProgram.programId(), "tex_h"); // Texture height glUniform1f(idx, m_frameHeight); @@ -2016,8 +2103,12 @@ void CaptureWinGLEngine::shader_Bayer(__u32 format) codeSuffix; bool src_ok = m_shaderProgram.addShaderFromSourceCode( - QGLShader::Fragment, QString("%1%2").arg(codeHead, codeTail) - ); +#if QT_VERSION < 0x060000 + QGLShader::Fragment, +#else + QOpenGLShader::Fragment, +#endif + QString("%1%2").arg(codeHead, codeTail)); if (!src_ok) fprintf(stderr, "OpenGL Error: Bayer shader compilation failed.\n"); @@ -2029,7 +2120,11 @@ void CaptureWinGLEngine::render_Bayer(__u32 format) { glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_screenTexture[0]); +#if QT_VERSION < 0x060000 GLint Y = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "tex"); +#else + GLint Y = glGetUniformLocation(m_shaderProgram.programId(), "tex"); +#endif glUniform1i(Y, 0); int idx = glGetUniformLocation(m_shaderProgram.programId(), "tex_h"); // Texture height glUniform1f(idx, m_frameHeight); @@ -2146,8 +2241,12 @@ void CaptureWinGLEngine::shader_YUV_packed(__u32 format) (hasAlpha ? codeSuffixWithAlpha : codeSuffix); bool src_ok = m_shaderProgram.addShaderFromSourceCode( - QGLShader::Fragment, QString("%1%2").arg(codeHead, codeTail) - ); +#if QT_VERSION < 0x060000 + QGLShader::Fragment, +#else + QOpenGLShader::Fragment, +#endif + QString("%1%2").arg(codeHead, codeTail)); if (!src_ok) fprintf(stderr, "OpenGL Error: Packed YUV shader compilation failed.\n"); @@ -2159,7 +2258,11 @@ void CaptureWinGLEngine::render_YUV_packed(__u32 format) { glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_screenTexture[0]); +#if QT_VERSION < 0x060000 GLint Y = m_glfunction.glGetUniformLocation(m_shaderProgram.programId(), "tex"); +#else + GLint Y = glGetUniformLocation(m_shaderProgram.programId(), "tex"); +#endif glUniform1i(Y, 0); int idx = glGetUniformLocation(m_shaderProgram.programId(), "tex_h"); // Texture height glUniform1f(idx, m_frameHeight); diff --git a/utils/qv4l2/capture-win-gl.h b/utils/qv4l2/capture-win-gl.h index e27b2b3f..96376934 100644 --- a/utils/qv4l2/capture-win-gl.h +++ b/utils/qv4l2/capture-win-gl.h @@ -10,10 +10,17 @@ #define GL_GLEXT_PROTOTYPES #define QT_NO_OPENGL_ES_2 +#include +#if QT_VERSION < 0x060000 #include #include #include #include +#else +#include +#include +#include +#endif #endif #include "qv4l2.h" @@ -26,7 +33,11 @@ // This must be equal to the max number of textures that any shader uses #define MAX_TEXTURES_NEEDED 3 +#if QT_VERSION < 0x060000 class CaptureWinGLEngine : public QGLWidget +#else +class CaptureWinGLEngine : public QOpenGLWidget, protected QOpenGLFunctions +#endif { public: CaptureWinGLEngine(); @@ -102,11 +113,17 @@ private: bool m_formatChange; __u32 m_frameFormat; GLuint m_screenTexture[MAX_TEXTURES_NEEDED]; +#if QT_VERSION < 0x060000 QGLFunctions m_glfunction; +#endif unsigned char *m_frameData; unsigned char *m_frameData2; unsigned char *m_frameData3; +#if QT_VERSION < 0x060000 QGLShaderProgram m_shaderProgram; +#else + QOpenGLShaderProgram m_shaderProgram; +#endif bool m_haveFramebufferSRGB; bool m_hasGLRed; unsigned m_glRed; diff --git a/utils/qv4l2/qv4l2.cpp b/utils/qv4l2/qv4l2.cpp index e37ee87f..534bedb2 100644 --- a/utils/qv4l2/qv4l2.cpp +++ b/utils/qv4l2/qv4l2.cpp @@ -401,7 +401,11 @@ void ApplicationWindow::setDevice(const QString &device, bool rawOpen) { closeDevice(); m_sigMapper = new QSignalMapper(this); +#if QT_VERSION < 0x060000 connect(m_sigMapper, SIGNAL(mapped(int)), this, SLOT(ctrlAction(int))); +#else + connect(m_sigMapper, &QSignalMapper::mappedInt, this, &ApplicationWindow::ctrlAction); +#endif s_direct(rawOpen); diff --git a/utils/qv4l2/qv4l2.pro b/utils/qv4l2/qv4l2.pro index 1ea07374..a9343c89 100644 --- a/utils/qv4l2/qv4l2.pro +++ b/utils/qv4l2/qv4l2.pro @@ -8,6 +8,9 @@ CONFIG += debug greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat +# opengl: to disable opengl suppport on Qt6 comment out the +# following line +greaterThan(QT_MAJOR_VERSION, 5): QT += openglwidgets # adjust to your local meson build path MESON_BUILD_PATH = $$PWD/build-meson