void TextureConverterCell::SetTexture(const String &texturePath) { String textureWorkingPath = texturePath; String path, filename; FileSystem::SplitPath(textureWorkingPath, path, filename); textureFormat->SetText(L""); textureSize->SetText(L""); textureName->SetText(StringToWString(filename)); Texture *texture = Texture::CreateFromFile(textureWorkingPath); Sprite *s = Sprite::CreateFromTexture(texture, 0, 0, (float32)texture->width, (float32)texture->height); preview->SetSprite(s, 0); String ext = FileSystem::GetExtension(filename); if(".png" == ext) { String pngFormat = Texture::GetPixelFormatString(texture->format); String pvrPath = FileSystem::ReplaceExtension(textureWorkingPath, ".pvr"); Texture *pvrTex = Texture::CreateFromFile(pvrPath); if(pvrTex) { PixelFormat format = LibPVRHelper::GetPixelFormat(pvrPath); uint32 pvrDataSize = LibPVRHelper::GetDataLength(pvrPath); String pvrFormat = Texture::GetPixelFormatString(format); textureFormat->SetText(StringToWString(pngFormat + "/" + pvrFormat)); textureSize->SetText(SizeInBytesToWideString(pvrDataSize)); SafeRelease(pvrTex); } else { textureFormat->SetText(StringToWString(pngFormat)); } } else if(".pvr" == ext) { PixelFormat format = LibPVRHelper::GetPixelFormat(textureWorkingPath); uint32 pvrDataSize = LibPVRHelper::GetDataLength(textureWorkingPath); String pvrFormat = Texture::GetPixelFormatString(format); textureSize->SetText(SizeInBytesToWideString(pvrDataSize)); String pngPath = FileSystem::ReplaceExtension(textureWorkingPath, ".pvr"); Texture *pngTex = Texture::CreateFromFile(pngPath); if(pngTex) { String pngFormat = Texture::GetPixelFormatString(pngTex->format); textureFormat->SetText(StringToWString(pngFormat + "/" + pvrFormat)); SafeRelease(pngTex); } else { textureFormat->SetText(StringToWString(pvrFormat)); } } textureDimensions->SetText(Format(L"%d x %d", texture->width, texture->height)); SafeRelease(texture); SafeRelease(s); }
void TextureConverterCell::SetTexture(const FilePath &texturePath) { textureFormat->SetText(L""); textureSize->SetText(L""); textureName->SetText(StringToWString(texturePath.GetFilename())); Texture *texture = Texture::CreateFromFile(texturePath); Sprite *s = Sprite::CreateFromTexture(texture, 0, 0, (float32)texture->width, (float32)texture->height); preview->SetSprite(s, 0); if(texturePath.IsEqualToExtension(".png")) { String pngFormat = Texture::GetPixelFormatString(texture->format); FilePath pvrPath = FilePath::CreateWithNewExtension(texturePath, ".pvr"); Texture *pvrTex = Texture::CreateFromFile(pvrPath); if(pvrTex) { PixelFormat format = LibPVRHelper::GetPixelFormat(pvrPath); uint32 pvrDataSize = LibPVRHelper::GetDataSize(pvrPath); String pvrFormat = Texture::GetPixelFormatString(format); textureFormat->SetText(StringToWString(pngFormat + "/" + pvrFormat)); textureSize->SetText(SizeInBytesToWideString(pvrDataSize)); SafeRelease(pvrTex); } else { textureFormat->SetText(StringToWString(pngFormat)); } } else if(texturePath.IsEqualToExtension(".pvr")) { PixelFormat format = LibPVRHelper::GetPixelFormat(texturePath); uint32 pvrDataSize = LibPVRHelper::GetDataSize(texturePath); String pvrFormat = Texture::GetPixelFormatString(format); textureSize->SetText(SizeInBytesToWideString(pvrDataSize)); FilePath pngPath = FilePath::CreateWithNewExtension(texturePath, ".png"); Texture *pngTex = Texture::CreateFromFile(pngPath); if(pngTex) { String pngFormat = Texture::GetPixelFormatString(pngTex->format); textureFormat->SetText(StringToWString(pngFormat + "/" + pvrFormat)); SafeRelease(pngTex); } else { textureFormat->SetText(StringToWString(pvrFormat)); } } textureDimensions->SetText(Format(L"%d x %d", texture->width, texture->height)); SafeRelease(texture); SafeRelease(s); }