Skip to content

Commit 7684968

Browse files
committed
CMake: Fix GStreamer Shaders
1 parent 2fc3445 commit 7684968

3 files changed

Lines changed: 46 additions & 13 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,7 @@ qt_add_resources(${CMAKE_PROJECT_NAME} "qgcresources_cmake"
540540
FILES
541541
resources/qtquickcontrols2.conf
542542
${SDL_GAMECONTROLLERDB_PATH}
543+
${QGC_GSTREAMER_SHADER_RESOURCES}
543544
)
544545

545546
# cmake_print_variables(QT_ALL_PLUGIN_TYPES_FOUND_VIA_FIND_PACKAGE)

cmake/find-modules/FindGStreamer.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
if(NOT DEFINED GStreamer_FIND_VERSION)
22
if(LINUX)
33
set(GStreamer_FIND_VERSION 1.20)
4+
# elseif(ANDROID)
5+
# set(GStreamer_FIND_VERSION 1.26.2)
46
else()
57
set(GStreamer_FIND_VERSION 1.22.12)
68
endif()

src/VideoManager/VideoReceiver/GStreamer/gstqml6gl/CMakeLists.txt

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ endif()
2323
################################################################################
2424

2525
if(GStreamer_VERSION VERSION_GREATER_EQUAL 1.22)
26-
# Use Latest Revisions for each minor version: 1.20.7, 1.22.12, 1.24.12, 1.26.1
26+
# Use Latest Revisions for each minor version: 1.20.7, 1.22.12, 1.24.12, 1.26.2
2727
string(REPLACE "." ";" GST_VERSION_LIST ${GStreamer_VERSION})
2828
list(GET GST_VERSION_LIST 0 GST_VERSION_MAJOR)
2929
list(GET GST_VERSION_LIST 1 GST_VERSION_MINOR)
@@ -36,7 +36,7 @@ if(GStreamer_VERSION VERSION_GREATER_EQUAL 1.22)
3636
elseif(GST_VERSION_MINOR EQUAL 24)
3737
set(GST_VERSION_PATCH 12)
3838
elseif(GST_VERSION_MINOR EQUAL 26)
39-
set(GST_VERSION_PATCH 1)
39+
set(GST_VERSION_PATCH 2)
4040
endif()
4141

4242
set(GST_PLUGINS_VERSION ${GST_VERSION_MAJOR}.${GST_VERSION_MINOR}.${GST_VERSION_PATCH})
@@ -111,7 +111,7 @@ if(EXISTS "${QGC_GST_QT6_PLUGIN_PATH}/resources.qrc")
111111
LIST(APPEND OUTPUTS "YUV_BIPLANAR.frag.qsb")
112112
endif()
113113

114-
qt6_add_shaders(gstqml6gl "gstqml6gl_shaders"
114+
qt_add_shaders(gstqml6gl "gstqml6gl_shaders"
115115
PREFIX "/org/freedesktop/gstreamer/qml6"
116116
GLSL "100 es,120,330"
117117
OUTPUT_TARGETS gstqml6gl_shaders
@@ -120,16 +120,46 @@ if(EXISTS "${QGC_GST_QT6_PLUGIN_PATH}/resources.qrc")
120120
BATCHABLE
121121
)
122122

123-
# if(EXISTS "${QGC_GST_QT6_PLUGIN_PATH}/RGBA_gles.frag")
124-
# set(RGBA_SHADER_EXTERNAL "${CMAKE_CURRENT_BINARY_DIR}/.qsb/_RGBA.frag.qsb")
125-
# file(COPY_FILE "${CMAKE_CURRENT_BINARY_DIR}/.qsb/RGBA.frag.qsb" "${RGBA_SHADER_EXTERNAL}")
126-
# qt6_add_shaders(gstqml6gl "gstqml6gl_shaders1"
127-
# PREFIX "/org/freedesktop/gstreamer/qml6"
128-
# OUTPUT_TARGETS gstqml6gl_shaders1
129-
# FILES "${RGBA_SHADER_EXTERNAL}@glsl,100es,${QGC_GST_QT6_PLUGIN_PATH}/RGBA_gles.frag"
130-
# OUTPUTS "RGBA.frag.qsb.external"
131-
# )
132-
# endif()
123+
if(EXISTS "${QGC_GST_QT6_PLUGIN_PATH}/RGBA_gles.frag")
124+
find_program(QSB_PROGRAM
125+
NAMES qsb
126+
HINTS ${QT_HOST_PATH} ${QT_ROOT_DIR} ${QTDIR}
127+
ENV QTDIR
128+
PATH_SUFFIXES bin
129+
REQUIRED
130+
)
131+
132+
find_program(QSB_WRAPPER
133+
NAMES qsb-wrapper.py
134+
PATHS "${QGC_GST_QT6_PLUGIN_PATH}"
135+
REQUIRED
136+
)
137+
138+
set(RGBA_BASE_QSB "${CMAKE_CURRENT_BINARY_DIR}/.qsb/RGBA.frag.qsb")
139+
set(RGBA_GLES_SRC "${QGC_GST_QT6_PLUGIN_PATH}/RGBA_gles.frag")
140+
set(RGBA_EXTERNAL "${CMAKE_CURRENT_BINARY_DIR}/.qsb/RGBA.frag.qsb.external")
141+
142+
add_custom_command(
143+
OUTPUT ${RGBA_EXTERNAL}
144+
COMMAND ${QSB_WRAPPER}
145+
${QSB_PROGRAM}
146+
${RGBA_EXTERNAL}
147+
${RGBA_GLES_SRC}
148+
${RGBA_BASE_QSB}
149+
DEPENDS
150+
${RGBA_BASE_QSB}
151+
${RGBA_GLES_SRC}
152+
COMMENT "Generating external GLES shader: ${RGBA_EXTERNAL}"
153+
VERBATIM
154+
)
155+
156+
set_source_files_properties(${RGBA_EXTERNAL} PROPERTIES QT_RESOURCE_ALIAS org/freedesktop/gstreamer/qml6/RGBA.frag.qsb.external)
157+
set(QGC_GSTREAMER_SHADER_RESOURCES "${RGBA_EXTERNAL}" CACHE INTERNAL "")
158+
# qt_add_resources(gstqml6gl "gstqml6gl_shaders1"
159+
# PREFIX "/org/freedesktop/gstreamer/qml6"
160+
# FILES "${RGBA_EXTERNAL}"
161+
# )
162+
endif()
133163
endif()
134164

135165
################################################################################

0 commit comments

Comments
 (0)