本文整理汇总了Java中android.opengl.ETC1.ETC_PKM_HEADER_SIZE属性的典型用法代码示例。如果您正苦于以下问题:Java ETC1.ETC_PKM_HEADER_SIZE属性的具体用法?Java ETC1.ETC_PKM_HEADER_SIZE怎么用?Java ETC1.ETC_PKM_HEADER_SIZE使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类android.opengl.ETC1
的用法示例。
在下文中一共展示了ETC1.ETC_PKM_HEADER_SIZE属性的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: ETC1TextureHeader
public ETC1TextureHeader(final byte[] pData) {
if (pData.length != ETC1.ETC_PKM_HEADER_SIZE) {
throw new IllegalArgumentException("Invalid " + this.getClass().getSimpleName() + "!");
}
this.mDataByteBuffer = ByteBuffer.allocateDirect(ETC1.ETC_PKM_HEADER_SIZE).order(ByteOrder.nativeOrder());
this.mDataByteBuffer.put(pData, 0, ETC1.ETC_PKM_HEADER_SIZE);
this.mDataByteBuffer.position(0);
if (!ETC1.isValid(this.mDataByteBuffer)) {
throw new IllegalArgumentException("Invalid " + this.getClass().getSimpleName() + "!");
}
this.mWidth = ETC1.getWidth(this.mDataByteBuffer);
this.mHeight = ETC1.getHeight(this.mDataByteBuffer);
}
示例2: ETC1TextureHeader
public ETC1TextureHeader(final byte[] pData) {
if(pData.length != ETC1.ETC_PKM_HEADER_SIZE) {
throw new IllegalArgumentException("Invalid " + this.getClass().getSimpleName() + "!");
}
this.mDataByteBuffer = ByteBuffer.allocateDirect(ETC1.ETC_PKM_HEADER_SIZE).order(ByteOrder.nativeOrder());
this.mDataByteBuffer.put(pData, 0, ETC1.ETC_PKM_HEADER_SIZE);
this.mDataByteBuffer.position(0);
if (!ETC1.isValid(this.mDataByteBuffer)) {
throw new IllegalArgumentException("Invalid " + this.getClass().getSimpleName() + "!");
}
this.mWidth = ETC1.getWidth(this.mDataByteBuffer);
this.mHeight = ETC1.getHeight(this.mDataByteBuffer);
}
示例3: createTexture
/**
* Create a new ETC2Texture from an input stream containing a PKM formatted compressed texture.
*
* @param input an input stream containing a PKM formatted compressed texture.
*
* @return an ETC2Texture read from the input stream.
* @throws IOException
*/
public static ETC2Texture createTexture(InputStream input) throws IOException {
int width = 0;
int height = 0;
int format = -1;
byte[] ioBuffer = new byte[4096];
// We can use the ETC1 header size as it is the same
if (input.read(ioBuffer, 0, ETC1.ETC_PKM_HEADER_SIZE) != ETC1.ETC_PKM_HEADER_SIZE) {
throw new IOException("Unable to read PKM file header.");
}
final ByteBuffer headerBuffer = ByteBuffer.allocateDirect(ETC1.ETC_PKM_HEADER_SIZE)
.order(ByteOrder.BIG_ENDIAN);
headerBuffer.put(ioBuffer, 0, ETC1.ETC_PKM_HEADER_SIZE).position(0);
if (!ETC2.isValid(headerBuffer)) {
throw new IOException("Not a PKM file.");
}
width = ETC2.getWidth(headerBuffer);
height = ETC2.getHeight(headerBuffer);
format = ETC2.getETC2CompressionType(headerBuffer);
final int encodedSize = ETC2.getEncodedDataSize(width, height);
final ByteBuffer dataBuffer = ByteBuffer.allocateDirect(encodedSize).order(ByteOrder.BIG_ENDIAN);
for (int i = 0; i < encodedSize; ) {
int chunkSize = Math.min(ioBuffer.length, encodedSize - i);
if (input.read(ioBuffer, 0, chunkSize) != chunkSize) {
throw new IOException("Unable to read PKM file data.");
}
dataBuffer.put(ioBuffer, 0, chunkSize);
i += chunkSize;
}
dataBuffer.position(0);
return new ETC2Texture(format, width, height, dataBuffer);
}
示例4: createTexture
/**
* Create a new ETC1Texture from an input stream containing a PKM formatted compressed texture.
* @param input an input stream containing a PKM formatted compressed texture.
* @return an ETC1Texture read from the input stream.
* @throws IOException
*/
public static ETC1Texture createTexture(InputStream input) throws IOException {
int width = 0;
int height = 0;
byte[] ioBuffer = new byte[4096];
{
if (input.read(ioBuffer, 0, ETC1.ETC_PKM_HEADER_SIZE) != ETC1.ETC_PKM_HEADER_SIZE) {
throw new IOException("Unable to read PKM file header.");
}
ByteBuffer headerBuffer = ByteBuffer.allocateDirect(ETC1.ETC_PKM_HEADER_SIZE)
.order(ByteOrder.nativeOrder());
headerBuffer.put(ioBuffer, 0, ETC1.ETC_PKM_HEADER_SIZE).position(0);
if (!ETC1.isValid(headerBuffer)) {
throw new IOException("Not a PKM file.");
}
width = ETC1.getWidth(headerBuffer);
height = ETC1.getHeight(headerBuffer);
}
int encodedSize = ETC1.getEncodedDataSize(width, height);
ByteBuffer dataBuffer = ByteBuffer.allocateDirect(encodedSize).order(ByteOrder.nativeOrder());
for (int i = 0; i < encodedSize; ) {
int chunkSize = Math.min(ioBuffer.length, encodedSize - i);
if (input.read(ioBuffer, 0, chunkSize) != chunkSize) {
throw new IOException("Unable to read PKM file data.");
}
dataBuffer.put(ioBuffer, 0, chunkSize);
i += chunkSize;
}
dataBuffer.position(0);
return new ETC1Texture(width, height, dataBuffer);
}