summaryrefslogtreecommitdiffstats
path: root/src/multimedia/CMakeLists.txt
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2022-04-01 17:24:11 +0200
committerLars Knoll <lars.knoll@qt.io>2022-04-07 13:02:59 +0200
commita1becc761931fede68eb2099b049a6555add26ee (patch)
tree8513bc1053f8b7984d12f3ef1ffe1ba1241c3ba5 /src/multimedia/CMakeLists.txt
parent397c6f6328f09599233f7dd6da2c82d4762ec1e9 (diff)
Use correct gamma depending on the output surface
Make sure we reformat HDR content with a gamma of 2.2 when rendering to a SDR surface and linearize SDR video content when rendering to HDR surfaces This look very good for SDR content, but the tone mapping for HDR->SDR could still be improved. Change-Id: I330190e1d9dbfc50aa36b920477d01dde082cd94 Reviewed-by: Rafael Roquetto <rafael.roquetto@qt.io>
Diffstat (limited to 'src/multimedia/CMakeLists.txt')
-rw-r--r--src/multimedia/CMakeLists.txt82
1 files changed, 62 insertions, 20 deletions
diff --git a/src/multimedia/CMakeLists.txt b/src/multimedia/CMakeLists.txt
index 52799d5df..98f6d636f 100644
--- a/src/multimedia/CMakeLists.txt
+++ b/src/multimedia/CMakeLists.txt
@@ -103,6 +103,32 @@ qt_internal_add_docs(Multimedia
doc/qtmultimedia.qdocconf
)
+set(VIDEO_VERTEX_SHADERS
+ "shaders/vertex.vert"
+ "shaders/externalsampler.vert"
+)
+
+set(VIDEO_SHADERS
+ "shaders/externalsampler.frag@glsl,100es,shaders/externalsampler_gles.frag"
+ "shaders/abgr.frag"
+ "shaders/argb.frag"
+ "shaders/rgba.frag"
+ "shaders/bgra.frag"
+ "shaders/y.frag"
+ "shaders/nv12.frag"
+ "shaders/nv21.frag"
+ "shaders/imc2.frag"
+ "shaders/imc4.frag"
+ "shaders/uyvy.frag"
+ "shaders/yuv_triplanar.frag"
+ "shaders/yuv_triplanar_p10.frag"
+ "shaders/yvu_triplanar.frag"
+ "shaders/yuyv.frag"
+ "shaders/ayuv.frag"
+ "shaders/nv12_bt2020_pq.frag"
+ "shaders/nv12_bt2020_hlg.frag"
+)
+
qt_internal_add_shaders(Multimedia "shaders"
SILENT
BATCHABLE
@@ -111,26 +137,25 @@ qt_internal_add_shaders(Multimedia "shaders"
PREFIX
"/qt-project.org/multimedia"
FILES
- "shaders/vertex.vert"
- "shaders/externalsampler.vert"
- "shaders/externalsampler.frag@glsl,100es,shaders/externalsampler_gles.frag"
- "shaders/abgr.frag"
- "shaders/argb.frag"
- "shaders/rgba.frag"
- "shaders/bgra.frag"
- "shaders/y.frag"
- "shaders/nv12.frag"
- "shaders/nv21.frag"
- "shaders/imc2.frag"
- "shaders/imc4.frag"
- "shaders/uyvy.frag"
- "shaders/yuv_triplanar.frag"
- "shaders/yuv_triplanar_p10.frag"
- "shaders/yvu_triplanar.frag"
- "shaders/yuyv.frag"
- "shaders/ayuv.frag"
- "shaders/nv12_bt2020_pq.frag"
- "shaders/nv12_bt2020_hlg.frag"
+ ${VIDEO_VERTEX_SHADERS}
+ ${VIDEO_SHADERS}
+)
+
+string(REPLACE ".frag" "_linear.frag.qsb" LINEAR_VIDEO_SHADERS "${VIDEO_SHADERS}")
+message(WARNING ${LINEAR_VIDEO_SHADERS})
+qt_internal_add_shaders(Multimedia "shaders_linear"
+ SILENT
+ BATCHABLE
+ PRECOMPILE
+ OPTIMIZED
+ PREFIX
+ "/qt-project.org/multimedia"
+ FILES
+ ${VIDEO_SHADERS}
+ OUTPUTS
+ ${LINEAR_VIDEO_SHADERS}
+ DEFINES
+ QMM_OUTPUTSURFACE_LINEAR
)
qt_internal_add_shaders(Multimedia "shaders_gl_macos"
@@ -148,3 +173,20 @@ qt_internal_add_shaders(Multimedia "shaders_gl_macos"
"shaders/rectsampler.vert"
"shaders/rectsampler_bgra.frag"
)
+
+qt_internal_add_shaders(Multimedia "shaders_gl_macos_linear"
+ SILENT
+ BATCHABLE
+ PRECOMPILE
+ OPTIMIZED
+ PREFIX
+ "/qt-project.org/multimedia"
+ GLSL
+ "120,150"
+ NOHLSL
+ NOMSL
+ FILES
+ "shaders/rectsampler_bgra.frag"
+ OUTPUTS
+ "shaders/rectsampler_bgra_linear.frag.qsb"
+)