private KtxMipmap CreateMipMap(byte[] data, Size mipSize) { var mip = new KtxMipmap((uint)data.Length, (uint)mipSize.Width, (uint)mipSize.Height, 1); mip.Faces[0] = new KtxMipFace(data, (uint)mipSize.Width, (uint)mipSize.Height); return(mip); }
private ulong GetTotalSize() { ulong totalSize = 0; for (int mipLevel = 0; mipLevel < Header.NumberOfMipmapLevels; mipLevel++) { for (int face = 0; face < Header.NumberOfFaces; face++) { KtxMipmap mipmap = Faces[face].Mipmaps[mipLevel]; totalSize += mipmap.SizeInBytes; } } return(totalSize); }
private byte[] GetAllTextureData() { byte[] result = new byte[GetTotalSize()]; uint start = 0; for (int face = 0; face < Header.NumberOfFaces; face++) { for (int mipLevel = 0; mipLevel < Header.NumberOfMipmapLevels; mipLevel++) { KtxMipmap mipmap = Faces[face].Mipmaps[mipLevel]; mipmap.Data.CopyTo(result, (int)start); start += mipmap.SizeInBytes; } } return(result); }