diff options
-rw-r--r-- | src/gui/util/qtexturefiledata.cpp | 11 | ||||
-rw-r--r-- | src/gui/util/qtexturefiledata_p.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/gui/util/qtexturefiledata.cpp b/src/gui/util/qtexturefiledata.cpp index d271541e51..29c6acaeca 100644 --- a/src/gui/util/qtexturefiledata.cpp +++ b/src/gui/util/qtexturefiledata.cpp @@ -167,6 +167,17 @@ int QTextureFileData::dataLength(int level) const return (d && d->lengths.size() > level) ? d->lengths.at(level) : 0; } +QByteArrayView QTextureFileData::getDataView(int level) const +{ + const int dataLength = this->dataLength(level); + const int dataOffset = this->dataOffset(level); + + if (d == nullptr || dataLength == 0) + return QByteArrayView(); + + return QByteArrayView(d->data.constData() + dataOffset, dataLength); +} + void QTextureFileData::setDataLength(int length, int level) { if (d.constData() && level >= 0) { diff --git a/src/gui/util/qtexturefiledata_p.h b/src/gui/util/qtexturefiledata_p.h index fb732cd84c..3d75d46c94 100644 --- a/src/gui/util/qtexturefiledata_p.h +++ b/src/gui/util/qtexturefiledata_p.h @@ -84,6 +84,8 @@ public: int dataLength(int level = 0) const; void setDataLength(int length, int level = 0); + QByteArrayView getDataView(int level = 0) const; + int numLevels() const; void setNumLevels(int num); |