From 99bb610fd1b270f126a6b35c0231843973d8f35b Mon Sep 17 00:00:00 2001 From: Hirokazu Honda Date: Wed, 24 Nov 2021 03:39:46 +0900 Subject: libcamera: framebuffer: Enable attaching additional data to FrameBuffer We cannot have a subclass of FrameBuffer because it is marked as final. This adds a FrameBuffer constructor with FrameBuffer::Private. So we can attach some additional resources with FrameBuffer through a customized FrameBuffer::Private class. Signed-off-by: Hirokazu Honda Reviewed-by: Jacopo Mondi Reviewed-by: Kieran Bingham Signed-off-by: Jacopo Mondi --- include/libcamera/framebuffer.h | 2 ++ include/libcamera/internal/framebuffer.h | 1 + 2 files changed, 3 insertions(+) (limited to 'include') diff --git a/include/libcamera/framebuffer.h b/include/libcamera/framebuffer.h index 357bbe18..502f7897 100644 --- a/include/libcamera/framebuffer.h +++ b/include/libcamera/framebuffer.h @@ -57,6 +57,8 @@ public: }; FrameBuffer(const std::vector &planes, unsigned int cookie = 0); + FrameBuffer(std::unique_ptr d, + const std::vector &planes, unsigned int cookie = 0); const std::vector &planes() const { return planes_; } Request *request() const; diff --git a/include/libcamera/internal/framebuffer.h b/include/libcamera/internal/framebuffer.h index 908b4789..6e0d8389 100644 --- a/include/libcamera/internal/framebuffer.h +++ b/include/libcamera/internal/framebuffer.h @@ -19,6 +19,7 @@ class FrameBuffer::Private : public Extensible::Private public: Private(); + virtual ~Private(); void setRequest(Request *request) { request_ = request; } bool isContiguous() const { return isContiguous_; } -- cgit v1.2.1