clean project
This commit is contained in:
70
Assets/Oculus/Avatar/Scripts/OvrAvatarAssetTexture.cs
Normal file
70
Assets/Oculus/Avatar/Scripts/OvrAvatarAssetTexture.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
using System;
|
||||
using Oculus.Avatar;
|
||||
using UnityEngine;
|
||||
|
||||
public class OvrAvatarAssetTexture : OvrAvatarAsset
|
||||
{
|
||||
public Texture2D texture;
|
||||
private const int ASTCHeaderSize = 16;
|
||||
|
||||
public OvrAvatarAssetTexture(UInt64 _assetId, IntPtr asset) {
|
||||
assetID = _assetId;
|
||||
ovrAvatarTextureAssetData textureAssetData = CAPI.ovrAvatarAsset_GetTextureData(asset);
|
||||
TextureFormat format;
|
||||
IntPtr textureData = textureAssetData.textureData;
|
||||
int textureDataSize = (int)textureAssetData.textureDataSize;
|
||||
|
||||
AvatarLogger.Log(
|
||||
"OvrAvatarAssetTexture - "
|
||||
+ _assetId
|
||||
+ ": "
|
||||
+ textureAssetData.format.ToString()
|
||||
+ " "
|
||||
+ textureAssetData.sizeX
|
||||
+ "x"
|
||||
+ textureAssetData.sizeY);
|
||||
|
||||
switch (textureAssetData.format)
|
||||
{
|
||||
case ovrAvatarTextureFormat.RGB24:
|
||||
format = TextureFormat.RGB24;
|
||||
break;
|
||||
case ovrAvatarTextureFormat.DXT1:
|
||||
format = TextureFormat.DXT1;
|
||||
break;
|
||||
case ovrAvatarTextureFormat.DXT5:
|
||||
format = TextureFormat.DXT5;
|
||||
break;
|
||||
case ovrAvatarTextureFormat.ASTC_RGB_6x6:
|
||||
#if UNITY_2020_1_OR_NEWER
|
||||
format = TextureFormat.ASTC_6x6;
|
||||
#else
|
||||
format = TextureFormat.ASTC_RGB_6x6;
|
||||
#endif
|
||||
textureData = new IntPtr(textureData.ToInt64() + ASTCHeaderSize);
|
||||
textureDataSize -= ASTCHeaderSize;
|
||||
break;
|
||||
case ovrAvatarTextureFormat.ASTC_RGB_6x6_MIPMAPS:
|
||||
#if UNITY_2020_1_OR_NEWER
|
||||
format = TextureFormat.ASTC_6x6;
|
||||
#else
|
||||
format = TextureFormat.ASTC_RGB_6x6;
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
throw new NotImplementedException(
|
||||
string.Format("Unsupported texture format {0}",
|
||||
textureAssetData.format.ToString()));
|
||||
}
|
||||
texture = new Texture2D(
|
||||
(int)textureAssetData.sizeX, (int)textureAssetData.sizeY,
|
||||
format, textureAssetData.mipCount > 1,
|
||||
QualitySettings.activeColorSpace == ColorSpace.Gamma ? false : true)
|
||||
{
|
||||
filterMode = FilterMode.Trilinear,
|
||||
anisoLevel = 4,
|
||||
};
|
||||
texture.LoadRawTextureData(textureData, textureDataSize);
|
||||
texture.Apply(true, false);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user