mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-24 09:05:06 +03:00
libcamera: geometry: Give constructors to Rectangle
Rectangle, unlike Size, has no constructor, requiring the users to explicitly initialize the instances. This is error-prone, add constructors. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
parent
935aec66ae
commit
4f509caa8e
6 changed files with 41 additions and 19 deletions
|
@ -127,6 +127,21 @@ static inline bool operator!=(const SizeRange &lhs, const SizeRange &rhs)
|
|||
}
|
||||
|
||||
struct Rectangle {
|
||||
Rectangle()
|
||||
: Rectangle(0, 0, 0, 0)
|
||||
{
|
||||
}
|
||||
|
||||
Rectangle(int xpos, int ypos, const Size &size)
|
||||
: x(xpos), y(ypos), width(size.width), height(size.height)
|
||||
{
|
||||
}
|
||||
|
||||
Rectangle(int xpos, int ypos, unsigned int w, unsigned int h)
|
||||
: x(xpos), y(ypos), width(w), height(h)
|
||||
{
|
||||
}
|
||||
|
||||
int x;
|
||||
int y;
|
||||
unsigned int width;
|
||||
|
|
|
@ -487,7 +487,7 @@ int CameraSensor::sensorInfo(CameraSensorInfo *info) const
|
|||
info->model = model();
|
||||
|
||||
/* Get the active area size. */
|
||||
Rectangle rect = {};
|
||||
Rectangle rect;
|
||||
int ret = subdev_->getSelection(pad_, V4L2_SEL_TGT_CROP_DEFAULT, &rect);
|
||||
if (ret) {
|
||||
LOG(CameraSensor, Error)
|
||||
|
|
|
@ -297,6 +297,28 @@ bool operator==(const SizeRange &lhs, const SizeRange &rhs)
|
|||
* refers to, are defined by the context were rectangle is used.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \fn Rectangle::Rectangle()
|
||||
* \brief Construct a Rectangle with all coordinates set to 0
|
||||
*/
|
||||
|
||||
/**
|
||||
* \fn Rectangle::Rectangle(int x, int y, const Size &size)
|
||||
* \brief Construct a Rectangle with the given position and size
|
||||
* \param[in] x The horizontal coordinate of the top-left corner
|
||||
* \param[in] y The vertical coordinate of the top-left corner
|
||||
* \param[in] size The size
|
||||
*/
|
||||
|
||||
/**
|
||||
* \fn Rectangle::Rectangle(int x, int y, unsigned int width, unsigned int height)
|
||||
* \brief Construct a Rectangle with the given position and size
|
||||
* \param[in] x The horizontal coordinate of the top-left corner
|
||||
* \param[in] y The vertical coordinate of the top-left corner
|
||||
* \param[in] width The width
|
||||
* \param[in] height The height
|
||||
*/
|
||||
|
||||
/**
|
||||
* \var Rectangle::x
|
||||
* \brief The horizontal coordinate of the rectangle's top-left corner
|
||||
|
|
|
@ -100,12 +100,7 @@ int ImgUDevice::configureInput(const Size &size,
|
|||
* to configure the crop/compose rectangles, contradicting the
|
||||
* V4L2 specification.
|
||||
*/
|
||||
Rectangle rect = {
|
||||
.x = 0,
|
||||
.y = 0,
|
||||
.width = inputFormat->size.width,
|
||||
.height = inputFormat->size.height,
|
||||
};
|
||||
Rectangle rect{ 0, 0, inputFormat->size };
|
||||
ret = imgu_->setSelection(PAD_INPUT, V4L2_SEL_TGT_CROP, &rect);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
|
@ -752,12 +752,7 @@ int PipelineHandlerRPi::configure(Camera *camera, CameraConfiguration *config)
|
|||
}
|
||||
|
||||
/* Adjust aspect ratio by providing crops on the input image. */
|
||||
Rectangle crop = {
|
||||
.x = 0,
|
||||
.y = 0,
|
||||
.width = sensorFormat.size.width,
|
||||
.height = sensorFormat.size.height
|
||||
};
|
||||
Rectangle crop{ 0, 0, sensorFormat.size };
|
||||
|
||||
int ar = maxSize.height * sensorFormat.size.width - maxSize.width * sensorFormat.size.height;
|
||||
if (ar > 0)
|
||||
|
|
|
@ -256,12 +256,7 @@ int PipelineHandlerVimc::configure(Camera *camera, CameraConfiguration *config)
|
|||
return ret;
|
||||
|
||||
if (data->media_->version() >= KERNEL_VERSION(5, 6, 0)) {
|
||||
Rectangle crop = {
|
||||
.x = 0,
|
||||
.y = 0,
|
||||
.width = subformat.size.width,
|
||||
.height = subformat.size.height,
|
||||
};
|
||||
Rectangle crop{ 0, 0, subformat.size };
|
||||
ret = data->scaler_->setSelection(0, V4L2_SEL_TGT_CROP, &crop);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue