Message ID | 20250611013245.133785-17-bryan.odonoghue@linaro.org |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
On 11/06/2025 02:32, Bryan O'Donoghue wrote: > Moving the GL shaders to src/libcamera/assets/shader to allow for reuse of > these inside of the SoftISP. Not to self: GL, eGL, Mesa - choose one name and use it consistently in the series. --- bod
Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes: > Moving the GL shaders to src/libcamera/assets/shader The patch moves them to include/libcamera/internal/shaders actually. src/... looks like a logically better location, so why moving them to include/? > to allow for reuse of these inside of the SoftISP. > > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > --- > .../libcamera/internal/shaders}/RGB.frag | 0 > .../internal/shaders}/YUV_2_planes.frag | 0 > .../internal/shaders}/YUV_3_planes.frag | 0 > .../internal/shaders}/YUV_packed.frag | 0 > .../internal/shaders}/bayer_1x_packed.frag | 0 > .../libcamera/internal/shaders}/bayer_8.frag | 0 > .../libcamera/internal/shaders}/bayer_8.vert | 0 > .../libcamera/internal/shaders}/identity.vert | 0 > src/apps/qcam/assets/shader/shaders.qrc | 16 ++--- > src/apps/qcam/viewfinder_gl.cpp | 70 +++++++++---------- > 10 files changed, 43 insertions(+), 43 deletions(-) > rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/RGB.frag (100%) > rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/YUV_2_planes.frag (100%) > rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/YUV_3_planes.frag (100%) > rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/YUV_packed.frag (100%) > rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/bayer_1x_packed.frag (100%) > rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/bayer_8.frag (100%) > rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/bayer_8.vert (100%) > rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/identity.vert (100%) > > diff --git a/src/apps/qcam/assets/shader/RGB.frag b/include/libcamera/internal/shaders/RGB.frag > similarity index 100% > rename from src/apps/qcam/assets/shader/RGB.frag > rename to include/libcamera/internal/shaders/RGB.frag > diff --git a/src/apps/qcam/assets/shader/YUV_2_planes.frag b/include/libcamera/internal/shaders/YUV_2_planes.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 > diff --git a/src/apps/qcam/assets/shader/YUV_3_planes.frag b/include/libcamera/internal/shaders/YUV_3_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 > diff --git a/src/apps/qcam/assets/shader/YUV_packed.frag b/include/libcamera/internal/shaders/YUV_packed.frag > similarity index 100% > rename from src/apps/qcam/assets/shader/YUV_packed.frag > rename to include/libcamera/internal/shaders/YUV_packed.frag > diff --git a/src/apps/qcam/assets/shader/bayer_1x_packed.frag b/include/libcamera/internal/shaders/bayer_1x_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 > diff --git a/src/apps/qcam/assets/shader/bayer_8.frag b/include/libcamera/internal/shaders/bayer_8.frag > similarity index 100% > rename from src/apps/qcam/assets/shader/bayer_8.frag > rename to include/libcamera/internal/shaders/bayer_8.frag > diff --git a/src/apps/qcam/assets/shader/bayer_8.vert b/include/libcamera/internal/shaders/bayer_8.vert > similarity index 100% > rename from src/apps/qcam/assets/shader/bayer_8.vert > rename to include/libcamera/internal/shaders/bayer_8.vert > diff --git a/src/apps/qcam/assets/shader/identity.vert b/include/libcamera/internal/shaders/identity.vert > similarity index 100% > rename from src/apps/qcam/assets/shader/identity.vert > rename to include/libcamera/internal/shaders/identity.vert > diff --git a/src/apps/qcam/assets/shader/shaders.qrc b/src/apps/qcam/assets/shader/shaders.qrc > index 96c709f9..04f9d706 100644 > --- a/src/apps/qcam/assets/shader/shaders.qrc > +++ b/src/apps/qcam/assets/shader/shaders.qrc > @@ -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> > diff --git a/src/apps/qcam/viewfinder_gl.cpp b/src/apps/qcam/viewfinder_gl.cpp > index f31956ff..70f60065 100644 > --- a/src/apps/qcam/viewfinder_gl.cpp > +++ b/src/apps/qcam/viewfinder_gl.cpp > @@ -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:
On 17/06/2025 12:57, Milan Zamazal wrote: >> Moving the GL shaders to src/libcamera/assets/shader > The patch moves them to include/libcamera/internal/shaders actually. > src/... looks like a logically better location, so why moving them to > include/? I don't recall if that was a choice or done for a reason, i.e. getting a path to the resource that both the qcam utility and then subsequent changes can iterate/change. I remember putting the files into another location - probably under src but then deciding to change that because it made X easier. I don't recall what that X was though, it was literally last year. --- bod
diff --git a/src/apps/qcam/assets/shader/RGB.frag b/include/libcamera/internal/shaders/RGB.frag similarity index 100% rename from src/apps/qcam/assets/shader/RGB.frag rename to include/libcamera/internal/shaders/RGB.frag diff --git a/src/apps/qcam/assets/shader/YUV_2_planes.frag b/include/libcamera/internal/shaders/YUV_2_planes.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 diff --git a/src/apps/qcam/assets/shader/YUV_3_planes.frag b/include/libcamera/internal/shaders/YUV_3_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 diff --git a/src/apps/qcam/assets/shader/YUV_packed.frag b/include/libcamera/internal/shaders/YUV_packed.frag similarity index 100% rename from src/apps/qcam/assets/shader/YUV_packed.frag rename to include/libcamera/internal/shaders/YUV_packed.frag diff --git a/src/apps/qcam/assets/shader/bayer_1x_packed.frag b/include/libcamera/internal/shaders/bayer_1x_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 diff --git a/src/apps/qcam/assets/shader/bayer_8.frag b/include/libcamera/internal/shaders/bayer_8.frag similarity index 100% rename from src/apps/qcam/assets/shader/bayer_8.frag rename to include/libcamera/internal/shaders/bayer_8.frag diff --git a/src/apps/qcam/assets/shader/bayer_8.vert b/include/libcamera/internal/shaders/bayer_8.vert similarity index 100% rename from src/apps/qcam/assets/shader/bayer_8.vert rename to include/libcamera/internal/shaders/bayer_8.vert diff --git a/src/apps/qcam/assets/shader/identity.vert b/include/libcamera/internal/shaders/identity.vert similarity index 100% rename from src/apps/qcam/assets/shader/identity.vert rename to include/libcamera/internal/shaders/identity.vert diff --git a/src/apps/qcam/assets/shader/shaders.qrc b/src/apps/qcam/assets/shader/shaders.qrc index 96c709f9..04f9d706 100644 --- a/src/apps/qcam/assets/shader/shaders.qrc +++ b/src/apps/qcam/assets/shader/shaders.qrc @@ -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> diff --git a/src/apps/qcam/viewfinder_gl.cpp b/src/apps/qcam/viewfinder_gl.cpp index f31956ff..70f60065 100644 --- a/src/apps/qcam/viewfinder_gl.cpp +++ b/src/apps/qcam/viewfinder_gl.cpp @@ -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:
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> --- .../libcamera/internal/shaders}/RGB.frag | 0 .../internal/shaders}/YUV_2_planes.frag | 0 .../internal/shaders}/YUV_3_planes.frag | 0 .../internal/shaders}/YUV_packed.frag | 0 .../internal/shaders}/bayer_1x_packed.frag | 0 .../libcamera/internal/shaders}/bayer_8.frag | 0 .../libcamera/internal/shaders}/bayer_8.vert | 0 .../libcamera/internal/shaders}/identity.vert | 0 src/apps/qcam/assets/shader/shaders.qrc | 16 ++--- src/apps/qcam/viewfinder_gl.cpp | 70 +++++++++---------- 10 files changed, 43 insertions(+), 43 deletions(-) rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/RGB.frag (100%) rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/YUV_2_planes.frag (100%) rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/YUV_3_planes.frag (100%) rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/YUV_packed.frag (100%) rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/bayer_1x_packed.frag (100%) rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/bayer_8.frag (100%) rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/bayer_8.vert (100%) rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/identity.vert (100%)