libcamera: shaders: Move GL shader programs to src/libcamera/assets/shader
Moving the GL shaders to src/libcamera/assets/shader to allow for reuse of these inside of the SoftISP. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
This commit is contained in:
parent
c2a68a2e44
commit
367b29199b
10 changed files with 43 additions and 43 deletions
|
@ -1,13 +1,13 @@
|
|||
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
|
||||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource>
|
||||
<file>RGB.frag</file>
|
||||
<file>YUV_2_planes.frag</file>
|
||||
<file>YUV_3_planes.frag</file>
|
||||
<file>YUV_packed.frag</file>
|
||||
<file>bayer_1x_packed.frag</file>
|
||||
<file>bayer_8.frag</file>
|
||||
<file>bayer_8.vert</file>
|
||||
<file>identity.vert</file>
|
||||
<file>../../../../../include/libcamera/internal/shaders/RGB.frag</file>
|
||||
<file>../../../../../include/libcamera/internal/shaders/YUV_2_planes.frag</file>
|
||||
<file>../../../../../include/libcamera/internal/shaders/YUV_3_planes.frag</file>
|
||||
<file>../../../../../include/libcamera/internal/shaders/YUV_packed.frag</file>
|
||||
<file>../../../../../include/libcamera/internal/shaders/bayer_1x_packed.frag</file>
|
||||
<file>../../../../../include/libcamera/internal/shaders/bayer_8.frag</file>
|
||||
<file>../../../../../include/libcamera/internal/shaders/bayer_8.vert</file>
|
||||
<file>../../../../../include/libcamera/internal/shaders/identity.vert</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -141,7 +141,7 @@ bool ViewFinderGL::selectFormat(const libcamera::PixelFormat &format)
|
|||
textureMinMagFilters_ = GL_LINEAR;
|
||||
|
||||
/* Use identity.vert as the default vertex shader. */
|
||||
vertexShaderFile_ = ":identity.vert";
|
||||
vertexShaderFile_ = ":include/libcamera/internal/shaders/identity.vert";
|
||||
|
||||
fragmentShaderDefines_.clear();
|
||||
|
||||
|
@ -150,170 +150,170 @@ bool ViewFinderGL::selectFormat(const libcamera::PixelFormat &format)
|
|||
horzSubSample_ = 2;
|
||||
vertSubSample_ = 2;
|
||||
fragmentShaderDefines_.append("#define YUV_PATTERN_UV");
|
||||
fragmentShaderFile_ = ":YUV_2_planes.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_2_planes.frag";
|
||||
break;
|
||||
case libcamera::formats::NV21:
|
||||
horzSubSample_ = 2;
|
||||
vertSubSample_ = 2;
|
||||
fragmentShaderDefines_.append("#define YUV_PATTERN_VU");
|
||||
fragmentShaderFile_ = ":YUV_2_planes.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_2_planes.frag";
|
||||
break;
|
||||
case libcamera::formats::NV16:
|
||||
horzSubSample_ = 2;
|
||||
vertSubSample_ = 1;
|
||||
fragmentShaderDefines_.append("#define YUV_PATTERN_UV");
|
||||
fragmentShaderFile_ = ":YUV_2_planes.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_2_planes.frag";
|
||||
break;
|
||||
case libcamera::formats::NV61:
|
||||
horzSubSample_ = 2;
|
||||
vertSubSample_ = 1;
|
||||
fragmentShaderDefines_.append("#define YUV_PATTERN_VU");
|
||||
fragmentShaderFile_ = ":YUV_2_planes.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_2_planes.frag";
|
||||
break;
|
||||
case libcamera::formats::NV24:
|
||||
horzSubSample_ = 1;
|
||||
vertSubSample_ = 1;
|
||||
fragmentShaderDefines_.append("#define YUV_PATTERN_UV");
|
||||
fragmentShaderFile_ = ":YUV_2_planes.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_2_planes.frag";
|
||||
break;
|
||||
case libcamera::formats::NV42:
|
||||
horzSubSample_ = 1;
|
||||
vertSubSample_ = 1;
|
||||
fragmentShaderDefines_.append("#define YUV_PATTERN_VU");
|
||||
fragmentShaderFile_ = ":YUV_2_planes.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_2_planes.frag";
|
||||
break;
|
||||
case libcamera::formats::YUV420:
|
||||
horzSubSample_ = 2;
|
||||
vertSubSample_ = 2;
|
||||
fragmentShaderFile_ = ":YUV_3_planes.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_3_planes.frag";
|
||||
break;
|
||||
case libcamera::formats::YVU420:
|
||||
horzSubSample_ = 2;
|
||||
vertSubSample_ = 2;
|
||||
fragmentShaderFile_ = ":YUV_3_planes.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_3_planes.frag";
|
||||
break;
|
||||
case libcamera::formats::UYVY:
|
||||
fragmentShaderDefines_.append("#define YUV_PATTERN_UYVY");
|
||||
fragmentShaderFile_ = ":YUV_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_packed.frag";
|
||||
break;
|
||||
case libcamera::formats::VYUY:
|
||||
fragmentShaderDefines_.append("#define YUV_PATTERN_VYUY");
|
||||
fragmentShaderFile_ = ":YUV_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_packed.frag";
|
||||
break;
|
||||
case libcamera::formats::YUYV:
|
||||
fragmentShaderDefines_.append("#define YUV_PATTERN_YUYV");
|
||||
fragmentShaderFile_ = ":YUV_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_packed.frag";
|
||||
break;
|
||||
case libcamera::formats::YVYU:
|
||||
fragmentShaderDefines_.append("#define YUV_PATTERN_YVYU");
|
||||
fragmentShaderFile_ = ":YUV_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/YUV_packed.frag";
|
||||
break;
|
||||
case libcamera::formats::ABGR8888:
|
||||
fragmentShaderDefines_.append("#define RGB_PATTERN rgb");
|
||||
fragmentShaderFile_ = ":RGB.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/RGB.frag";
|
||||
break;
|
||||
case libcamera::formats::ARGB8888:
|
||||
fragmentShaderDefines_.append("#define RGB_PATTERN bgr");
|
||||
fragmentShaderFile_ = ":RGB.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/RGB.frag";
|
||||
break;
|
||||
case libcamera::formats::BGRA8888:
|
||||
fragmentShaderDefines_.append("#define RGB_PATTERN gba");
|
||||
fragmentShaderFile_ = ":RGB.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/RGB.frag";
|
||||
break;
|
||||
case libcamera::formats::RGBA8888:
|
||||
fragmentShaderDefines_.append("#define RGB_PATTERN abg");
|
||||
fragmentShaderFile_ = ":RGB.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/RGB.frag";
|
||||
break;
|
||||
case libcamera::formats::BGR888:
|
||||
fragmentShaderDefines_.append("#define RGB_PATTERN rgb");
|
||||
fragmentShaderFile_ = ":RGB.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/RGB.frag";
|
||||
break;
|
||||
case libcamera::formats::RGB888:
|
||||
fragmentShaderDefines_.append("#define RGB_PATTERN bgr");
|
||||
fragmentShaderFile_ = ":RGB.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/RGB.frag";
|
||||
break;
|
||||
case libcamera::formats::SBGGR8:
|
||||
firstRed_.setX(1.0);
|
||||
firstRed_.setY(1.0);
|
||||
vertexShaderFile_ = ":bayer_8.vert";
|
||||
fragmentShaderFile_ = ":bayer_8.frag";
|
||||
vertexShaderFile_ = ":include/libcamera/internal/shaders/bayer_8.vert";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_8.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SGBRG8:
|
||||
firstRed_.setX(0.0);
|
||||
firstRed_.setY(1.0);
|
||||
vertexShaderFile_ = ":bayer_8.vert";
|
||||
fragmentShaderFile_ = ":bayer_8.frag";
|
||||
vertexShaderFile_ = ":include/libcamera/internal/shaders/bayer_8.vert";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_8.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SGRBG8:
|
||||
firstRed_.setX(1.0);
|
||||
firstRed_.setY(0.0);
|
||||
vertexShaderFile_ = ":bayer_8.vert";
|
||||
fragmentShaderFile_ = ":bayer_8.frag";
|
||||
vertexShaderFile_ = ":include/libcamera/internal/shaders/bayer_8.vert";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_8.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SRGGB8:
|
||||
firstRed_.setX(0.0);
|
||||
firstRed_.setY(0.0);
|
||||
vertexShaderFile_ = ":bayer_8.vert";
|
||||
fragmentShaderFile_ = ":bayer_8.frag";
|
||||
vertexShaderFile_ = ":include/libcamera/internal/shaders/bayer_8.vert";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_8.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SBGGR10_CSI2P:
|
||||
firstRed_.setX(1.0);
|
||||
firstRed_.setY(1.0);
|
||||
fragmentShaderDefines_.append("#define RAW10P");
|
||||
fragmentShaderFile_ = ":bayer_1x_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_1x_packed.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SGBRG10_CSI2P:
|
||||
firstRed_.setX(0.0);
|
||||
firstRed_.setY(1.0);
|
||||
fragmentShaderDefines_.append("#define RAW10P");
|
||||
fragmentShaderFile_ = ":bayer_1x_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_1x_packed.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SGRBG10_CSI2P:
|
||||
firstRed_.setX(1.0);
|
||||
firstRed_.setY(0.0);
|
||||
fragmentShaderDefines_.append("#define RAW10P");
|
||||
fragmentShaderFile_ = ":bayer_1x_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_1x_packed.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SRGGB10_CSI2P:
|
||||
firstRed_.setX(0.0);
|
||||
firstRed_.setY(0.0);
|
||||
fragmentShaderDefines_.append("#define RAW10P");
|
||||
fragmentShaderFile_ = ":bayer_1x_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_1x_packed.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SBGGR12_CSI2P:
|
||||
firstRed_.setX(1.0);
|
||||
firstRed_.setY(1.0);
|
||||
fragmentShaderDefines_.append("#define RAW12P");
|
||||
fragmentShaderFile_ = ":bayer_1x_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_1x_packed.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SGBRG12_CSI2P:
|
||||
firstRed_.setX(0.0);
|
||||
firstRed_.setY(1.0);
|
||||
fragmentShaderDefines_.append("#define RAW12P");
|
||||
fragmentShaderFile_ = ":bayer_1x_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_1x_packed.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SGRBG12_CSI2P:
|
||||
firstRed_.setX(1.0);
|
||||
firstRed_.setY(0.0);
|
||||
fragmentShaderDefines_.append("#define RAW12P");
|
||||
fragmentShaderFile_ = ":bayer_1x_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_1x_packed.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
case libcamera::formats::SRGGB12_CSI2P:
|
||||
firstRed_.setX(0.0);
|
||||
firstRed_.setY(0.0);
|
||||
fragmentShaderDefines_.append("#define RAW12P");
|
||||
fragmentShaderFile_ = ":bayer_1x_packed.frag";
|
||||
fragmentShaderFile_ = ":include/libcamera/internal/shaders/bayer_1x_packed.frag";
|
||||
textureMinMagFilters_ = GL_NEAREST;
|
||||
break;
|
||||
default:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue