@@ -58,6 +58,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;
@@ -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_; }
@@ -116,6 +116,13 @@ FrameBuffer::Private::Private()
{
}
+/**
+ * \brief FrameBuffer::Private destructor
+ */
+FrameBuffer::Private::~Private()
+{
+}
+
/**
* \fn FrameBuffer::Private::setRequest()
* \brief Set the request this buffer belongs to
@@ -213,8 +220,21 @@ FrameBuffer::Private::Private()
* \param[in] cookie Cookie
*/
FrameBuffer::FrameBuffer(const std::vector<Plane> &planes, unsigned int cookie)
- : Extensible(std::make_unique<Private>()), planes_(planes),
- cookie_(cookie)
+ : FrameBuffer(std::make_unique<Private>(), planes, cookie)
+{
+}
+
+/**
+ * \brief Construct a FrameBuffer with an extensible private class and an array
+ * of planes
+ * \param[in] d The extensible private class
+ * \param[in] planes The frame memory planes
+ * \param[in] cookie Cookie
+ */
+FrameBuffer::FrameBuffer(std::unique_ptr<Private> d,
+ const std::vector<Plane> &planes,
+ unsigned int cookie)
+ : Extensible(std::move(d)), planes_(planes), cookie_(cookie)
{
metadata_.planes_.resize(planes_.size());