76 lines
2.3 KiB
C++
76 lines
2.3 KiB
C++
#ifndef GLES_TEXTURE_UTILS_H
|
|
#define GLES_TEXTURE_UTILS_H
|
|
|
|
#include <GLES3/gl31.h>
|
|
|
|
namespace GLESTextureUtils {
|
|
|
|
void computeTextureStartEnd(
|
|
GLsizei width, GLsizei height, GLsizei depth,
|
|
GLenum format, GLenum type,
|
|
int unpackAlignment,
|
|
int unpackRowLength,
|
|
int unpackImageHeight,
|
|
int unpackSkipPixels,
|
|
int unpackSkipRows,
|
|
int unpackSkipImages,
|
|
int* start,
|
|
int* end);
|
|
|
|
int computeTotalImageSize(
|
|
GLsizei width, GLsizei height, GLsizei depth,
|
|
GLenum format, GLenum type,
|
|
int unpackAlignment,
|
|
int unpackRowLength,
|
|
int unpackImageHeight,
|
|
int unpackSkipPixels,
|
|
int unpackSkipRows,
|
|
int unpackSkipImages);
|
|
|
|
int computeNeededBufferSize(
|
|
GLsizei width, GLsizei height, GLsizei depth,
|
|
GLenum format, GLenum type,
|
|
int unpackAlignment,
|
|
int unpackRowLength,
|
|
int unpackImageHeight,
|
|
int unpackSkipPixels,
|
|
int unpackSkipRows,
|
|
int unpackSkipImages);
|
|
|
|
// Writes out |height| offsets for glReadPixels to read back
|
|
// data in separate rows of pixels. Returns:
|
|
// 1. |startOffset|: offset in bytes to apply at the beginning
|
|
// 2. |packingPixelRowSize|: the buffer size in bytes that has the actual pixels per row.
|
|
// 2. |packingTotalRowSize|: the length in bytes of each row including the padding from row length.
|
|
void computePackingOffsets2D(
|
|
GLsizei width, GLsizei height,
|
|
GLenum format, GLenum type,
|
|
int packAlignment,
|
|
int packRowLength,
|
|
int packSkipPixels,
|
|
int packSkipRows,
|
|
int* bpp,
|
|
int* startOffset,
|
|
int* packingPixelRowSize,
|
|
int* packingTotalRowSize);
|
|
|
|
// For processing 3D textures exactly to the sizes of client buffers.
|
|
void computePackingOffsets3D(
|
|
GLsizei width, GLsizei height, GLsizei depth,
|
|
GLenum format, GLenum type,
|
|
int packAlignment,
|
|
int packRowLength,
|
|
int packImageHeight,
|
|
int packSkipPixels,
|
|
int packSkipRows,
|
|
int packSkipImages,
|
|
int* bpp,
|
|
int* startOffset,
|
|
int* packingPixelRowSize,
|
|
int* packingTotalRowSize,
|
|
int* packingPixelImageSize,
|
|
int* packingTotalImageSize);
|
|
|
|
} // namespace GLESTextureUtils
|
|
#endif
|