diff options
author | Lars Knoll <lars.knoll@qt.io> | 2022-04-01 17:24:11 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2022-04-07 13:02:59 +0200 |
commit | a1becc761931fede68eb2099b049a6555add26ee (patch) | |
tree | 8513bc1053f8b7984d12f3ef1ffe1ba1241c3ba5 /src/multimedia/CMakeLists.txt | |
parent | 397c6f6328f09599233f7dd6da2c82d4762ec1e9 (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.txt | 82 |
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" +) |