using UnityEngine;
namespace VRMShaders
{
///
/// Texture2D を入力として byte[] を得る機能
///
public interface ITextureSerializer
{
///
/// Texture をファイルのバイト列そのまま出力してよいかどうか判断する。
///
/// exportColorSpace はその Texture2D がアサインされる glTF プロパティの仕様が定める色空間を指定する。
/// Runtime 出力では常に false が望ましい。
///
bool CanExportAsEditorAssetFile(Texture texture, ColorSpace exportColorSpace);
///
/// Texture2D から実際のバイト列を取得する。
///
/// exportColorSpace はその Texture2D がアサインされる glTF プロパティの仕様が定める色空間を指定する。
/// 具体的には Texture2D をコピーする際に、コピー先の Texture2D の色空間を決定するために使用する。
///
(byte[] bytes, string mime) ExportBytesWithMime(Texture2D texture, ColorSpace exportColorSpace);
///
/// エクスポートに使用したい Texture に対して、事前準備を行う。
///
/// たとえば UnityEditor においては、Texture Asset の圧縮設定を OFF にしたりしたい。
///
void ModifyTextureAssetBeforeExporting(Texture texture);
}
}