public OvrAvatarAssetTexture(UInt64 _assetId, IntPtr asset) { assetID = _assetId; ovrAvatarTextureAssetData textureAssetData = CAPI.ovrAvatarAsset_GetTextureData(asset); TextureFormat format; switch (textureAssetData.format) { case ovrAvatarTextureFormat.RGB24: format = TextureFormat.RGB24; break; case ovrAvatarTextureFormat.DXT1: format = TextureFormat.DXT1; break; case ovrAvatarTextureFormat.DXT5: format = TextureFormat.DXT5; 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, false); texture.LoadRawTextureData( textureAssetData.textureData, (int)textureAssetData.textureDataSize); texture.Apply(true, true); }
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: format = TextureFormat.ASTC_6x6; textureData = new IntPtr(textureData.ToInt64() + ASTCHeaderSize); textureDataSize -= ASTCHeaderSize; break; case ovrAvatarTextureFormat.ASTC_RGB_6x6_MIPMAPS: format = TextureFormat.ASTC_6x6; 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); }
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: 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: format = TextureFormat.ASTC_RGB_6x6: textureData = new IntPtr(textureData.ToInt64() + ASTCHeaderSize): textureDataSize -= ASTCHeaderSize: break: case ovrAvatarTextureFormat.ASTC_RGB_6x6_MIPMAPS: format = TextureFormat.ASTC_RGB_6x6: 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, false): texture.LoadRawTextureData(textureData, textureDataSize): texture.Apply(true, false): }