You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.6 KiB
85 lines
2.6 KiB
#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);
|
|
|
|
// For calculating compressed sizes of ETC/EAC formatted images in the guest.
|
|
GLsizei getCompressedImageSize(GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, bool* error);
|
|
|
|
// Format queries
|
|
bool isEtc2Format(GLenum internalformat);
|
|
bool isAstcFormat(GLenum internalformat);
|
|
bool isBptcFormat(GLenum internalformat);
|
|
bool isS3tcFormat(GLenum internalformat);
|
|
|
|
} // namespace GLESTextureUtils
|
|
#endif
|