similarity index 100%
rename from src/apps/qcam/assets/shader/RGB.frag
rename to include/libcamera/internal/shaders/RGB.frag
similarity index 100%
rename from src/apps/qcam/assets/shader/YUV_2_planes.frag
rename to include/libcamera/internal/shaders/YUV_2_planes.frag
similarity index 100%
rename from src/apps/qcam/assets/shader/YUV_3_planes.frag
rename to include/libcamera/internal/shaders/YUV_3_planes.frag
similarity index 100%
rename from src/apps/qcam/assets/shader/YUV_packed.frag
rename to include/libcamera/internal/shaders/YUV_packed.frag
similarity index 100%
rename from src/apps/qcam/assets/shader/bayer_1x_packed.frag
rename to include/libcamera/internal/shaders/bayer_1x_packed.frag
similarity index 100%
rename from src/apps/qcam/assets/shader/bayer_8.frag
rename to include/libcamera/internal/shaders/bayer_8.frag
similarity index 100%
rename from src/apps/qcam/assets/shader/bayer_8.vert
rename to include/libcamera/internal/shaders/bayer_8.vert
similarity index 100%
rename from src/apps/qcam/assets/shader/identity.vert
rename to include/libcamera/internal/shaders/identity.vert
@@ -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>
@@ -64,3 +64,6 @@ qcam = executable('qcam', qcam_sources, resources,
qt6_dep,
],
cpp_args : qt6_cpp_args)
+
+# Note: qt6.preprocess does not automatically rebuild when the
+# qcam_resources dependency chain is updated.
@@ -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: