diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2022-05-09 08:17:05 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2022-05-09 23:55:13 +0200 |
commit | a38de3c946c83c6148450c6aa4d9c7152d37b429 (patch) | |
tree | e8ce75fd8b510e86bd25ae139f3580cd86b0adb3 | |
parent | app-office/libreoffice-l10n: keyword 7.3.3.2 (diff) | |
download | gentoo-a38de3c946c83c6148450c6aa4d9c7152d37b429.tar.gz gentoo-a38de3c946c83c6148450c6aa4d9c7152d37b429.tar.bz2 gentoo-a38de3c946c83c6148450c6aa4d9c7152d37b429.zip |
media-video/subtitlecomposer: Fix build with dev-qt/qtgui[gles2-only]
Closes: https://bugs.gentoo.org/820035
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
-rw-r--r-- | media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-gles-support.patch | 122 | ||||
-rw-r--r-- | media-video/subtitlecomposer/subtitlecomposer-0.7.1.ebuild | 7 |
2 files changed, 127 insertions, 2 deletions
diff --git a/media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-gles-support.patch b/media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-gles-support.patch new file mode 100644 index 000000000000..98de494cf306 --- /dev/null +++ b/media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-gles-support.patch @@ -0,0 +1,122 @@ +From 167a941f8070f4a9abacb3aa2f61ee6ee00d6cb8 Mon Sep 17 00:00:00 2001 +From: Mladen Milinkovic <maxrd2@smoothware.net> +Date: Thu, 7 Oct 2021 19:37:23 +0200 +Subject: [PATCH] GLRenderer: added GLES support + +--- + src/videoplayer/backend/glrenderer.cpp | 44 ++++++++++++++++++++++---- + 1 file changed, 38 insertions(+), 6 deletions(-) + +diff --git a/src/videoplayer/backend/glrenderer.cpp b/src/videoplayer/backend/glrenderer.cpp +index 7c9c38b..5cb985d 100644 +--- a/src/videoplayer/backend/glrenderer.cpp ++++ b/src/videoplayer/backend/glrenderer.cpp +@@ -20,6 +20,7 @@ extern "C" { + } + + #define DEBUG_GL 0 ++#define FORCE_GLES 0 + #define OPENGL_CORE 0 + #define OPENGL_VER 2,0 + +@@ -33,6 +34,17 @@ extern "C" { + #define asGL(glCall) glCall + #endif + ++#if defined(GL_ES_VERSION_2_0) || FORCE_GLES ++#define USE_GLES ++#define TEXTURE_RGB_FORMAT GL_RGBA ++// NOTE: we don't currently support more than 8bpp on GLES ++#define TEXTURE_U16_FORMAT GL_R8 ++#else ++#undef USE_GLES ++#define TEXTURE_RGB_FORMAT GL_BGRA ++#define TEXTURE_U16_FORMAT GL_R16 ++#endif ++ + using namespace SubtitleComposer; + + enum { ID_Y, ID_U, ID_V, ID_OVR, ID_SIZE }; +@@ -82,6 +94,9 @@ void + GLRenderer::setupProfile() + { + QSurfaceFormat format(QSurfaceFormat::defaultFormat()); ++#if FORCE_GLES ++ format.setRenderableType(QSurfaceFormat::OpenGLES); ++#endif + format.setVersion(OPENGL_VER); + #if DEBUG_GL + format.setOption(QSurfaceFormat::DebugContext); +@@ -126,7 +141,7 @@ GLRenderer::setFrameFormat(int width, int height, int compBits, int crWidthShift + m_crHeight = crHeight; + + m_glType = compBytes == 1 ? GL_UNSIGNED_BYTE : GL_UNSIGNED_SHORT; +- m_glFormat = compBytes == 1 ? GL_R8 : GL_R16; ++ m_glFormat = compBytes == 1 ? GL_R8 : TEXTURE_U16_FORMAT; + + delete[] m_bufYUV; + m_bufSize = bufSize; +@@ -261,7 +276,11 @@ GLRenderer::initShader() + delete m_vertShader; + m_vertShader = new QOpenGLShader(QOpenGLShader::Vertex, this); + bool success = m_vertShader->compileSourceCode( ++#ifdef USE_GLES ++ "#version 100\n" ++#else + "#version 120\n" ++#endif + "attribute vec4 vPos;" + "attribute vec2 vVidTex;" + "attribute vec2 vOvrTex;" +@@ -288,7 +307,13 @@ GLRenderer::initShader() + csms.append(QString::number(csm[i], 'g', 10)); + } + +- success = m_fragShader->compileSourceCode(QStringLiteral("#version 120\n" ++ success = m_fragShader->compileSourceCode(QStringLiteral( ++#ifdef USE_GLES ++ "#version 100\n" ++ "precision mediump float;\n" ++#else ++ "#version 120\n" ++#endif + "varying vec2 vfVidTex;" + "varying vec2 vfOvrTex;" + "uniform sampler2D texY;" +@@ -348,8 +373,15 @@ GLRenderer::initializeGL() + QMutexLocker l(&m_texMutex); + + initializeOpenGLFunctions(); +- qDebug() << "OpenGL version: " << reinterpret_cast<const char *>(glGetString(GL_VERSION)); +- qDebug() << "GLSL version: " << reinterpret_cast<const char *>(glGetString(GL_SHADING_LANGUAGE_VERSION)); ++ qDebug().nospace() << "GL API: OpenGL " << (format().renderableType() == QSurfaceFormat::OpenGLES ? "ES" : "Desktop") ++ << ' ' << format().majorVersion() << "." << format().minorVersion() ++#ifdef USE_GLES ++ << " (compiled for OpenGL ES)"; ++#else ++ << " (compiled for OpenGL Desktop)"; ++#endif ++ qDebug() << "OpenGL version:" << reinterpret_cast<const char *>(glGetString(GL_VERSION)); ++ qDebug() << "GLSL version:" << reinterpret_cast<const char *>(glGetString(GL_SHADING_LANGUAGE_VERSION)); + + if(m_vao.create()) + m_vao.bind(); +@@ -453,13 +485,13 @@ GLRenderer::uploadMM(int texWidth, int texHeight, T *texBuf, const T *texSrc) + if(D == 1) { + asGL(glTexImage2D(GL_TEXTURE_2D, level, m_glFormat, texWidth, texHeight, 0, GL_RED, m_glType, texSrc)); + } else { // D == 4 +- asGL(glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA8, texWidth, texHeight, 0, GL_BGRA, GL_UNSIGNED_BYTE, texSrc)); ++ asGL(glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA8, texWidth, texHeight, 0, TEXTURE_RGB_FORMAT, GL_UNSIGNED_BYTE, texSrc)); + } + } else { + if(D == 1) { + asGL(glTexSubImage2D(GL_TEXTURE_2D, level, 0, 0, texWidth, texHeight, GL_RED, m_glType, texSrc)); + } else { // D == 4 +- asGL(glTexSubImage2D(GL_TEXTURE_2D, level, 0, 0, texWidth, texHeight, GL_BGRA, GL_UNSIGNED_BYTE, texSrc)); ++ asGL(glTexSubImage2D(GL_TEXTURE_2D, level, 0, 0, texWidth, texHeight, TEXTURE_RGB_FORMAT, GL_UNSIGNED_BYTE, texSrc)); + } + } + +-- +GitLab + diff --git a/media-video/subtitlecomposer/subtitlecomposer-0.7.1.ebuild b/media-video/subtitlecomposer/subtitlecomposer-0.7.1.ebuild index aef529fbf604..3ff7e5e962a5 100644 --- a/media-video/subtitlecomposer/subtitlecomposer-0.7.1.ebuild +++ b/media-video/subtitlecomposer/subtitlecomposer-0.7.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -43,7 +43,10 @@ BDEPEND=" virtual/pkgconfig " -PATCHES=( "${FILESDIR}/${P}-tests-optional.patch" ) +PATCHES=( + "${FILESDIR}/${P}-tests-optional.patch" + "${FILESDIR}/${P}-gles-support.patch" # bug 820035 +) src_configure() { local mycmakeargs=( |