aboutsummaryrefslogtreecommitdiffstats
path: root/shared/OpenglCodecCommon/GLESTextureUtils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'shared/OpenglCodecCommon/GLESTextureUtils.cpp')
-rw-r--r--shared/OpenglCodecCommon/GLESTextureUtils.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/shared/OpenglCodecCommon/GLESTextureUtils.cpp b/shared/OpenglCodecCommon/GLESTextureUtils.cpp
index 1aef8cb4..45729053 100644
--- a/shared/OpenglCodecCommon/GLESTextureUtils.cpp
+++ b/shared/OpenglCodecCommon/GLESTextureUtils.cpp
@@ -284,4 +284,29 @@ int computeNeededBufferSize(
return end - start;
}
+void computePackingOffsets2D(
+ GLsizei width, GLsizei height,
+ GLenum format, GLenum type,
+ int packAlignment,
+ int packRowLength,
+ int packSkipPixels,
+ int packSkipRows,
+ int* startOffset,
+ int* packingPixelRowSize,
+ int* packingTotalRowSize) {
+
+ int widthTotal = (packRowLength == 0) ? width : packRowLength;
+ int totalRowSize = computePitch(widthTotal, format, type, packAlignment);
+ int pixelsOnlyRowSize = computePitch(width, format, type, packAlignment);
+
+ int packingOffsetStart =
+ computePackingOffset(
+ format, type, widthTotal, height, packAlignment, packSkipPixels, packSkipRows, 0 /* skip images = 0 */);
+
+ if (startOffset) *startOffset = packingOffsetStart;
+ if (packingPixelRowSize) *packingPixelRowSize = pixelsOnlyRowSize;
+ if (packingTotalRowSize) *packingTotalRowSize = totalRowSize;
+}
+
+
} // namespace GLESTextureUtils