diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-09-16 16:23:27 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-10-04 22:51:45 +0300 |
commit | 440028d6c9a2e98234a71fee79c55791e1d2af2f (patch) | |
tree | 759442f16b82d06e81971a3f4df2aeabbe923c0e /src/qcam/assets/shader/YUV_3_planes.frag | |
parent | 079afd17e7d8775efc809ec9ca4c6a3fcb4d2763 (diff) |
qcam: viewfinder_gl: Rename shader files
Rename shader files to prepare for packed YUYV support:
- The NV prefix isn't a good match for packed (or for 3-planar) formats,
replace it with a YUV prefix
- Use .frag and .vert extensions to differentiate between fragment and
vertex shaders
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'src/qcam/assets/shader/YUV_3_planes.frag')
-rw-r--r-- | src/qcam/assets/shader/YUV_3_planes.frag | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/qcam/assets/shader/YUV_3_planes.frag b/src/qcam/assets/shader/YUV_3_planes.frag new file mode 100644 index 00000000..2be74b5d --- /dev/null +++ b/src/qcam/assets/shader/YUV_3_planes.frag @@ -0,0 +1,33 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2020, Linaro + * + * YUV_3_planes_UV.frag - Fragment shader code for YUV420 format + */ + +#ifdef GL_ES +precision mediump float; +#endif + +varying vec2 textureOut; +uniform sampler2D tex_y; +uniform sampler2D tex_u; +uniform sampler2D tex_v; + +void main(void) +{ + vec3 yuv; + vec3 rgb; + mat3 yuv2rgb_bt601_mat = mat3( + vec3(1.164, 1.164, 1.164), + vec3(0.000, -0.392, 2.017), + vec3(1.596, -0.813, 0.000) + ); + + yuv.x = texture2D(tex_y, textureOut).r - 0.063; + yuv.y = texture2D(tex_u, textureOut).r - 0.500; + yuv.z = texture2D(tex_v, textureOut).r - 0.500; + + rgb = yuv2rgb_bt601_mat * yuv; + gl_FragColor = vec4(rgb, 1.0); +} |