fixed some bug

This commit is contained in:
Perfare 2016-10-25 18:40:09 +08:00
parent 0df3b54499
commit 4b8b8fb8ea
2 changed files with 12 additions and 32 deletions

View File

@ -191,7 +191,7 @@ namespace Unity_Studio
dwRBitMask = 0x0; dwRBitMask = 0x0;
dwGBitMask = 0x0; dwGBitMask = 0x0;
dwBBitMask = 0x0; dwBBitMask = 0x0;
dwABitMask = 0x0; *///透明通道丢失? dwABitMask = 0xFF; *///透明通道丢失?
//转ARGB32 //转ARGB32
var bytes = Enumerable.Repeat<byte>(0xFF, image_data_size * 4).ToArray(); var bytes = Enumerable.Repeat<byte>(0xFF, image_data_size * 4).ToArray();
for (int i = 0; i < image_data_size; i++) for (int i = 0; i < image_data_size; i++)
@ -281,7 +281,7 @@ namespace Unity_Studio
} }
case TextureFormat.R16: case TextureFormat.R16:
break; break;
case TextureFormat.DXT1: //DXT1 case TextureFormat.DXT1: //test pass
{ {
if (sourceFile.platform == 11) //X360 only, PS3 not if (sourceFile.platform == 11) //X360 only, PS3 not
{ {
@ -303,7 +303,7 @@ namespace Unity_Studio
dwABitMask = 0x0; dwABitMask = 0x0;
break; break;
} }
case TextureFormat.DXT5: //DXT5 case TextureFormat.DXT5: //test pass
{ {
if (sourceFile.platform == 11) //X360, PS3 not if (sourceFile.platform == 11) //X360, PS3 not
{ {
@ -687,14 +687,4 @@ public class KTXHeader
public static int GL_RGB = 0x1907; public static int GL_RGB = 0x1907;
public static int GL_RGBA = 0x1908; public static int GL_RGBA = 0x1908;
public static int GL_RG = 0x8227; public static int GL_RG = 0x8227;
public static int getMipMapCount(int width, int height)
{
int mipMapCount = 1;
for (int dim = Math.Max(width, height); dim > 1; dim /= 2)
{
mipMapCount++;
}
return mipMapCount;
}
} }

View File

@ -768,7 +768,7 @@ namespace Unity_Studio
} }
if (exportable) if (exportable)
{ {
if (!exportableAssetsHash.Add(asset.TypeString + asset.Text)) if (!exportableAssetsHash.Add((asset.TypeString + asset.Text).ToUpper()))
{ {
asset.Text += " #" + asset.uniqueID; asset.Text += " #" + asset.uniqueID;
} }
@ -3127,8 +3127,9 @@ namespace Unity_Studio
private bool ExportTexture(AssetPreloadData asset, string exportFilename, string exportFileextension, bool flip) private bool ExportTexture(AssetPreloadData asset, string exportFilename, string exportFileextension, bool flip)
{ {
ImageFormat format = null; ImageFormat format = null;
var convert = (bool)Properties.Settings.Default["convertTexture"];
var oldextension = exportFileextension; var oldextension = exportFileextension;
if ((bool)Properties.Settings.Default["convertTexture"]) if (convert && (exportFileextension == ".dds" || exportFileextension == ".pvr" || exportFileextension == ".astc"))
{ {
string str = Properties.Settings.Default["convertType"] as string; string str = Properties.Settings.Default["convertType"] as string;
exportFileextension = "." + str.ToLower(); exportFileextension = "." + str.ToLower();
@ -3140,18 +3141,13 @@ namespace Unity_Studio
format = ImageFormat.Jpeg; format = ImageFormat.Jpeg;
} }
var exportFullname = exportFilename + exportFileextension; var exportFullname = exportFilename + exportFileextension;
if (File.Exists(exportFullname)) if (ExportFileExists(exportFullname, "Texture2D"))
{
StatusStripUpdate("Texture2D file " + Path.GetFileName(exportFullname) + " already exists");
return false; return false;
}
Directory.CreateDirectory(Path.GetDirectoryName(exportFullname));
StatusStripUpdate("Exporting Texture2D: " + Path.GetFileName(exportFullname));
var m_Texture2D = new Texture2D(asset, true); var m_Texture2D = new Texture2D(asset, true);
if (oldextension == ".dds") if (oldextension == ".dds")
{ {
byte[] imageBuffer = Texture2DToDDS(m_Texture2D); byte[] imageBuffer = Texture2DToDDS(m_Texture2D);
if ((bool)Properties.Settings.Default["convertTexture"]) if (convert)
{ {
var bitmap = DDSToBMP(imageBuffer); var bitmap = DDSToBMP(imageBuffer);
if (flip) if (flip)
@ -3166,7 +3162,7 @@ namespace Unity_Studio
else if (oldextension == ".pvr") else if (oldextension == ".pvr")
{ {
var pvrdata = Texture2DToPVR(m_Texture2D); var pvrdata = Texture2DToPVR(m_Texture2D);
if ((bool)Properties.Settings.Default["convertTexture"]) if (convert)
{ {
var bitmap = new Bitmap(m_Texture2D.m_Width, m_Texture2D.m_Height); var bitmap = new Bitmap(m_Texture2D.m_Width, m_Texture2D.m_Height);
Rectangle rect = new Rectangle(0, 0, m_Texture2D.m_Width, m_Texture2D.m_Height); Rectangle rect = new Rectangle(0, 0, m_Texture2D.m_Width, m_Texture2D.m_Height);
@ -3186,7 +3182,7 @@ namespace Unity_Studio
else if (oldextension == ".astc") else if (oldextension == ".astc")
{ {
var astcdata = Texture2DToASTC(m_Texture2D); var astcdata = Texture2DToASTC(m_Texture2D);
if ((bool)Properties.Settings.Default["convertTexture"]) if (convert)
{ {
string tempastcfilepath = Path.GetTempFileName(); string tempastcfilepath = Path.GetTempFileName();
string temptgafilepath = tempastcfilepath.Replace(".tmp", ".tga"); string temptgafilepath = tempastcfilepath.Replace(".tmp", ".tga");
@ -3228,13 +3224,8 @@ namespace Unity_Studio
exportFileextension = ".wav"; exportFileextension = ".wav";
} }
var exportFullname = exportFilename + exportFileextension; var exportFullname = exportFilename + exportFileextension;
if (File.Exists(exportFullname)) if (ExportFileExists(exportFullname, "AudioClip"))
{
StatusStripUpdate("AudioClip file " + Path.GetFileName(exportFullname) + " already exists");
return false; return false;
}
Directory.CreateDirectory(Path.GetDirectoryName(exportFullname));
StatusStripUpdate("Exporting AudioClip: " + Path.GetFileName(exportFullname));
var m_AudioClip = new AudioClip(asset, true); var m_AudioClip = new AudioClip(asset, true);
if ((bool)Properties.Settings.Default["convertfsb"] && oldextension == ".fsb") if ((bool)Properties.Settings.Default["convertfsb"] && oldextension == ".fsb")
{ {
@ -3301,7 +3292,7 @@ namespace Unity_Studio
} }
else else
{ {
File.WriteAllBytes(exportFilename, m_AudioClip.m_AudioData); File.WriteAllBytes(exportFullname, m_AudioClip.m_AudioData);
} }
return true; return true;
} }
@ -3329,7 +3320,6 @@ namespace Unity_Studio
else else
{ {
Directory.CreateDirectory(Path.GetDirectoryName(filename)); Directory.CreateDirectory(Path.GetDirectoryName(filename));
StatusStripUpdate("Exporting " + assetType + ": " + Path.GetFileName(filename)); StatusStripUpdate("Exporting " + assetType + ": " + Path.GetFileName(filename));
return false; return false;
} }