summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorHirokazu Honda <hiroh@chromium.org>2021-11-24 03:39:46 +0900
committerJacopo Mondi <jacopo@jmondi.org>2021-12-06 15:35:13 +0100
commit99bb610fd1b270f126a6b35c0231843973d8f35b (patch)
tree94e4320fa9c4e145541d148943a1f897f3ab8c78 /include
parent294663eece8c067d268442724b969c9dfa081b0a (diff)
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 <hiroh@chromium.org> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'include')
-rw-r--r--include/libcamera/framebuffer.h2
-rw-r--r--include/libcamera/internal/framebuffer.h1
2 files changed, 3 insertions, 0 deletions
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<Plane> &planes, unsigned int cookie = 0);
+ FrameBuffer(std::unique_ptr<Private> d,
+ const std::vector<Plane> &planes, unsigned int cookie = 0);
const std::vector<Plane> &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_; }