@@ -105,7 +105,7 @@ public:
int createInputDMABufTexture2D(eGLImage &eglImage, int fd);
int createOutputDMABufTexture2D(eGLImage &eglImage, int fd);
- void createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint32_t height, void *data);
+ void createTexture2D(eGLImage &eglImage, void *data);
void pushEnv(std::vector<std::string> &shaderEnv, const char *str);
void makeCurrent();
@@ -227,9 +227,6 @@ int eGL::createOutputDMABufTexture2D(eGLImage &eglImage, int fd)
/**
* \brief Create a 2D texture from a memory buffer
* \param[in,out] eglImage EGL image to associate with the texture
- * \param[in] format OpenGL internal format (e.g., GL_RGB, GL_RGBA)
- * \param[in] width Texture width in pixels
- * \param[in] height Texture height in pixels
* \param[in] data Pointer to pixel data, or nullptr for uninitialised texture
*
* Creates a 2D texture from a CPU-accessible memory buffer. The texture
@@ -237,7 +234,7 @@ int eGL::createOutputDMABufTexture2D(eGLImage &eglImage, int fd)
* is useful for uploading static data like lookup tables or uniform color
* matrices to the GPU.
*/
-void eGL::createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint32_t height, void *data)
+void eGL::createTexture2D(eGLImage &eglImage, void *data)
{
ASSERT(tid_ == Thread::currentId());
@@ -245,7 +242,7 @@ void eGL::createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint
glBindTexture(GL_TEXTURE_2D, eglImage.texture_);
// Generate texture, bind, associate image to texture, configure, unbind
- glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, format, GL_UNSIGNED_BYTE, data);
+ glTexImage2D(GL_TEXTURE_2D, 0, eglImage.format_, eglImage.width_, eglImage.height_, 0, eglImage.format_, GL_UNSIGNED_BYTE, data);
// Nearest filtering
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
@@ -506,7 +506,7 @@ int DebayerEGL::debayerGPU(MappedFrameBuffer &in, int out_fd, const DebayerParam
egl_.makeCurrent();
/* Create a standard texture input */
- egl_.createTexture2D(*eglImageBayerIn_, glFormat_, inputConfig_.stride / bytesPerPixel_, height_, in.planes()[0].data());
+ egl_.createTexture2D(*eglImageBayerIn_, in.planes()[0].data());
/* Generate the output render framebuffer as render to texture */
egl_.createOutputDMABufTexture2D(*eglImageBayerOut_, out_fd);
@@ -586,7 +586,7 @@ int DebayerEGL::start()
return -EINVAL;
/* Raw bayer input as texture */
- eglImageBayerIn_ = std::make_unique<eGLImage>(glFormat_, width_, height_, inputConfig_.stride, GL_TEXTURE0, 0);
+ eglImageBayerIn_ = std::make_unique<eGLImage>(glFormat_, inputConfig_.stride / bytesPerPixel_, height_, inputConfig_.stride, GL_TEXTURE0, 0);
/* Texture we will render to */
eglImageBayerOut_ = std::make_unique<eGLImage>(GL_RGBA, outputSize_.width, outputSize_.height, outputConfig_.stride, GL_TEXTURE1, 1);
And use the values set in the constructor instead, bringing the function in line with createInputDMABufTexture2D() and createOutputDMABufTexture2D(). Adopt the value passed into the constructor accordingly, which previously was never used. Signed-off-by: Robert Mader <robert.mader@collabora.com> --- include/libcamera/internal/egl.h | 2 +- src/libcamera/egl.cpp | 7 ++----- src/libcamera/software_isp/debayer_egl.cpp | 4 ++-- 3 files changed, 5 insertions(+), 8 deletions(-)