示例#1
0
	int main(int Extent)
	{
		int Error = 0;

		gli::texture2d TextureSource(gli::FORMAT_R8_UNORM_PACK8, gli::texture2d::extent_type(Extent));
		TextureSource.clear(gli::u8(255));

		std::clock_t TimeBegin = std::clock();

		gli::texture2d TextureMipmaps = gli::generate_mipmaps(TextureSource, gli::FILTER_LINEAR);
		Error = *TextureMipmaps.data<glm::u8>(0, 0, TextureMipmaps.max_level()) == gli::u8(255) ? 0 : 1;

		std::clock_t TimeEnd = std::clock();

		printf("2D texture generate mipmaps linear performance test: %d\n", TimeEnd - TimeBegin);

		return Error;
	}
bool convert_rgb32f_rgb9e5(const char* FilenameSrc, const char* FilenameDst)
{
	if(FilenameDst == NULL)
		return false;
	if(std::strstr(FilenameDst, ".dds") > 0 || std::strstr(FilenameDst, ".ktx") > 0)
		return false;

	gli::texture2d TextureSource(gli::load(FilenameSrc));
	if(TextureSource.empty())
		return false;
	if(TextureSource.format() != gli::FORMAT_RGB16_SFLOAT_PACK16 && TextureSource.format() != gli::FORMAT_RGB32_SFLOAT_PACK32)
		return false;

	gli::texture2d TextureMipmaped = gli::generate_mipmaps(TextureSource, gli::FILTER_LINEAR);

	gli::texture2d TextureConverted = gli::convert(TextureMipmaped, gli::FORMAT_RGB9E5_UFLOAT_PACK32);

	gli::save(TextureConverted, FilenameDst);

	return true;
}