summaryrefslogtreecommitdiffstats
path: root/src/opengl/qopenglpixeltransferoptions.cpp
blob: 100de4689dda0445e1cdb4c11cd2d0f60c8a5fec (plain)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB).// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only#include"qopenglpixeltransferoptions.h"#include <QSharedData> QT_BEGIN_NAMESPACE /*! * \class QOpenGLPixelTransferOptions * \inmodule QtOpenGL * * \brief The QOpenGLPixelTransferOptions class describes the pixel storage * modes that affect the unpacking of pixels during texture upload. *//*! * \fn QOpenGLPixelTransferOptions & QOpenGLPixelTransferOptions::operator=(QOpenGLPixelTransferOptions &&other) * \internal *//*! * \fn void QOpenGLPixelTransferOptions::swap(QOpenGLPixelTransferOptions &other) * \memberswap{options} */class QOpenGLPixelTransferOptionsData :public QSharedData {public:QOpenGLPixelTransferOptionsData():alignment(4),skipImages(0),skipRows(0),skipPixels(0),imageHeight(0),rowLength(0),lsbFirst(false),swapBytes(false){}int alignment;int skipImages;int skipRows;int skipPixels;int imageHeight;int rowLength;bool lsbFirst;bool swapBytes;};/*! * Constructs a new QOpenGLPixelTransferOptions instance with the default settings. */QOpenGLPixelTransferOptions::QOpenGLPixelTransferOptions():data(new QOpenGLPixelTransferOptionsData){}/*! * \internal */QOpenGLPixelTransferOptions::QOpenGLPixelTransferOptions(const QOpenGLPixelTransferOptions &rhs):data(rhs.data){}/*! * \internal */ QOpenGLPixelTransferOptions &QOpenGLPixelTransferOptions::operator=(const QOpenGLPixelTransferOptions &rhs){if(this!= &rhs) data.operator=(rhs.data);return*this;}/*! * Destructor. */QOpenGLPixelTransferOptions::~QOpenGLPixelTransferOptions(){}/*! * Sets the \a alignment requirements for each pixel row. Corresponds to \c GL_UNPACK_ALIGNMENT. * The default value is 4, as specified by OpenGL. */voidQOpenGLPixelTransferOptions::setAlignment(int alignment){ data->alignment = alignment;}/*! * \return the current alignment requirement for each pixel row. */intQOpenGLPixelTransferOptions::alignment()const{return data->alignment;}/*! * Sets the number of images that are skipped to \a skipImages. * Corresponds to \c GL_UNPACK_SKIP_IMAGES. Equivalent to incrementing the pointer * passed to QOpenGLTexture::setData(). The default value is 0. */voidQOpenGLPixelTransferOptions::setSkipImages(int skipImages){ data->skipImages = skipImages;}/*! * \return the number of images that are skipped. */intQOpenGLPixelTransferOptions::skipImages()const{return data->skipImages;}/*! * Sets the number of rows that are skipped to \a skipRows. * Corresponds to \c GL_UNPACK_SKIP_ROWS. Equivalent to incrementing the pointer * passed to QOpenGLTexture::setData(). The default value is 0. */voidQOpenGLPixelTransferOptions::setSkipRows(int skipRows){ data->skipRows = skipRows;}/*! * \return the number of rows that are skipped. */intQOpenGLPixelTransferOptions::skipRows()const{return data->skipRows;}/*! * Sets the number of pixels that are skipped to \a skipPixels. * Corresponds to \c GL_UNPACK_SKIP_PIXELS. Equivalent to incrementing the pointer * passed to QOpenGLTexture::setData(). The default value is 0. */voidQOpenGLPixelTransferOptions::setSkipPixels(int skipPixels){ data->skipPixels = skipPixels;}/*! * \return the number of pixels that are skipped. */intQOpenGLPixelTransferOptions::skipPixels()const{return data->skipPixels;}/*! * Sets the image height for 3D textures to \a imageHeight. * Corresponds to \c GL_UNPACK_IMAGE_HEIGHT. * The default value is 0. */voidQOpenGLPixelTransferOptions::setImageHeight(int imageHeight){ data->imageHeight = imageHeight;}/*! * \return the currently set image height. */intQOpenGLPixelTransferOptions::imageHeight()const{return data->imageHeight;}/*! * Sets the number of pixels in a row to \a rowLength. * Corresponds to \c GL_UNPACK_ROW_LENGTH. * The default value is 0. */voidQOpenGLPixelTransferOptions::setRowLength(int rowLength){ data->rowLength = rowLength;}/*! * \return the currently set row length. */intQOpenGLPixelTransferOptions::rowLength()const{return data->rowLength;}/*! * \a lsbFirst specifies if bits within a byte are ordered from least to most significat. * The default value is \c false, meaning that the first bit in each byte is the * most significant one. This is significant for bitmap data only. * Corresponds to \c GL_UNPACK_LSB_FIRST. */voidQOpenGLPixelTransferOptions::setLeastSignificantByteFirst(bool lsbFirst){ data->lsbFirst = lsbFirst;}/*! * \return \c true if bits within a byte are ordered from least to most significant. */boolQOpenGLPixelTransferOptions::isLeastSignificantBitFirst()const{return data->lsbFirst;}/*! * \a swapBytes specifies if the byte ordering for multibyte components is reversed. * The default value is \c false. * Corresponds to \c GL_UNPACK_SWAP_BYTES. */voidQOpenGLPixelTransferOptions::setSwapBytesEnabled(bool swapBytes){ data->swapBytes = swapBytes;}/*! * \return \c true if the byte ordering for multibyte components is reversed. */boolQOpenGLPixelTransferOptions::isSwapBytesEnabled()const{return data->swapBytes;} QT_END_NAMESPACE 
close