| Message ID | 20260626113325.3218045-5-bryan.odonoghue@linaro.org |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes: > Creates a non-dmabuf texture attached to a frame-buffer-object FBO, which > allows for render-to-texture. > > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > --- > include/libcamera/internal/egl.h | 1 + > src/libcamera/egl.cpp | 13 +++++++++++++ > 2 files changed, 14 insertions(+) > > diff --git a/include/libcamera/internal/egl.h b/include/libcamera/internal/egl.h > index 4b0757afd..e24a726dc 100644 > --- a/include/libcamera/internal/egl.h > +++ b/include/libcamera/internal/egl.h > @@ -108,6 +108,7 @@ public: > int createInputDMABufTexture2D(eGLImage &eglImage, int fd); > int createOutputDMABufTexture2D(eGLImage &eglImage, int fd); > void createTexture2D(eGLImage &eglImage, void *data); > + void createOutputTexture2D(eGLImage &eglImage); > > int attachTextureToFBO(eGLImage &eglImage); > > diff --git a/src/libcamera/egl.cpp b/src/libcamera/egl.cpp > index e83e24606..8e8d61813 100644 > --- a/src/libcamera/egl.cpp > +++ b/src/libcamera/egl.cpp > @@ -329,6 +329,19 @@ bool eGL::isAvailable() > return true; > } > > +/** > + * \brief Create a 2D texture attached to an FBO for render-to-texture > + * \param[in,out] eglImage EGL image to associate with the texture > + * > + * Creates a 2D texture in VRAM. Subsequet attach the texture to the s/Subsequet/Subsequently/ With the typo fixed: Reviewed-by: Milan Zamazal <mzamazal@redhat.com> > + * texture unit specified in the eGLImage object. > + */ > +void eGL::createOutputTexture2D(eGLImage &eglImage) > +{ > + createTexture2D(eglImage, NULL); > + attachTextureToFBO(eglImage); > +} > + > /** > * \brief Initialise the EGL context > *
diff --git a/include/libcamera/internal/egl.h b/include/libcamera/internal/egl.h index 4b0757afd..e24a726dc 100644 --- a/include/libcamera/internal/egl.h +++ b/include/libcamera/internal/egl.h @@ -108,6 +108,7 @@ public: int createInputDMABufTexture2D(eGLImage &eglImage, int fd); int createOutputDMABufTexture2D(eGLImage &eglImage, int fd); void createTexture2D(eGLImage &eglImage, void *data); + void createOutputTexture2D(eGLImage &eglImage); int attachTextureToFBO(eGLImage &eglImage); diff --git a/src/libcamera/egl.cpp b/src/libcamera/egl.cpp index e83e24606..8e8d61813 100644 --- a/src/libcamera/egl.cpp +++ b/src/libcamera/egl.cpp @@ -329,6 +329,19 @@ bool eGL::isAvailable() return true; } +/** + * \brief Create a 2D texture attached to an FBO for render-to-texture + * \param[in,out] eglImage EGL image to associate with the texture + * + * Creates a 2D texture in VRAM. Subsequet attach the texture to the + * texture unit specified in the eGLImage object. + */ +void eGL::createOutputTexture2D(eGLImage &eglImage) +{ + createTexture2D(eglImage, NULL); + attachTextureToFBO(eglImage); +} + /** * \brief Initialise the EGL context *
Creates a non-dmabuf texture attached to a frame-buffer-object FBO, which allows for render-to-texture. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> --- include/libcamera/internal/egl.h | 1 + src/libcamera/egl.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+)