summaryrefslogtreecommitdiff
path: root/src/qcam/viewfinder_gl.cpp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-09-13 01:04:20 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-10-04 22:51:45 +0300
commitae9e7fbf3a8bf45b08951b650aec3f91997fafc3 (patch)
tree0509a8e0dd18f5456a341f936d53d93bb55df621 /src/qcam/viewfinder_gl.cpp
parent0bc03960daf0d7e28d45513873e3d1feecbedbf6 (diff)
qcam: viewfinder_gl: Merge the semi-planar UV and VU shaders
Use macros to select the U and V pattern, to avoid code duplication between the two semi-planar shaders. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'src/qcam/viewfinder_gl.cpp')
-rw-r--r--src/qcam/viewfinder_gl.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/qcam/viewfinder_gl.cpp b/src/qcam/viewfinder_gl.cpp
index 7cb5fb63..b8a48272 100644
--- a/src/qcam/viewfinder_gl.cpp
+++ b/src/qcam/viewfinder_gl.cpp
@@ -106,32 +106,38 @@ bool ViewFinderGL::selectFormat(const libcamera::PixelFormat &format)
case libcamera::formats::NV12:
horzSubSample_ = 2;
vertSubSample_ = 2;
- fragmentShaderFile_ = ":YUV_2_planes_UV.frag";
+ fragmentShaderDefines_.append("#define YUV_PATTERN_UV");
+ fragmentShaderFile_ = ":YUV_2_planes.frag";
break;
case libcamera::formats::NV21:
horzSubSample_ = 2;
vertSubSample_ = 2;
- fragmentShaderFile_ = ":YUV_2_planes_VU.frag";
+ fragmentShaderDefines_.append("#define YUV_PATTERN_VU");
+ fragmentShaderFile_ = ":YUV_2_planes.frag";
break;
case libcamera::formats::NV16:
horzSubSample_ = 2;
vertSubSample_ = 1;
- fragmentShaderFile_ = ":YUV_2_planes_UV.frag";
+ fragmentShaderDefines_.append("#define YUV_PATTERN_UV");
+ fragmentShaderFile_ = ":YUV_2_planes.frag";
break;
case libcamera::formats::NV61:
horzSubSample_ = 2;
vertSubSample_ = 1;
- fragmentShaderFile_ = ":YUV_2_planes_VU.frag";
+ fragmentShaderDefines_.append("#define YUV_PATTERN_VU");
+ fragmentShaderFile_ = ":YUV_2_planes.frag";
break;
case libcamera::formats::NV24:
horzSubSample_ = 1;
vertSubSample_ = 1;
- fragmentShaderFile_ = ":YUV_2_planes_UV.frag";
+ fragmentShaderDefines_.append("#define YUV_PATTERN_UV");
+ fragmentShaderFile_ = ":YUV_2_planes.frag";
break;
case libcamera::formats::NV42:
horzSubSample_ = 1;
vertSubSample_ = 1;
- fragmentShaderFile_ = ":YUV_2_planes_VU.frag";
+ fragmentShaderDefines_.append("#define YUV_PATTERN_VU");
+ fragmentShaderFile_ = ":YUV_2_planes.frag";
break;
case libcamera::formats::YUV420:
horzSubSample_ = 2;