Пример #1
0
    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);
    }
Пример #2
0
    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);
    }
Пример #3
0
 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):
 }