From 3717b8fea5eedbc102dfccca37554f837cf72b09 Mon Sep 17 00:00:00 2001 From: GON Date: Thu, 28 Oct 2021 21:03:44 +0900 Subject: [PATCH 01/49] wip --- Core | 2 +- Engine/AutoGeneratedCoreBindings.cs | 5749 +++++++++++++++------------ Engine/CorePartial/Buffer.cs | 88 + Test/ComputeShader.cs | 62 + 4 files changed, 3336 insertions(+), 2565 deletions(-) create mode 100644 Engine/CorePartial/Buffer.cs create mode 100644 Test/ComputeShader.cs diff --git a/Core b/Core index 03cd332d..2e38f656 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit 03cd332dcbca9afbdda989c5e09882697ff6145c +Subproject commit 2e38f656f9169826b8c2975bfe453c56481aacb1 diff --git a/Engine/AutoGeneratedCoreBindings.cs b/Engine/AutoGeneratedCoreBindings.cs index 4e93cef1..eb04b568 100644 --- a/Engine/AutoGeneratedCoreBindings.cs +++ b/Engine/AutoGeneratedCoreBindings.cs @@ -5,7 +5,7 @@ // このファイルへの変更は消失することがあります。 // // THIS FILE IS AUTO GENERATED. -// YOUR COMMITMENT ON THIS FILE WILL BE WIPED. +// YOUR COMMITMENT ON THIS FILE WILL BE WIPED. // // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -27,7 +27,7 @@ public MemoryHandle(IntPtr p) this.selfPtr = p; } } - + /// /// 音のスペクトル解析に使用する窓関数 /// @@ -41,7 +41,7 @@ public enum FFTWindow : int Blackman, BlackmanHarris, } - + /// /// ログレベルを表します。 /// @@ -56,7 +56,7 @@ public enum LogLevel : int Critical = 5, Off = 6, } - + /// /// ログの範囲を表します。 /// @@ -68,17 +68,18 @@ public enum LogCategory : int Engine = 2, User = 3, } - + /// - /// + /// /// [Serializable] public enum ShaderStage : int { Vertex = 0, Pixel = 1, + Compute = 2, } - + /// /// リソースの種類を表します。 /// @@ -92,7 +93,7 @@ public enum ResourceType : int Sound = 4, MAX = 5, } - + /// /// テクスチャをサンプリングする方法を表します。 /// @@ -102,7 +103,7 @@ public enum TextureWrapMode : int Clamp = 0, Repeat = 1, } - + /// /// テクスチャをフィルタリングする方法を表します。 /// @@ -112,9 +113,9 @@ public enum TextureFilter : int Nearest = 0, Linear = 1, } - + /// - /// + /// /// [Serializable] public enum TextureFormat : int @@ -129,9 +130,9 @@ public enum TextureFormat : int D32S8 = 13, D24S8 = 14, } - + /// - /// + /// /// [Serializable] public enum BlendEquation : int @@ -142,9 +143,9 @@ public enum BlendEquation : int Min = 3, Max = 4, } - + /// - /// + /// /// [Serializable] public enum BlendFunction : int @@ -160,7 +161,19 @@ public enum BlendFunction : int DstColor = 8, OneMinusDstColor = 9, } - + + /// + /// + /// + [Serializable] + public enum BufferUsageType : int + { + Index = 0, + Vertex = 1, + Constant = 2, + Compute = 3, + } + /// /// 描画方法を表します。 /// @@ -172,9 +185,9 @@ public enum GraphicsDevice : int Metal = 2, Vulkan = 3, } - + /// - /// + /// /// [Serializable] public enum CoreModules : int @@ -193,7 +206,7 @@ public enum CoreModules : int Default = 191, RequireFile = 226, } - + /// /// フレームレートモード /// @@ -203,7 +216,7 @@ public enum FramerateMode : int Variable = 0, Constant = 1, } - + /// /// ビルド済みシェーダの種類を表します /// @@ -214,9 +227,23 @@ public enum BuiltinShaderType : int SpriteUnlitPS = 1, FontUnlitPS = 2, } - + + /// + /// + /// + [Serializable] + public enum VertexLayoutFormat : int + { + R32G32B32_FLOAT = 0, + R32G32B32A32_FLOAT = 1, + R8G8B8A8_UNORM = 2, + R8G8B8A8_UINT = 3, + R32G32_FLOAT = 4, + R32_FLOAT = 5, + } + /// - /// + /// /// [Serializable] public enum RenderTargetCareType : int @@ -224,7 +251,7 @@ public enum RenderTargetCareType : int DontCare = 0, Clear = 1, } - + /// /// テキストの描画方向 /// @@ -234,7 +261,7 @@ public enum WritingDirection : int Vertical = 0, Horizontal = 1, } - + /// /// ボタンの押下状態を表します。 /// @@ -246,7 +273,7 @@ public enum ButtonState : int Release = 2, Hold = 3, } - + /// /// ジョイスティックの種類を表します。 /// @@ -262,7 +289,7 @@ public enum JoystickType : int JoyconR = 8199, ProController = 8201, } - + /// /// ジョイスティックのボタンの種類を表します。 /// @@ -285,7 +312,7 @@ public enum JoystickButton : int DPadDown = 13, DPadLeft = 14, } - + /// /// ジョイスティックの軸の種類を表します。 /// @@ -299,7 +326,7 @@ public enum JoystickAxis : int LeftTrigger = 4, RightTrigger = 5, } - + /// /// キーボードのキーの種類を表します。 /// @@ -430,7 +457,7 @@ public enum Key : int Last = 121, MAX = 122, } - + /// /// マウスのボタンの種類を表します。 /// @@ -446,7 +473,7 @@ public enum MouseButton : int SubButton4 = 6, SubButton5 = 7, } - + /// /// カーソルの状態を表します。 /// @@ -457,7 +484,7 @@ public enum CursorMode : int Hidden = 212994, Disable = 212995, } - + /// /// ツール機能を使ってフォントを読み込む際の範囲を指定します。ビット演算は行わないでください。 /// @@ -472,7 +499,7 @@ public enum ToolGlyphRange : int Korean = 5, Thai = 6, } - + /// /// ツール機能の使用方法(描画位置) /// @@ -482,7 +509,7 @@ public enum ToolUsage : int Overwrapped = 0, Main = 1, } - + /// /// ツール機能のウィンドウにおける設定を表します /// @@ -522,7 +549,7 @@ public enum ToolWindowFlags : int ChildMenu = 268435456, DockNodeHost = 536870912, } - + /// /// ツール機能においてインプットされるテキストの設定を表します /// @@ -553,7 +580,7 @@ public enum ToolInputTextFlags : int Multiline = 1048576, NoMarkEdited = 2097152, } - + /// /// ツール機能のTreeNodeに適用する設定を表します。 /// @@ -577,9 +604,9 @@ public enum ToolTreeNodeFlags : int SpanFullWidth = 4096, NavLeftJumpsBackHere = 8192, } - + /// - /// + /// /// [Serializable] public enum ToolPopupFlags : int @@ -594,7 +621,7 @@ public enum ToolPopupFlags : int AnyPopupLevel = 256, AnyPopup = 384, } - + /// /// ツール機能のSelectableに適用する設定を表します。 /// @@ -608,7 +635,7 @@ public enum ToolSelectableFlags : int Disabled = 8, AllowItemOverlap = 16, } - + /// /// ツール機能のBeginComboに適用する設定を表します。 /// @@ -624,7 +651,7 @@ public enum ToolComboFlags : int NoArrowButton = 32, NoPreview = 64, } - + /// /// ツール機能のタブバーにおける設定を表します /// @@ -641,9 +668,9 @@ public enum ToolTabBarFlags : int FittingPolicyResizeDown = 64, FittingPolicyScroll = 128, } - + /// - /// + /// /// [Serializable] public enum ToolTabItemFlags : int @@ -658,9 +685,9 @@ public enum ToolTabItemFlags : int Leading = 64, Trailing = 128, } - + /// - /// + /// /// [Serializable] public enum ToolFocusedFlags : int @@ -671,9 +698,9 @@ public enum ToolFocusedFlags : int RootAndChildWindows = 3, AnyWindow = 4, } - + /// - /// + /// /// [Serializable] public enum ToolHoveredFlags : int @@ -689,9 +716,9 @@ public enum ToolHoveredFlags : int RectOnly = 104, AllowWhenDisabled = 128, } - + /// - /// + /// /// [Serializable] public enum ToolDockNodeFlags : int @@ -704,9 +731,9 @@ public enum ToolDockNodeFlags : int NoResize = 32, AutoHideTabBar = 64, } - + /// - /// + /// /// [Serializable] public enum ToolDragDropFlags : int @@ -723,9 +750,9 @@ public enum ToolDragDropFlags : int AcceptPeekOnly = 3072, AcceptNoPreviewTooltip = 4096, } - + /// - /// + /// /// [Serializable] public enum ToolDataType : int @@ -742,7 +769,7 @@ public enum ToolDataType : int Double = 9, COUNT = 10, } - + /// /// ツール機能で使用する方向 /// @@ -756,9 +783,9 @@ public enum ToolDir : int Down = 3, COUNT = 5, } - + /// - /// + /// /// [Serializable] public enum ToolKey : int @@ -787,9 +814,9 @@ public enum ToolKey : int Z = 21, COUNT = 22, } - + /// - /// + /// /// [Serializable] public enum ToolKeyModFlags : int @@ -800,9 +827,9 @@ public enum ToolKeyModFlags : int Alt = 4, Super = 8, } - + /// - /// + /// /// [Serializable] public enum ToolNavInput : int @@ -825,9 +852,9 @@ public enum ToolNavInput : int TweakFast = 15, COUNT = 16, } - + /// - /// + /// /// [Serializable] public enum ToolConfigFlags : int @@ -846,9 +873,9 @@ public enum ToolConfigFlags : int IsSRGB = 1048576, IsTouchScreen = 2097152, } - + /// - /// + /// /// [Serializable] public enum ToolBackendFlags : int @@ -862,9 +889,9 @@ public enum ToolBackendFlags : int HasMouseHoveredViewport = 2048, RendererHasViewports = 4096, } - + /// - /// + /// /// [Serializable] public enum ToolCol : int @@ -921,9 +948,9 @@ public enum ToolCol : int ModalWindowDimBg = 49, COUNT = 50, } - + /// - /// + /// /// [Serializable] public enum ToolStyleVar : int @@ -953,9 +980,9 @@ public enum ToolStyleVar : int SelectableTextAlign = 22, COUNT = 23, } - + /// - /// + /// /// [Serializable] public enum ToolButtonFlags : int @@ -965,7 +992,7 @@ public enum ToolButtonFlags : int MouseButtonRight = 2, MouseButtonMiddle = 4, } - + /// /// ツール機能における色の設定を表します /// @@ -1002,9 +1029,9 @@ public enum ToolColorEditFlags : int InputHSV = 268435456, InputMask = 402653184, } - + /// - /// + /// /// [Serializable] public enum ToolSliderFlags : int @@ -1015,9 +1042,9 @@ public enum ToolSliderFlags : int NoRoundToFormat = 64, NoInput = 128, } - + /// - /// + /// /// [Serializable] public enum ToolMouseButton : int @@ -1027,9 +1054,9 @@ public enum ToolMouseButton : int Middle = 2, COUNT = 5, } - + /// - /// + /// /// [Serializable] public enum ToolMouseCursor : int @@ -1046,7 +1073,7 @@ public enum ToolMouseCursor : int NotAllowed = 9, COUNT = 10, } - + /// /// バイナリ演算子を使用して複数の値を結合しないでください /// @@ -1059,9 +1086,9 @@ public enum ToolCond : int FirstUseEver = 4, Appearing = 8, } - + /// - /// + /// /// [Serializable] public enum ToolDrawCornerFlags : int @@ -1077,9 +1104,9 @@ public enum ToolDrawCornerFlags : int Bot = 12, All = 15, } - + /// - /// + /// /// [Serializable] public enum ToolDrawListFlags : int @@ -1090,9 +1117,9 @@ public enum ToolDrawListFlags : int AntiAliasedFill = 4, AllowVtxOffset = 8, } - + /// - /// + /// /// [Serializable] public enum ToolFontAtlasFlags : int @@ -1102,9 +1129,9 @@ public enum ToolFontAtlasFlags : int NoMouseCursors = 2, NoBakedLines = 4, } - + /// - /// + /// /// [Serializable] public enum ToolViewportFlags : int @@ -1121,7 +1148,7 @@ public enum ToolViewportFlags : int NoAutoMerge = 256, CanHostOtherWindows = 512, } - + /// /// 8ビット整数の配列のクラスを表します。 /// @@ -1129,15 +1156,15 @@ public enum ToolViewportFlags : int internal sealed partial class Int8Array : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Int8Array TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Int8Array cacheRet; @@ -1152,63 +1179,63 @@ public static Int8Array TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Int8Array(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_Resize(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Int8Array_GetData(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_Assign(IntPtr selfPtr, IntPtr ptr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_CopyTo(IntPtr selfPtr, IntPtr ptr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern byte cbg_Int8Array_GetAt(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_SetAt(IntPtr selfPtr, int index, byte value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Int8Array_Create(int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Int8Array_GetCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Int8Array(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 格納されている要素の数を取得します。 /// @@ -1220,7 +1247,7 @@ public int Count return ret; } } - + /// /// データをクリアします。 /// @@ -1228,7 +1255,7 @@ internal void Clear() { cbg_Int8Array_Clear(selfPtr); } - + /// /// サイズを変更します。 /// @@ -1237,18 +1264,18 @@ public void Resize(int size) { cbg_Int8Array_Resize(selfPtr, size); } - + internal IntPtr GetData() { var ret = cbg_Int8Array_GetData(selfPtr); return ret; } - + public void Assign(IntPtr ptr, int size) { cbg_Int8Array_Assign(selfPtr, ptr, size); } - + /// /// データを指定したポインタにコピーします。 /// @@ -1257,7 +1284,7 @@ public void CopyTo(IntPtr ptr) { cbg_Int8Array_CopyTo(selfPtr, ptr); } - + /// /// インデックスアクセス /// @@ -1267,7 +1294,7 @@ internal byte GetAt(int index) var ret = cbg_Int8Array_GetAt(selfPtr, index); return ret; } - + /// /// インデックスアクセス /// @@ -1277,7 +1304,7 @@ internal void SetAt(int index, byte value) { cbg_Int8Array_SetAt(selfPtr, index, value); } - + /// /// インスタンスを作成します。 /// @@ -1287,15 +1314,15 @@ internal static Int8Array Create(int size) var ret = cbg_Int8Array_Create(size); return Int8Array.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Count = "S_Count"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -1305,14 +1332,14 @@ internal static Int8Array Create(int size) private Int8Array(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -1322,12 +1349,12 @@ private Int8Array(SerializationInfo info, StreamingContext context) : this(new M void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Count, Count); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -1335,7 +1362,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -1343,7 +1370,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -1352,7 +1379,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -1363,7 +1390,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -1374,12 +1401,12 @@ private void Int8Array_Unsetter_Deserialize(SerializationInfo info, out int Coun { Count = info.GetInt32(S_Count); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -1389,20 +1416,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Int8Array_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Int8Array() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -1412,7 +1439,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 32ビット整数の配列のクラスを表します。 /// @@ -1420,15 +1447,15 @@ IntPtr ICacheKeeper.Self internal sealed partial class Int32Array : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Int32Array TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Int32Array cacheRet; @@ -1443,63 +1470,63 @@ public static Int32Array TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Int32Array(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_Resize(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Int32Array_GetData(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_Assign(IntPtr selfPtr, IntPtr ptr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_CopyTo(IntPtr selfPtr, IntPtr ptr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Int32Array_GetAt(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_SetAt(IntPtr selfPtr, int index, int value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Int32Array_Create(int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Int32Array_GetCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Int32Array(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 格納されている要素の数を取得します。 /// @@ -1511,7 +1538,7 @@ public int Count return ret; } } - + /// /// データをクリアします。 /// @@ -1519,7 +1546,7 @@ internal void Clear() { cbg_Int32Array_Clear(selfPtr); } - + /// /// サイズを変更します。 /// @@ -1528,18 +1555,18 @@ public void Resize(int size) { cbg_Int32Array_Resize(selfPtr, size); } - + internal IntPtr GetData() { var ret = cbg_Int32Array_GetData(selfPtr); return ret; } - + public void Assign(IntPtr ptr, int size) { cbg_Int32Array_Assign(selfPtr, ptr, size); } - + /// /// データを指定したポインタにコピーします。 /// @@ -1548,7 +1575,7 @@ public void CopyTo(IntPtr ptr) { cbg_Int32Array_CopyTo(selfPtr, ptr); } - + /// /// インデックスアクセス /// @@ -1558,7 +1585,7 @@ internal int GetAt(int index) var ret = cbg_Int32Array_GetAt(selfPtr, index); return ret; } - + /// /// インデックスアクセス /// @@ -1568,7 +1595,7 @@ internal void SetAt(int index, int value) { cbg_Int32Array_SetAt(selfPtr, index, value); } - + /// /// インスタンスを作成します。 /// @@ -1578,15 +1605,15 @@ internal static Int32Array Create(int size) var ret = cbg_Int32Array_Create(size); return Int32Array.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Count = "S_Count"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -1596,14 +1623,14 @@ internal static Int32Array Create(int size) private Int32Array(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -1613,12 +1640,12 @@ private Int32Array(SerializationInfo info, StreamingContext context) : this(new void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Count, Count); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -1626,7 +1653,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -1634,7 +1661,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -1643,7 +1670,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -1654,7 +1681,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -1665,12 +1692,12 @@ private void Int32Array_Unsetter_Deserialize(SerializationInfo info, out int Cou { Count = info.GetInt32(S_Count); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -1680,20 +1707,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Int32Array_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Int32Array() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -1703,7 +1730,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 頂点データの配列のクラスを表します。 /// @@ -1711,15 +1738,15 @@ IntPtr ICacheKeeper.Self internal sealed partial class VertexArray : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static VertexArray TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { VertexArray cacheRet; @@ -1734,63 +1761,63 @@ public static VertexArray TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new VertexArray(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_Resize(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_VertexArray_GetData(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_Assign(IntPtr selfPtr, IntPtr ptr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_CopyTo(IntPtr selfPtr, IntPtr ptr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vertex cbg_VertexArray_GetAt(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_SetAt(IntPtr selfPtr, int index, Vertex value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_VertexArray_Create(int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_VertexArray_GetCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal VertexArray(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 格納されている要素の数を取得します。 /// @@ -1802,7 +1829,7 @@ public int Count return ret; } } - + /// /// データをクリアします。 /// @@ -1810,7 +1837,7 @@ internal void Clear() { cbg_VertexArray_Clear(selfPtr); } - + /// /// サイズを変更します。 /// @@ -1819,18 +1846,18 @@ public void Resize(int size) { cbg_VertexArray_Resize(selfPtr, size); } - + internal IntPtr GetData() { var ret = cbg_VertexArray_GetData(selfPtr); return ret; } - + public void Assign(IntPtr ptr, int size) { cbg_VertexArray_Assign(selfPtr, ptr, size); } - + /// /// データを指定したポインタにコピーします。 /// @@ -1839,7 +1866,7 @@ public void CopyTo(IntPtr ptr) { cbg_VertexArray_CopyTo(selfPtr, ptr); } - + /// /// インデックスアクセス /// @@ -1849,7 +1876,7 @@ internal Vertex GetAt(int index) var ret = cbg_VertexArray_GetAt(selfPtr, index); return ret; } - + /// /// インデックスアクセス /// @@ -1859,7 +1886,7 @@ internal void SetAt(int index, Vertex value) { cbg_VertexArray_SetAt(selfPtr, index, value); } - + /// /// インスタンスを作成します。 /// @@ -1869,15 +1896,15 @@ internal static VertexArray Create(int size) var ret = cbg_VertexArray_Create(size); return VertexArray.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Count = "S_Count"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -1887,14 +1914,14 @@ internal static VertexArray Create(int size) private VertexArray(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -1904,12 +1931,12 @@ private VertexArray(SerializationInfo info, StreamingContext context) : this(new void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Count, Count); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -1917,7 +1944,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -1925,7 +1952,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -1934,7 +1961,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -1945,7 +1972,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -1956,12 +1983,12 @@ private void VertexArray_Unsetter_Deserialize(SerializationInfo info, out int Co { Count = info.GetInt32(S_Count); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -1971,20 +1998,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_VertexArray_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~VertexArray() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -1994,7 +2021,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 浮動小数点数の配列のクラスを表します。 /// @@ -2002,15 +2029,15 @@ IntPtr ICacheKeeper.Self internal sealed partial class FloatArray : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static FloatArray TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { FloatArray cacheRet; @@ -2025,63 +2052,63 @@ public static FloatArray TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new FloatArray(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_Resize(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_FloatArray_GetData(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_Assign(IntPtr selfPtr, IntPtr ptr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_CopyTo(IntPtr selfPtr, IntPtr ptr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_FloatArray_GetAt(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_SetAt(IntPtr selfPtr, int index, float value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_FloatArray_Create(int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_FloatArray_GetCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal FloatArray(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 格納されている要素の数を取得します。 /// @@ -2093,7 +2120,7 @@ public int Count return ret; } } - + /// /// データをクリアします。 /// @@ -2101,7 +2128,7 @@ internal void Clear() { cbg_FloatArray_Clear(selfPtr); } - + /// /// サイズを変更します。 /// @@ -2110,18 +2137,18 @@ public void Resize(int size) { cbg_FloatArray_Resize(selfPtr, size); } - + internal IntPtr GetData() { var ret = cbg_FloatArray_GetData(selfPtr); return ret; } - + public void Assign(IntPtr ptr, int size) { cbg_FloatArray_Assign(selfPtr, ptr, size); } - + /// /// データを指定したポインタにコピーします。 /// @@ -2130,7 +2157,7 @@ public void CopyTo(IntPtr ptr) { cbg_FloatArray_CopyTo(selfPtr, ptr); } - + /// /// インデックスアクセス /// @@ -2140,7 +2167,7 @@ internal float GetAt(int index) var ret = cbg_FloatArray_GetAt(selfPtr, index); return ret; } - + /// /// インデックスアクセス /// @@ -2150,7 +2177,7 @@ internal void SetAt(int index, float value) { cbg_FloatArray_SetAt(selfPtr, index, value); } - + /// /// インスタンスを作成します。 /// @@ -2160,15 +2187,15 @@ internal static FloatArray Create(int size) var ret = cbg_FloatArray_Create(size); return FloatArray.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Count = "S_Count"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -2178,14 +2205,14 @@ internal static FloatArray Create(int size) private FloatArray(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -2195,12 +2222,12 @@ private FloatArray(SerializationInfo info, StreamingContext context) : this(new void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Count, Count); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -2208,7 +2235,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -2216,7 +2243,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -2225,7 +2252,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -2236,7 +2263,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -2247,12 +2274,12 @@ private void FloatArray_Unsetter_Deserialize(SerializationInfo info, out int Cou { Count = info.GetInt32(S_Count); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -2262,20 +2289,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_FloatArray_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~FloatArray() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -2285,7 +2312,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 2次元ベクトルの配列のクラスを表します。 /// @@ -2293,15 +2320,15 @@ IntPtr ICacheKeeper.Self internal sealed partial class Vector2FArray : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Vector2FArray TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Vector2FArray cacheRet; @@ -2316,63 +2343,63 @@ public static Vector2FArray TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Vector2FArray(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_Resize(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Vector2FArray_GetData(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_Assign(IntPtr selfPtr, IntPtr ptr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_CopyTo(IntPtr selfPtr, IntPtr ptr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Vector2FArray_GetAt(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_SetAt(IntPtr selfPtr, int index, Vector2F value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Vector2FArray_Create(int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Vector2FArray_GetCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Vector2FArray(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 格納されている要素の数を取得します。 /// @@ -2384,7 +2411,7 @@ public int Count return ret; } } - + /// /// データをクリアします。 /// @@ -2392,7 +2419,7 @@ internal void Clear() { cbg_Vector2FArray_Clear(selfPtr); } - + /// /// サイズを変更します。 /// @@ -2401,18 +2428,18 @@ public void Resize(int size) { cbg_Vector2FArray_Resize(selfPtr, size); } - + internal IntPtr GetData() { var ret = cbg_Vector2FArray_GetData(selfPtr); return ret; } - + public void Assign(IntPtr ptr, int size) { cbg_Vector2FArray_Assign(selfPtr, ptr, size); } - + /// /// データを指定したポインタにコピーします。 /// @@ -2421,7 +2448,7 @@ public void CopyTo(IntPtr ptr) { cbg_Vector2FArray_CopyTo(selfPtr, ptr); } - + /// /// インデックスアクセス /// @@ -2431,7 +2458,7 @@ internal Vector2F GetAt(int index) var ret = cbg_Vector2FArray_GetAt(selfPtr, index); return ret; } - + /// /// インデックスアクセス /// @@ -2441,7 +2468,7 @@ internal void SetAt(int index, Vector2F value) { cbg_Vector2FArray_SetAt(selfPtr, index, value); } - + /// /// インスタンスを作成します。 /// @@ -2451,15 +2478,15 @@ internal static Vector2FArray Create(int size) var ret = cbg_Vector2FArray_Create(size); return Vector2FArray.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Count = "S_Count"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -2469,14 +2496,14 @@ internal static Vector2FArray Create(int size) private Vector2FArray(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -2486,12 +2513,12 @@ private Vector2FArray(SerializationInfo info, StreamingContext context) : this(n void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Count, Count); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -2499,7 +2526,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -2507,7 +2534,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -2516,7 +2543,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -2527,7 +2554,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -2538,12 +2565,12 @@ private void Vector2FArray_Unsetter_Deserialize(SerializationInfo info, out int { Count = info.GetInt32(S_Count); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -2553,20 +2580,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Vector2FArray_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Vector2FArray() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -2576,22 +2603,22 @@ IntPtr ICacheKeeper.Self } } } - + /// /// ログを出力するクラス /// public sealed partial class Log { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Log TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Log cacheRet; @@ -2606,62 +2633,62 @@ public static Log TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Log(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Log_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Write(IntPtr selfPtr, int category, int level, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Trace(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Debug(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Info(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Warn(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Error(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Critical(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_SetLevel(IntPtr selfPtr, int category, int level); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Log(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// インスタンスを取得します。 /// @@ -2670,7 +2697,7 @@ internal static Log GetInstance() var ret = cbg_Log_GetInstance(); return Log.TryGetFromCache(ret); } - + /// /// ログを出力します。 /// @@ -2678,7 +2705,7 @@ public void Write(LogCategory category, LogLevel level, string message) { cbg_Log_Write(selfPtr, (int)category, (int)level, message); } - + /// /// でログを出力します。 /// @@ -2686,7 +2713,7 @@ public void Trace(LogCategory category, string message) { cbg_Log_Trace(selfPtr, (int)category, message); } - + /// /// でログを出力します。 /// @@ -2694,7 +2721,7 @@ public void Debug(LogCategory category, string message) { cbg_Log_Debug(selfPtr, (int)category, message); } - + /// /// でログを出力します。 /// @@ -2702,7 +2729,7 @@ public void Info(LogCategory category, string message) { cbg_Log_Info(selfPtr, (int)category, message); } - + /// /// でログを出力します。 /// @@ -2710,7 +2737,7 @@ public void Warn(LogCategory category, string message) { cbg_Log_Warn(selfPtr, (int)category, message); } - + /// /// でログを出力します。 /// @@ -2718,7 +2745,7 @@ public void Error(LogCategory category, string message) { cbg_Log_Error(selfPtr, (int)category, message); } - + /// /// でログを出力します。 /// @@ -2726,7 +2753,7 @@ public void Critical(LogCategory category, string message) { cbg_Log_Critical(selfPtr, (int)category, message); } - + /// /// ログレベルを設定します。 /// @@ -2734,13 +2761,13 @@ public void SetLevel(LogCategory category, LogLevel level) { cbg_Log_SetLevel(selfPtr, (int)category, (int)level); } - + /// /// のインスタンスを削除します。 /// ~Log() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -2750,22 +2777,22 @@ public void SetLevel(LogCategory category, LogLevel level) } } } - + /// /// C++のCoreとの仲介を担うクラス /// internal sealed partial class Core { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Core TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Core cacheRet; @@ -2780,79 +2807,79 @@ public static Core TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Core(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Core_PrintAllBaseObjectName(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Core_Initialize([MarshalAs(UnmanagedType.LPWStr)] string title, int width, int height, IntPtr config); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Core_Terminate(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Core_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Core_DoEvent(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Core_GetBaseObjectCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Core_GetDeltaSecond(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Core_GetCurrentFPS(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Core_GetTargetFPS(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Core_SetTargetFPS(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Core_GetFramerateMode(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Core_SetFramerateMode(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Core_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Core(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + internal int BaseObjectCount { get @@ -2861,7 +2888,7 @@ internal int BaseObjectCount return ret; } } - + /// /// 前のフレームからの経過時間(秒)を取得します。 /// @@ -2873,7 +2900,7 @@ internal float DeltaSecond return ret; } } - + /// /// 現在のFPSを取得します。 /// @@ -2885,7 +2912,7 @@ internal float CurrentFPS return ret; } } - + /// /// 目標のFPSを取得または設定します。 /// @@ -2907,7 +2934,7 @@ internal int TargetFPS } } private int? _TargetFPS; - + /// /// フレームレートモードを取得または設定します。デフォルトでは可変フレームレートです。 /// @@ -2929,7 +2956,7 @@ internal FramerateMode FramerateMode } } private FramerateMode? _FramerateMode; - + /// /// 全ての内部オブジェクトの名前を出力します。 /// @@ -2937,7 +2964,7 @@ internal void PrintAllBaseObjectName() { cbg_Core_PrintAllBaseObjectName(selfPtr); } - + /// /// 初期化処理を行います。 /// @@ -2950,7 +2977,7 @@ internal static bool Initialize(string title, int width, int height, Configurati var ret = cbg_Core_Initialize(title, width, height, config != null ? config.selfPtr : IntPtr.Zero); return ret; } - + /// /// 終了処理を行います。 /// @@ -2958,7 +2985,7 @@ internal static void Terminate() { cbg_Core_Terminate(); } - + /// /// インスタンスを取得します。 /// @@ -2967,7 +2994,7 @@ internal static Core GetInstance() var ret = cbg_Core_GetInstance(); return Core.TryGetFromCache(ret); } - + /// /// イベントを実行します。 /// @@ -2976,13 +3003,13 @@ internal bool DoEvent() var ret = cbg_Core_DoEvent(selfPtr); return ret; } - + /// /// のインスタンスを削除します。 /// ~Core() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -2992,22 +3019,22 @@ internal bool DoEvent() } } } - + /// - /// + /// /// internal sealed partial class Window { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Window TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Window cacheRet; @@ -3022,51 +3049,51 @@ public static Window TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Window(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Window_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Window_DoEvent(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Window_GetTitle(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Window_SetTitle(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_Window_GetSize(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Window_SetSize(IntPtr selfPtr, Vector2I value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Window_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Window(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// ウィンドウに表示するタイトルを取得または設定します /// @@ -3089,7 +3116,7 @@ internal string Title } } private string _Title; - + /// /// ウィンドウサイズを取得します /// @@ -3111,7 +3138,7 @@ internal Vector2I Size } } private Vector2I? _Size; - + /// /// インスタンスを取得します。 /// @@ -3120,19 +3147,19 @@ internal static Window GetInstance() var ret = cbg_Window_GetInstance(); return Window.TryGetFromCache(ret); } - + public bool DoEvent() { var ret = cbg_Window_DoEvent(selfPtr); return ret; } - + /// /// のインスタンスを削除します。 /// ~Window() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -3142,22 +3169,22 @@ public bool DoEvent() } } } - + /// /// シェーダのコンパイル結果を表すクラス /// internal sealed partial class ShaderCompileResult { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static ShaderCompileResult TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { ShaderCompileResult cacheRet; @@ -3172,36 +3199,36 @@ public static ShaderCompileResult TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new ShaderCompileResult(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ShaderCompileResult_GetValue(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ShaderCompileResult_GetMessage(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ShaderCompileResult_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal ShaderCompileResult(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// コンパイルに失敗した場合はnull /// @@ -3213,7 +3240,7 @@ internal Shader Value return Shader.TryGetFromCache(ret); } } - + /// /// コンパイル結果のメッセージ /// @@ -3225,13 +3252,13 @@ internal string Message return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// のインスタンスを削除します。 /// ~ShaderCompileResult() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -3241,7 +3268,7 @@ internal string Message } } } - + /// /// シェーダ /// @@ -3249,15 +3276,15 @@ internal string Message public sealed partial class Shader : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Shader TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Shader cacheRet; @@ -3272,54 +3299,54 @@ public static Shader TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Shader(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Shader_Compile([MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.LPWStr)] string code, int shaderStage); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Shader_CompileFromFile([MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.LPWStr)] string path, int shaderStage); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Shader_GetUniformSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Shader_GetCode(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Shader_GetName(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Shader_GetStageType(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Shader_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Shader(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public int UniformSize { get @@ -3328,7 +3355,7 @@ public int UniformSize return ret; } } - + /// /// インスタンス生成に使用したコードを取得します。 /// @@ -3340,7 +3367,7 @@ public string Code return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 名前を取得します。 /// @@ -3352,7 +3379,7 @@ public string Name return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// シェーダの種類を取得します。 /// @@ -3364,7 +3391,7 @@ public ShaderStage StageType return (ShaderStage)ret; } } - + /// /// コードをコンパイルしてシェーダを生成します。 /// @@ -3378,7 +3405,7 @@ internal static ShaderCompileResult Compile(string name, string code, ShaderStag var ret = cbg_Shader_Compile(name, code, (int)shaderStage); return ShaderCompileResult.TryGetFromCache(ret); } - + /// /// ファイルからコードをコンパイルしてシェーダを生成します。 /// @@ -3392,10 +3419,10 @@ internal static ShaderCompileResult CompileFromFile(string name, string path, Sh var ret = cbg_Shader_CompileFromFile(name, path, (int)shaderStage); return ShaderCompileResult.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Code = "S_Code"; @@ -3404,7 +3431,7 @@ internal static ShaderCompileResult CompileFromFile(string name, string path, Sh [EditorBrowsable(EditorBrowsableState.Never)] private const string S_StageType = "S_StageType"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -3414,14 +3441,14 @@ internal static ShaderCompileResult CompileFromFile(string name, string path, Sh private Shader(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -3431,14 +3458,14 @@ private Shader(SerializationInfo info, StreamingContext context) : this(new Memo void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Code, Code); info.AddValue(S_Name, Name); info.AddValue(S_StageType, StageType); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -3446,7 +3473,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -3454,7 +3481,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -3463,7 +3490,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -3474,7 +3501,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -3489,12 +3516,12 @@ private void Shader_Unsetter_Deserialize(SerializationInfo info, out string Code Name = info.GetString(S_Name); StageType = info.GetValue(S_StageType); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -3504,20 +3531,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Shader_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Shader() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -3527,22 +3554,22 @@ IntPtr ICacheKeeper.Self } } } - + /// /// リソースのクラスを表します。 /// internal sealed partial class Resources { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Resources TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Resources cacheRet; @@ -3557,42 +3584,42 @@ public static Resources TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Resources(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Resources_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Resources_GetResourcesCount(IntPtr selfPtr, int type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Resources_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Resources_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Resources_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Resources(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// インスタンスを取得します。 /// @@ -3601,7 +3628,7 @@ internal static Resources GetInstance() var ret = cbg_Resources_GetInstance(); return Resources.TryGetFromCache(ret); } - + /// /// 指定した種類のリソースの個数を返します。 /// @@ -3611,7 +3638,7 @@ internal int GetResourcesCount(ResourceType type) var ret = cbg_Resources_GetResourcesCount(selfPtr, (int)type); return ret; } - + /// /// 登録されたリソースをすべて削除します。 /// @@ -3619,7 +3646,7 @@ internal void Clear() { cbg_Resources_Clear(selfPtr); } - + /// /// リソースの再読み込みを行います。 /// @@ -3627,13 +3654,13 @@ internal void Reload() { cbg_Resources_Reload(selfPtr); } - + /// /// のインスタンスを削除します。 /// ~Resources() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -3643,7 +3670,7 @@ internal void Reload() } } } - + /// /// テクスチャのベースクラス /// @@ -3651,15 +3678,15 @@ internal void Reload() public partial class TextureBase : ISerializable, ICacheKeeper, IDeserializationCallback { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static TextureBase TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { TextureBase cacheRet; @@ -3674,57 +3701,57 @@ public static TextureBase TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new TextureBase(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_TextureBase_Save(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_TextureBase_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_TextureBase_GetWrapMode(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_TextureBase_SetWrapMode(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_TextureBase_GetFilterType(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_TextureBase_SetFilterType(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_TextureBase_GetFormat(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_TextureBase_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal TextureBase(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// テクスチャの大きさ(ピクセル)を取得します。 /// @@ -3736,7 +3763,7 @@ public Vector2I Size return ret; } } - + /// /// テクスチャをサンプリングする方法を取得または設定します。 /// @@ -3758,7 +3785,7 @@ public TextureWrapMode WrapMode } } private TextureWrapMode? _WrapMode; - + /// /// テクスチャをフィルタリングする方法を取得または設定します。 /// @@ -3780,7 +3807,7 @@ public TextureFilter FilterType } } private TextureFilter? _FilterType; - + /// /// テクスチャのフォーマットを取得します。 /// @@ -3792,7 +3819,7 @@ public TextureFormat Format return (TextureFormat)ret; } } - + /// /// png画像として保存します。 /// @@ -3804,10 +3831,10 @@ public bool Save(string path) var ret = cbg_TextureBase_Save(selfPtr, path); return ret; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Size = "S_Size"; @@ -3818,10 +3845,10 @@ public bool Save(string path) [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Format = "S_Format"; #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] private SerializationInfo seInfo; - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -3831,10 +3858,10 @@ public bool Save(string path) protected TextureBase(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { seInfo = info; - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -3844,17 +3871,17 @@ protected TextureBase(SerializationInfo info, StreamingContext context) : this(n protected virtual void GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Size, Size); info.AddValue(S_WrapMode, WrapMode); info.AddValue(S_FilterType, FilterType); info.AddValue(S_Format, Format); - + OnGetObjectData(info, context); } [EditorBrowsable(EditorBrowsableState.Never)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) => GetObjectData(info, context); - + /// /// 内で実行されます。 /// @@ -3862,7 +3889,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -3870,7 +3897,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出されます。 /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -3879,7 +3906,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -3890,7 +3917,7 @@ protected private virtual IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -3903,12 +3930,12 @@ protected private void TextureBase_Unsetter_Deserialize(SerializationInfo info, Size = info.GetValue(S_Size); Format = info.GetValue(S_Format); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -3918,14 +3945,14 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_TextureBase_Release(native); - + #endregion - + #endregion - + /// /// デシリアライズ時に実行 /// @@ -3934,17 +3961,17 @@ IntPtr ICacheKeeper.Self protected virtual void OnDeserialization(object sender) { if (seInfo == null) return; - + var ptr = Call_GetPtr(seInfo); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + WrapMode = seInfo.GetValue(S_WrapMode); FilterType = seInfo.GetValue(S_FilterType); - + OnDeserialize_Method(sender); - + seInfo = null; } [EditorBrowsable(EditorBrowsableState.Never)] @@ -3955,13 +3982,13 @@ protected virtual void OnDeserialization(object sender) /// 現在はサポートされていない 常にnullを返す [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Method(object sender); - + /// /// のインスタンスを削除します。 /// ~TextureBase() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -3971,22 +3998,22 @@ protected virtual void OnDeserialization(object sender) } } } - + /// - /// + /// /// public partial class MaterialPropertyBlock { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static MaterialPropertyBlock TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { MaterialPropertyBlock cacheRet; @@ -4001,95 +4028,95 @@ public static MaterialPropertyBlock TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new MaterialPropertyBlock(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector4F cbg_MaterialPropertyBlock_GetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlock_SetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Vector4F value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_MaterialPropertyBlock_GetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlock_SetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Matrix44F value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_MaterialPropertyBlock_GetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlock_SetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, IntPtr value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlock_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal MaterialPropertyBlock(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public Vector4F GetVector4F(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlock_GetVector4F(selfPtr, key); return ret; } - + public void SetVector4F(string key, Vector4F value) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); cbg_MaterialPropertyBlock_SetVector4F(selfPtr, key, value); } - + public Matrix44F GetMatrix44F(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlock_GetMatrix44F(selfPtr, key); return ret; } - + public void SetMatrix44F(string key, Matrix44F value) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); cbg_MaterialPropertyBlock_SetMatrix44F(selfPtr, key, value); } - + public TextureBase GetTexture(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlock_GetTexture(selfPtr, key); return TextureBase.TryGetFromCache(ret); } - + public void SetTexture(string key, TextureBase value) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); cbg_MaterialPropertyBlock_SetTexture(selfPtr, key, value != null ? value.selfPtr : IntPtr.Zero); } - + /// /// のインスタンスを削除します。 /// ~MaterialPropertyBlock() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -4099,22 +4126,22 @@ public void SetTexture(string key, TextureBase value) } } } - + /// - /// + /// /// public partial class MaterialPropertyBlockCollection { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static MaterialPropertyBlockCollection TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { MaterialPropertyBlockCollection cacheRet; @@ -4129,83 +4156,83 @@ public static MaterialPropertyBlockCollection TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new MaterialPropertyBlockCollection(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlockCollection_Add(IntPtr selfPtr, IntPtr block); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlockCollection_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector4F cbg_MaterialPropertyBlockCollection_GetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_MaterialPropertyBlockCollection_GetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_MaterialPropertyBlockCollection_GetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlockCollection_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal MaterialPropertyBlockCollection(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public void Add(MaterialPropertyBlock block) { cbg_MaterialPropertyBlockCollection_Add(selfPtr, block != null ? block.selfPtr : IntPtr.Zero); } - + public void Clear() { cbg_MaterialPropertyBlockCollection_Clear(selfPtr); } - + public Vector4F GetVector4F(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlockCollection_GetVector4F(selfPtr, key); return ret; } - + public Matrix44F GetMatrix44F(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlockCollection_GetMatrix44F(selfPtr, key); return ret; } - + public TextureBase GetTexture(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlockCollection_GetTexture(selfPtr, key); return TextureBase.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~MaterialPropertyBlockCollection() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -4215,7 +4242,7 @@ public TextureBase GetTexture(string key) } } } - + /// /// マテリアル /// @@ -4223,15 +4250,15 @@ public TextureBase GetTexture(string key) public sealed partial class Material : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Material TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Material cacheRet; @@ -4246,76 +4273,76 @@ public static Material TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Material(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Material_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector4F cbg_Material_GetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_SetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Vector4F value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_Material_GetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_SetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Matrix44F value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Material_GetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_SetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, IntPtr value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Material_GetShader(IntPtr selfPtr, int shaderStage); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_SetShader(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern AlphaBlend cbg_Material_GetAlphaBlend(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_SetAlphaBlend(IntPtr selfPtr, AlphaBlend value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Material_GetPropertyBlock(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Material(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public Shader Shader { set @@ -4323,7 +4350,7 @@ public Shader Shader cbg_Material_SetShader(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); } } - + /// /// 描画時のアルファブレンドを取得または設定します。 /// @@ -4345,7 +4372,7 @@ public AlphaBlend AlphaBlend } } private AlphaBlend? _AlphaBlend; - + public MaterialPropertyBlock PropertyBlock { get @@ -4354,7 +4381,7 @@ public MaterialPropertyBlock PropertyBlock return MaterialPropertyBlock.TryGetFromCache(ret); } } - + /// /// マテリアルを生成する /// @@ -4363,15 +4390,15 @@ public static Material Create() var ret = cbg_Material_Create(); return Material.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_AlphaBlend = "S_AlphaBlend"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -4381,15 +4408,15 @@ public static Material Create() private Material(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + AlphaBlend = info.GetValue(S_AlphaBlend); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -4399,12 +4426,12 @@ private Material(SerializationInfo info, StreamingContext context) : this(new Me void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_AlphaBlend, AlphaBlend); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -4412,7 +4439,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -4420,7 +4447,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -4429,7 +4456,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -4440,12 +4467,12 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -4455,20 +4482,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Material_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Material() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -4478,7 +4505,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// テクスチャのクラス /// @@ -4486,15 +4513,15 @@ IntPtr ICacheKeeper.Self public sealed partial class Texture2D : TextureBase, ISerializable, ICacheKeeper, IDeserializationCallback { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new Texture2D TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Texture2D cacheRet; @@ -4509,42 +4536,42 @@ public sealed partial class Texture2D : TextureBase, ISerializable, ICacheKeeper cacheRepo.Remove(native); } } - + var newObject = new Texture2D(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Texture2D_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Texture2D_Load([MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Texture2D_Create(Vector2I size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Texture2D_GetPath(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Texture2D_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Texture2D(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 読み込んだファイルのパスを取得します。 /// @@ -4556,7 +4583,7 @@ internal string Path return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 再読み込みを行います。 /// @@ -4565,7 +4592,7 @@ public bool Reload() var ret = cbg_Texture2D_Reload(selfPtr); return ret; } - + /// /// 指定したファイルからテクスチャを読み込みます。 /// @@ -4577,24 +4604,24 @@ public static Texture2D Load(string path) var ret = cbg_Texture2D_Load(path); return Texture2D.TryGetFromCache(ret); } - + public static Texture2D Create(Vector2I size) { var ret = cbg_Texture2D_Create(size); return Texture2D.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Path = "S_Path"; #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] private SerializationInfo seInfo; - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -4604,10 +4631,10 @@ public static Texture2D Create(Vector2I size) private Texture2D(SerializationInfo info, StreamingContext context) : base(info, context) { seInfo = info; - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -4617,12 +4644,12 @@ private Texture2D(SerializationInfo info, StreamingContext context) : base(info, protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_Path, Path); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -4630,7 +4657,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -4638,7 +4665,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出されます。 /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -4647,7 +4674,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -4658,7 +4685,7 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -4669,12 +4696,12 @@ private void Texture2D_Unsetter_Deserialize(SerializationInfo info, out string P { Path = info.GetString(S_Path) ?? throw new SerializationException("デシリアライズに失敗しました"); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -4684,14 +4711,14 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Texture2D_Release(native); - + #endregion - + #endregion - + /// /// デシリアライズ時に実行 /// @@ -4700,17 +4727,17 @@ IntPtr ICacheKeeper.Self protected override void OnDeserialization(object sender) { if (seInfo == null) return; - + var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(seInfo); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + base.OnDeserialization(sender); - + OnDeserialize_Method(sender); - + seInfo = null; } /// @@ -4719,13 +4746,13 @@ protected override void OnDeserialization(object sender) /// 現在はサポートされていない 常にnullを返す [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Method(object sender); - + /// /// のインスタンスを削除します。 /// ~Texture2D() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -4735,22 +4762,154 @@ protected override void OnDeserialization(object sender) } } } - + + /// + /// + /// + public partial class Buffer + { + #region unmanaged + + [EditorBrowsable(EditorBrowsableState.Never)] + private static Dictionary> cacheRepo = new Dictionary>(); + + [EditorBrowsable(EditorBrowsableState.Never)] + public static Buffer TryGetFromCache(IntPtr native) + { + if(native == IntPtr.Zero) return null; + + if(cacheRepo.ContainsKey(native)) + { + Buffer cacheRet; + cacheRepo[native].TryGetTarget(out cacheRet); + if(cacheRet != null) + { + cbg_Buffer_Release(native); + return cacheRet; + } + else + { + cacheRepo.Remove(native); + } + } + + var newObject = new Buffer(new MemoryHandle(native)); + cacheRepo[native] = new WeakReference(newObject); + return newObject; + } + + [EditorBrowsable(EditorBrowsableState.Never)] + internal IntPtr selfPtr = IntPtr.Zero; + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_Buffer_Create(int usage, int size); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_Buffer_Lock(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_Buffer_Unlock(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_Buffer_Read(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern int cbg_Buffer_GetSize(IntPtr selfPtr); + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern int cbg_Buffer_GetBufferUsage(IntPtr selfPtr); + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_Buffer_Release(IntPtr selfPtr); + + #endregion + + [EditorBrowsable(EditorBrowsableState.Never)] + internal Buffer(MemoryHandle handle) + { + selfPtr = handle.selfPtr; + } + + public int Size + { + get + { + var ret = cbg_Buffer_GetSize(selfPtr); + return ret; + } + } + + public BufferUsageType BufferUsage + { + get + { + var ret = cbg_Buffer_GetBufferUsage(selfPtr); + return (BufferUsageType)ret; + } + } + + public static Buffer Create(BufferUsageType usage, int size) + { + var ret = cbg_Buffer_Create((int)usage, size); + return Buffer.TryGetFromCache(ret); + } + + public IntPtr Lock() + { + var ret = cbg_Buffer_Lock(selfPtr); + return ret; + } + + public void Unlock() + { + cbg_Buffer_Unlock(selfPtr); + } + + public IntPtr Read() + { + var ret = cbg_Buffer_Read(selfPtr); + return ret; + } + + /// + /// のインスタンスを削除します。 + /// + ~Buffer() + { + lock (this) + { + if (selfPtr != IntPtr.Zero) + { + cbg_Buffer_Release(selfPtr); + selfPtr = IntPtr.Zero; + } + } + } + } + /// /// 組み込みシェーダの取得を行うクラス /// public sealed partial class BuiltinShader { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static BuiltinShader TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { BuiltinShader cacheRet; @@ -4765,65 +4924,65 @@ public static BuiltinShader TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new BuiltinShader(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_Create(IntPtr selfPtr, int type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetDownsampleShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetSepiaShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetGrayScaleShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetGaussianBlurShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetHighLuminanceShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetLightBloomShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetTextureMixShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_BuiltinShader_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal BuiltinShader(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + internal string DownsampleShader { get @@ -4832,7 +4991,7 @@ internal string DownsampleShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string SepiaShader { get @@ -4841,7 +5000,7 @@ internal string SepiaShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string GrayScaleShader { get @@ -4850,7 +5009,7 @@ internal string GrayScaleShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string GaussianBlurShader { get @@ -4859,7 +5018,7 @@ internal string GaussianBlurShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string HighLuminanceShader { get @@ -4868,7 +5027,7 @@ internal string HighLuminanceShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string LightBloomShader { get @@ -4877,7 +5036,7 @@ internal string LightBloomShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string TextureMixShader { get @@ -4886,7 +5045,7 @@ internal string TextureMixShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// シェーダを取得します。 /// @@ -4896,13 +5055,13 @@ public Shader Create(BuiltinShaderType type) var ret = cbg_BuiltinShader_Create(selfPtr, (int)type); return Shader.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~BuiltinShader() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -4912,22 +5071,22 @@ public Shader Create(BuiltinShaderType type) } } } - + /// /// コマンドリストのクラス /// public sealed partial class CommandList { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static CommandList TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { CommandList cacheRet; @@ -4942,63 +5101,143 @@ public static CommandList TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new CommandList(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_CommandList_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetRenderTarget(IntPtr selfPtr, IntPtr target, RenderPassParameter renderPassParameter); - + private static extern void cbg_CommandList_Begin(IntPtr selfPtr); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_RenderToRenderTexture(IntPtr selfPtr, IntPtr material, IntPtr target, RenderPassParameter renderPassParameter); - + private static extern void cbg_CommandList_End(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_StartFrame(IntPtr selfPtr, RenderPassParameter renderPassParameter); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_EndFrame(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_EndRenderPass(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_PauseRenderPass(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_ResumeRenderPass(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_UploadBuffer(IntPtr selfPtr, IntPtr buffer); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_ReadbackBuffer(IntPtr selfPtr, IntPtr buffer); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_CopyBuffer(IntPtr selfPtr, IntPtr src, IntPtr dst); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_SetRenderTarget(IntPtr selfPtr, IntPtr target, RenderPassParameter renderPassParameter); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_RenderToRenderTexture(IntPtr selfPtr, IntPtr material, IntPtr target, RenderPassParameter renderPassParameter); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_RenderToRenderTarget(IntPtr selfPtr, IntPtr material); - + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_SetVertexBuffer(IntPtr selfPtr, IntPtr vb, int stride, int offset); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_SetIndexBuffer(IntPtr selfPtr, IntPtr ib, int stride, int offset); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_BeginComputePass(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_EndComputePass(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_Dispatch(IntPtr selfPtr, int x, int y, int z); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_CopyTexture(IntPtr selfPtr, IntPtr src, IntPtr dst); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SaveRenderTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path, IntPtr texture); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_CommandList_GetScreenTexture(IntPtr selfPtr); - - + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_SetScissor(IntPtr selfPtr, RectI value); + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_CommandList_GetScreenTextureFormat(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SetScreenTextureFormat(IntPtr selfPtr, int value); - - + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_SetMaterial(IntPtr selfPtr, IntPtr value); + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_SetComputeBuffer(IntPtr selfPtr, IntPtr value); + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_SetComputePipelineState(IntPtr selfPtr, IntPtr value); + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal CommandList(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public RenderTexture ScreenTexture { get @@ -5007,7 +5246,15 @@ public RenderTexture ScreenTexture return RenderTexture.TryGetFromCache(ret); } } - + + public RectI Scissor + { + set + { + cbg_CommandList_SetScissor(selfPtr, value); + } + } + /// /// GetScreenTextureで取得するテクスチャのフォーマットを取得または設定します。 /// @@ -5029,13 +5276,87 @@ public TextureFormat ScreenTextureFormat } } private TextureFormat? _ScreenTextureFormat; - + + public Material Material + { + set + { + cbg_CommandList_SetMaterial(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); + } + } + + public Buffer ComputeBuffer + { + set + { + cbg_CommandList_SetComputeBuffer(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); + } + } + + public ComputePipelineState ComputePipelineState + { + set + { + cbg_CommandList_SetComputePipelineState(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); + } + } + public static CommandList Create() { var ret = cbg_CommandList_Create(); return CommandList.TryGetFromCache(ret); } - + + public void Begin() + { + cbg_CommandList_Begin(selfPtr); + } + + public void End() + { + cbg_CommandList_End(selfPtr); + } + + public void StartFrame(RenderPassParameter renderPassParameter) + { + cbg_CommandList_StartFrame(selfPtr, renderPassParameter); + } + + public void EndFrame() + { + cbg_CommandList_EndFrame(selfPtr); + } + + public void EndRenderPass() + { + cbg_CommandList_EndRenderPass(selfPtr); + } + + public void PauseRenderPass() + { + cbg_CommandList_PauseRenderPass(selfPtr); + } + + public void ResumeRenderPass() + { + cbg_CommandList_ResumeRenderPass(selfPtr); + } + + public void UploadBuffer(Buffer buffer) + { + cbg_CommandList_UploadBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero); + } + + public void ReadbackBuffer(Buffer buffer) + { + cbg_CommandList_ReadbackBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero); + } + + public void CopyBuffer(Buffer src, Buffer dst) + { + cbg_CommandList_CopyBuffer(selfPtr, src != null ? src.selfPtr : IntPtr.Zero, dst != null ? dst.selfPtr : IntPtr.Zero); + } + /// /// 描画する対象のテクスチャを設定します。 /// @@ -5045,7 +5366,7 @@ public void SetRenderTarget(RenderTexture target, RenderPassParameter renderPass { cbg_CommandList_SetRenderTarget(selfPtr, target != null ? target.selfPtr : IntPtr.Zero, renderPassParameter); } - + /// /// 指定したテクスチャに描画を行います。 /// @@ -5055,7 +5376,7 @@ public void RenderToRenderTexture(Material material, RenderTexture target, Rende { cbg_CommandList_RenderToRenderTexture(selfPtr, material != null ? material.selfPtr : IntPtr.Zero, target != null ? target.selfPtr : IntPtr.Zero, renderPassParameter); } - + /// /// 設定されたターゲットに描画を行います。 /// @@ -5064,7 +5385,32 @@ public void RenderToRenderTarget(Material material) { cbg_CommandList_RenderToRenderTarget(selfPtr, material != null ? material.selfPtr : IntPtr.Zero); } - + + public void SetVertexBuffer(Buffer vb, int stride, int offset) + { + cbg_CommandList_SetVertexBuffer(selfPtr, vb != null ? vb.selfPtr : IntPtr.Zero, stride, offset); + } + + public void SetIndexBuffer(Buffer ib, int stride, int offset) + { + cbg_CommandList_SetIndexBuffer(selfPtr, ib != null ? ib.selfPtr : IntPtr.Zero, stride, offset); + } + + public void BeginComputePass() + { + cbg_CommandList_BeginComputePass(selfPtr); + } + + public void EndComputePass() + { + cbg_CommandList_EndComputePass(selfPtr); + } + + public void Dispatch(int x, int y, int z) + { + cbg_CommandList_Dispatch(selfPtr, x, y, z); + } + /// /// テクスチャの内容をコピーします。 /// @@ -5077,18 +5423,18 @@ public void CopyTexture(RenderTexture src, RenderTexture dst) if (dst == null) throw new ArgumentNullException(nameof(dst), "引数がnullです"); cbg_CommandList_CopyTexture(selfPtr, src != null ? src.selfPtr : IntPtr.Zero, dst != null ? dst.selfPtr : IntPtr.Zero); } - + public void SaveRenderTexture(string path, RenderTexture texture) { cbg_CommandList_SaveRenderTexture(selfPtr, path, texture != null ? texture.selfPtr : IntPtr.Zero); } - + /// /// のインスタンスを削除します。 /// ~CommandList() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -5098,22 +5444,22 @@ public void SaveRenderTexture(string path, RenderTexture texture) } } } - + /// /// グラフィックの制御を行うクラス /// public sealed partial class Graphics { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Graphics TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Graphics cacheRet; @@ -5128,63 +5474,71 @@ public static Graphics TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Graphics(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Graphics_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Graphics_BeginFrame(IntPtr selfPtr, RenderPassParameter renderPassParameter); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Graphics_EndFrame(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Graphics_DoEvents(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Graphics_Terminate(); - + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_Graphics_ExecuteCommandList(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_Graphics_WaitFinish(IntPtr selfPtr); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Graphics_SaveScreenshot(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Graphics_GetCommandList(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Graphics_GetBuiltinShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Graphics_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Graphics(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// コマンドリストを取得します。 /// @@ -5196,7 +5550,7 @@ public CommandList CommandList return CommandList.TryGetFromCache(ret); } } - + /// /// 組み込みのシェーダを取得します。 /// @@ -5208,7 +5562,7 @@ internal BuiltinShader BuiltinShader return BuiltinShader.TryGetFromCache(ret); } } - + /// /// インスタンスを取得します。 /// @@ -5217,7 +5571,7 @@ internal static Graphics GetInstance() var ret = cbg_Graphics_GetInstance(); return Graphics.TryGetFromCache(ret); } - + /// /// 描画を開始します。 /// @@ -5226,7 +5580,7 @@ internal bool BeginFrame(RenderPassParameter renderPassParameter) var ret = cbg_Graphics_BeginFrame(selfPtr, renderPassParameter); return ret; } - + /// /// 描画を終了します。 /// @@ -5235,7 +5589,7 @@ internal bool EndFrame() var ret = cbg_Graphics_EndFrame(selfPtr); return ret; } - + /// /// イベントを処理します。 /// @@ -5244,12 +5598,22 @@ internal bool DoEvents() var ret = cbg_Graphics_DoEvents(selfPtr); return ret; } - + public static void Terminate() { cbg_Graphics_Terminate(); } - + + public void ExecuteCommandList() + { + cbg_Graphics_ExecuteCommandList(selfPtr); + } + + public void WaitFinish() + { + cbg_Graphics_WaitFinish(selfPtr); + } + /// /// スクリーンショットを保存します。 /// @@ -5260,13 +5624,13 @@ public void SaveScreenshot(string path) if (path == null) throw new ArgumentNullException(nameof(path), "引数がnullです"); cbg_Graphics_SaveScreenshot(selfPtr, path); } - + /// /// のインスタンスを削除します。 /// ~Graphics() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -5276,7 +5640,7 @@ public void SaveScreenshot(string path) } } } - + /// /// Altseed2 の設定を表すクラス /// @@ -5284,15 +5648,15 @@ public void SaveScreenshot(string path) public sealed partial class Configuration : ISerializable { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Configuration TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Configuration cacheRet; @@ -5307,18 +5671,18 @@ public static Configuration TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Configuration(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Configuration_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -5326,8 +5690,8 @@ public static Configuration TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetIsFullscreen(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -5335,16 +5699,16 @@ public static Configuration TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetIsResizable(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Configuration_GetDeviceType(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetDeviceType(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -5352,16 +5716,16 @@ public static Configuration TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetWaitVSync(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Configuration_GetEnabledCoreModules(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetEnabledCoreModules(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -5369,8 +5733,8 @@ public static Configuration TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetConsoleLoggingEnabled(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -5378,36 +5742,36 @@ public static Configuration TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetFileLoggingEnabled(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Configuration_GetLogFileName(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetLogFileName(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Configuration_GetToolSettingFileName(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetToolSettingFileName(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Configuration(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 全画面モードかどうかを取得または設定します。 /// @@ -5429,7 +5793,7 @@ public bool IsFullscreen } } private bool? _IsFullscreen; - + /// /// 画面サイズ可変かどうかを取得または設定します。 /// @@ -5451,7 +5815,7 @@ public bool IsResizable } } private bool? _IsResizable; - + /// /// 描画方法を取得または設定します。 /// @@ -5473,7 +5837,7 @@ public GraphicsDevice DeviceType } } private GraphicsDevice? _DeviceType; - + /// /// 垂直同期信号を待つかどうかを取得または設定します。 /// @@ -5495,7 +5859,7 @@ public bool WaitVSync } } private bool? _WaitVSync; - + /// /// 初期化するモジュールを指定します。 /// @@ -5517,7 +5881,7 @@ public CoreModules EnabledCoreModules } } private CoreModules? _EnabledCoreModules; - + /// /// ログをコンソールに出力するかどうかを取得または設定します。 /// @@ -5539,7 +5903,7 @@ public bool ConsoleLoggingEnabled } } private bool? _ConsoleLoggingEnabled; - + /// /// ログをファイルに出力するかどうかを取得または設定します。 /// @@ -5561,7 +5925,7 @@ public bool FileLoggingEnabled } } private bool? _FileLoggingEnabled; - + /// /// ログファイル名を取得または設定します。 /// @@ -5583,7 +5947,7 @@ public string LogFileName } } private string _LogFileName; - + public string ToolSettingFileName { get @@ -5602,10 +5966,10 @@ public string ToolSettingFileName } } private string _ToolSettingFileName; - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_IsFullscreen = "S_IsFullscreen"; @@ -5626,7 +5990,7 @@ public string ToolSettingFileName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_ToolSettingFileName = "S_ToolSettingFileName"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -5637,7 +6001,7 @@ private Configuration(SerializationInfo info, StreamingContext context) : this(n { selfPtr = Call_GetPtr(info); if (selfPtr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); - + IsFullscreen = info.GetBoolean(S_IsFullscreen); IsResizable = info.GetBoolean(S_IsResizable); DeviceType = info.GetValue(S_DeviceType); @@ -5647,10 +6011,10 @@ private Configuration(SerializationInfo info, StreamingContext context) : this(n FileLoggingEnabled = info.GetBoolean(S_FileLoggingEnabled); LogFileName = info.GetString(S_LogFileName); ToolSettingFileName = info.GetString(S_ToolSettingFileName); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -5660,7 +6024,7 @@ private Configuration(SerializationInfo info, StreamingContext context) : this(n void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_IsFullscreen, IsFullscreen); info.AddValue(S_IsResizable, IsResizable); info.AddValue(S_DeviceType, DeviceType); @@ -5670,10 +6034,10 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex info.AddValue(S_FileLoggingEnabled, FileLoggingEnabled); info.AddValue(S_LogFileName, LogFileName); info.AddValue(S_ToolSettingFileName, ToolSettingFileName); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -5681,7 +6045,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -5689,7 +6053,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -5698,7 +6062,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -5709,16 +6073,16 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - - + + #endregion - + /// /// のインスタンスを削除します。 /// ~Configuration() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -5728,22 +6092,22 @@ private IntPtr Call_GetPtr(SerializationInfo info) } } } - + /// /// ファイル制御を行うクラス /// public sealed partial class File { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static File TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { File cacheRet; @@ -5758,64 +6122,64 @@ public static File TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new File(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_File_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_AddRootDirectory(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_AddRootPackageWithPassword(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path, [MarshalAs(UnmanagedType.LPWStr)] string password); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_AddRootPackage(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_File_ClearRootDirectories(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_Exists(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_Pack(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string srcPath, [MarshalAs(UnmanagedType.LPWStr)] string dstPath); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_PackWithPassword(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string srcPath, [MarshalAs(UnmanagedType.LPWStr)] string dstPath, [MarshalAs(UnmanagedType.LPWStr)] string password); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_File_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal File(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// インスタンスを取得します。 /// @@ -5824,7 +6188,7 @@ internal static File GetInstance() var ret = cbg_File_GetInstance(); return File.TryGetFromCache(ret); } - + /// /// ファイル読み込み時に自動的に保管されるディレクトリを追加します。 /// @@ -5836,7 +6200,7 @@ public bool AddRootDirectory(string path) var ret = cbg_File_AddRootDirectory(selfPtr, path); return ret; } - + /// /// ファイルパッケージをパスワード有りで読み込みます。 /// @@ -5850,7 +6214,7 @@ public bool AddRootPackageWithPassword(string path, string password) var ret = cbg_File_AddRootPackageWithPassword(selfPtr, path, password); return ret; } - + /// /// ファイルパッケージをパスワード無しで読み込みます。 /// @@ -5862,7 +6226,7 @@ public bool AddRootPackage(string path) var ret = cbg_File_AddRootPackage(selfPtr, path); return ret; } - + /// /// 追加されたディレクトリやファイルパッケージをすべて削除します。 /// @@ -5870,7 +6234,7 @@ public void ClearRootDirectories() { cbg_File_ClearRootDirectories(selfPtr); } - + /// /// 指定したファイルが存在するかどうかを検索します。 /// @@ -5880,7 +6244,7 @@ public bool Exists(string path) var ret = cbg_File_Exists(selfPtr, path); return ret; } - + /// /// 指定したディレクトリのファイルをパックします。 /// @@ -5894,7 +6258,7 @@ public bool Pack(string srcPath, string dstPath) var ret = cbg_File_Pack(selfPtr, srcPath, dstPath); return ret; } - + /// /// 指定したディレクトリのファイルをパスワード付きでパックします。 /// @@ -5910,13 +6274,13 @@ public bool PackWithPassword(string srcPath, string dstPath, string password) var ret = cbg_File_PackWithPassword(selfPtr, srcPath, dstPath, password); return ret; } - + /// /// のインスタンスを削除します。 /// ~File() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -5926,7 +6290,7 @@ public bool PackWithPassword(string srcPath, string dstPath, string password) } } } - + /// /// 一度でファイルを読み取るクラス /// @@ -5934,15 +6298,15 @@ public bool PackWithPassword(string srcPath, string dstPath, string password) public sealed partial class StaticFile : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static ConcurrentDictionary> cacheRepo = new ConcurrentDictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] internal static StaticFile TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { StaticFile cacheRet; @@ -5957,56 +6321,56 @@ internal static StaticFile TryGetFromCache(IntPtr native) cacheRepo.TryRemove(native, out _); } } - + var newObject = new StaticFile(new MemoryHandle(native)); cacheRepo.TryAdd(native, new WeakReference(newObject)); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StaticFile_Create([MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_StaticFile_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StaticFile_GetInt8ArrayBuffer(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StaticFile_GetPath(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_StaticFile_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_StaticFile_GetIsInPackage(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_StaticFile_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal StaticFile(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + internal Int8Array Int8ArrayBuffer { get @@ -6015,7 +6379,7 @@ internal Int8Array Int8ArrayBuffer return Int8Array.TryGetFromCache(ret); } } - + /// /// 読み込んだファイルのパスを取得します。 /// @@ -6027,7 +6391,7 @@ public string Path return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 読み込んだファイルのデータサイズを取得します。 /// @@ -6039,7 +6403,7 @@ public int Size return ret; } } - + /// /// 読み込んだファイルがファイルパッケージ内に格納されているかどうかを取得します。 /// @@ -6051,7 +6415,7 @@ public bool IsInPackage return ret; } } - + /// /// 指定ファイルを読み込んだの新しいインスタンスを生成します。 /// @@ -6063,7 +6427,7 @@ public static StaticFile Create(string path) var ret = cbg_StaticFile_Create(path); return StaticFile.TryGetFromCache(ret); } - + /// /// 再読み込みを行います。 /// @@ -6072,15 +6436,15 @@ public bool Reload() var ret = cbg_StaticFile_Reload(selfPtr); return ret; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Path = "S_Path"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -6090,14 +6454,14 @@ public bool Reload() private StaticFile(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserializationConcurrent(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -6107,12 +6471,12 @@ private StaticFile(SerializationInfo info, StreamingContext context) : this(new void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Path, Path); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -6120,7 +6484,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -6128,7 +6492,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -6137,7 +6501,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -6148,7 +6512,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -6159,12 +6523,12 @@ private void StaticFile_Unsetter_Deserialize(SerializationInfo info, out string { Path = info.GetString(S_Path); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -6174,20 +6538,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_StaticFile_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~StaticFile() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -6197,22 +6561,22 @@ IntPtr ICacheKeeper.Self } } } - + /// /// プロファイラのクラス /// public sealed partial class Profiler { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Profiler TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Profiler cacheRet; @@ -6227,60 +6591,60 @@ public static Profiler TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Profiler(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Profiler_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_BeginBlock(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.LPWStr)] string _filename, int _line, Color color); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_EndBlock(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_StartCapture(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_StopCapture(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_StartListen(IntPtr selfPtr, int port); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_DumpToFileAndStopCapture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Profiler_GetIsProfilerRunning(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Profiler(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public bool IsProfilerRunning { get @@ -6289,7 +6653,7 @@ public bool IsProfilerRunning return ret; } } - + /// /// インスタンスを取得します。 /// @@ -6298,7 +6662,7 @@ internal static Profiler GetInstance() var ret = cbg_Profiler_GetInstance(); return Profiler.TryGetFromCache(ret); } - + /// /// 測定するブロックを開始します。 /// @@ -6310,7 +6674,7 @@ public void BeginBlock(string name, string _filename, int _line, Color color) { cbg_Profiler_BeginBlock(selfPtr, name, _filename, _line, color); } - + /// /// 測定するブロックを終了します。 /// @@ -6318,7 +6682,7 @@ public void EndBlock() { cbg_Profiler_EndBlock(selfPtr); } - + /// /// 測定を開始します。 /// @@ -6326,7 +6690,7 @@ public void StartCapture() { cbg_Profiler_StartCapture(selfPtr); } - + /// /// 測定を終了します。 /// @@ -6334,7 +6698,7 @@ public void StopCapture() { cbg_Profiler_StopCapture(selfPtr); } - + /// /// リモートから状態を監視します。 /// @@ -6343,7 +6707,7 @@ public void StartListen(int port) { cbg_Profiler_StartListen(selfPtr, port); } - + /// /// 測定を終了し、結果を出力します。 /// @@ -6352,13 +6716,13 @@ public void DumpToFileAndStopCapture(string path) { cbg_Profiler_DumpToFileAndStopCapture(selfPtr, path); } - + /// /// のインスタンスを削除します。 /// ~Profiler() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -6368,7 +6732,264 @@ public void DumpToFileAndStopCapture(string path) } } } - + + /// + /// + /// + public partial class ComputePipelineState + { + #region unmanaged + + [EditorBrowsable(EditorBrowsableState.Never)] + private static Dictionary> cacheRepo = new Dictionary>(); + + [EditorBrowsable(EditorBrowsableState.Never)] + public static ComputePipelineState TryGetFromCache(IntPtr native) + { + if(native == IntPtr.Zero) return null; + + if(cacheRepo.ContainsKey(native)) + { + ComputePipelineState cacheRet; + cacheRepo[native].TryGetTarget(out cacheRet); + if(cacheRet != null) + { + cbg_ComputePipelineState_Release(native); + return cacheRet; + } + else + { + cacheRepo.Remove(native); + } + } + + var newObject = new ComputePipelineState(new MemoryHandle(native)); + cacheRepo[native] = new WeakReference(newObject); + return newObject; + } + + [EditorBrowsable(EditorBrowsableState.Never)] + internal IntPtr selfPtr = IntPtr.Zero; + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_ComputePipelineState_Create(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern Vector4F cbg_ComputePipelineState_GetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_ComputePipelineState_SetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Vector4F value); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern Matrix44F cbg_ComputePipelineState_GetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_ComputePipelineState_SetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Matrix44F value); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_ComputePipelineState_GetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_ComputePipelineState_SetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, IntPtr value); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_ComputePipelineState_GetVertexLayoutName(IntPtr selfPtr, int index); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_ComputePipelineState_SetVertexLayoutName(IntPtr selfPtr, int index, [MarshalAs(UnmanagedType.LPWStr)] string name); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern int cbg_ComputePipelineState_GetVertexLayoutFormat(IntPtr selfPtr, int index); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_ComputePipelineState_SetVertexLayoutFormat(IntPtr selfPtr, int index, int format); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern int cbg_ComputePipelineState_GetVertexLayoutSemasntics(IntPtr selfPtr, int index); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_ComputePipelineState_SetVertexLayoutSemasntics(IntPtr selfPtr, int index, int semantics); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_ComputePipelineState_GetShader(IntPtr selfPtr); + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_ComputePipelineState_SetShader(IntPtr selfPtr, IntPtr value); + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern int cbg_ComputePipelineState_GetVertexLayoutCount(IntPtr selfPtr); + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_ComputePipelineState_SetVertexLayoutCount(IntPtr selfPtr, int value); + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_ComputePipelineState_GetPropertyBlock(IntPtr selfPtr); + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_ComputePipelineState_Release(IntPtr selfPtr); + + #endregion + + [EditorBrowsable(EditorBrowsableState.Never)] + internal ComputePipelineState(MemoryHandle handle) + { + selfPtr = handle.selfPtr; + } + + public Shader Shader + { + get + { + if (_Shader != null) + { + return _Shader; + } + var ret = cbg_ComputePipelineState_GetShader(selfPtr); + return Shader.TryGetFromCache(ret); + } + set + { + _Shader = value; + cbg_ComputePipelineState_SetShader(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); + } + } + private Shader _Shader; + + public int VertexLayoutCount + { + get + { + if (_VertexLayoutCount != null) + { + return _VertexLayoutCount.Value; + } + var ret = cbg_ComputePipelineState_GetVertexLayoutCount(selfPtr); + return ret; + } + set + { + _VertexLayoutCount = value; + cbg_ComputePipelineState_SetVertexLayoutCount(selfPtr, value); + } + } + private int? _VertexLayoutCount; + + public MaterialPropertyBlock PropertyBlock + { + get + { + var ret = cbg_ComputePipelineState_GetPropertyBlock(selfPtr); + return MaterialPropertyBlock.TryGetFromCache(ret); + } + } + + public ComputePipelineState Create() + { + var ret = cbg_ComputePipelineState_Create(selfPtr); + return ComputePipelineState.TryGetFromCache(ret); + } + + public Vector4F GetVector4F(string key) + { + var ret = cbg_ComputePipelineState_GetVector4F(selfPtr, key); + return ret; + } + + public void SetVector4F(string key, Vector4F value) + { + cbg_ComputePipelineState_SetVector4F(selfPtr, key, value); + } + + public Matrix44F GetMatrix44F(string key) + { + var ret = cbg_ComputePipelineState_GetMatrix44F(selfPtr, key); + return ret; + } + + public void SetMatrix44F(string key, Matrix44F value) + { + cbg_ComputePipelineState_SetMatrix44F(selfPtr, key, value); + } + + public TextureBase GetTexture(string key) + { + var ret = cbg_ComputePipelineState_GetTexture(selfPtr, key); + return TextureBase.TryGetFromCache(ret); + } + + public void SetTexture(string key, TextureBase value) + { + cbg_ComputePipelineState_SetTexture(selfPtr, key, value != null ? value.selfPtr : IntPtr.Zero); + } + + public string GetVertexLayoutName(int index) + { + var ret = cbg_ComputePipelineState_GetVertexLayoutName(selfPtr, index); + return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); + } + + public void SetVertexLayoutName(int index, string name) + { + cbg_ComputePipelineState_SetVertexLayoutName(selfPtr, index, name); + } + + public VertexLayoutFormat GetVertexLayoutFormat(int index) + { + var ret = cbg_ComputePipelineState_GetVertexLayoutFormat(selfPtr, index); + return (VertexLayoutFormat)ret; + } + + public void SetVertexLayoutFormat(int index, VertexLayoutFormat format) + { + cbg_ComputePipelineState_SetVertexLayoutFormat(selfPtr, index, (int)format); + } + + public int GetVertexLayoutSemasntics(int index) + { + var ret = cbg_ComputePipelineState_GetVertexLayoutSemasntics(selfPtr, index); + return ret; + } + + public void SetVertexLayoutSemasntics(int index, int semantics) + { + cbg_ComputePipelineState_SetVertexLayoutSemasntics(selfPtr, index, semantics); + } + + /// + /// のインスタンスを削除します。 + /// + ~ComputePipelineState() + { + lock (this) + { + if (selfPtr != IntPtr.Zero) + { + cbg_ComputePipelineState_Release(selfPtr); + selfPtr = IntPtr.Zero; + } + } + } + } + /// /// ポストエフェクトやカメラにおける描画先のクラス /// @@ -6376,15 +6997,15 @@ public void DumpToFileAndStopCapture(string path) public sealed partial class RenderTexture : TextureBase, ISerializable, ICacheKeeper, IDeserializationCallback { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new RenderTexture TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { RenderTexture cacheRet; @@ -6399,38 +7020,38 @@ public sealed partial class RenderTexture : TextureBase, ISerializable, ICacheKe cacheRepo.Remove(native); } } - + var newObject = new RenderTexture(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderTexture_Create(Vector2I size, int format); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_RenderTexture_Save(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_RenderTexture_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderTexture_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal RenderTexture(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 指定したサイズとフォーマットを持つRenderTextureの新しいインスタンスを生成します。 /// @@ -6441,28 +7062,28 @@ public static RenderTexture Create(Vector2I size, TextureFormat format) var ret = cbg_RenderTexture_Create(size, (int)format); return RenderTexture.TryGetFromCache(ret); } - + public bool Save(string path) { var ret = cbg_RenderTexture_Save(selfPtr, path); return ret; } - + public bool Reload() { var ret = cbg_RenderTexture_Reload(selfPtr); return ret; } - - + + #region ISerialiable - + #region SerializeName #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] private SerializationInfo seInfo; - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -6472,10 +7093,10 @@ public bool Reload() private RenderTexture(SerializationInfo info, StreamingContext context) : base(info, context) { seInfo = info; - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -6485,11 +7106,11 @@ private RenderTexture(SerializationInfo info, StreamingContext context) : base(i protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - - + + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -6497,7 +7118,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -6505,7 +7126,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出されます。 /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -6514,7 +7135,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -6525,12 +7146,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -6540,14 +7161,14 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_RenderTexture_Release(native); - + #endregion - + #endregion - + /// /// デシリアライズ時に実行 /// @@ -6556,17 +7177,17 @@ IntPtr ICacheKeeper.Self protected override void OnDeserialization(object sender) { if (seInfo == null) return; - + var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(seInfo); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + base.OnDeserialization(sender); - + OnDeserialize_Method(sender); - + seInfo = null; } /// @@ -6575,13 +7196,13 @@ protected override void OnDeserialization(object sender) /// 現在はサポートされていない 常にnullを返す [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Method(object sender); - + /// /// のインスタンスを削除します。 /// ~RenderTexture() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -6591,22 +7212,22 @@ protected override void OnDeserialization(object sender) } } } - + /// /// 文字情報 /// public sealed partial class Glyph { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static ConcurrentDictionary> cacheRepo = new ConcurrentDictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] internal static Glyph TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Glyph cacheRet; @@ -6621,61 +7242,61 @@ internal static Glyph TryGetFromCache(IntPtr native) cacheRepo.TryRemove(native, out _); } } - + var newObject = new Glyph(new MemoryHandle(native)); cacheRepo.TryAdd(native, new WeakReference(newObject)); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_Glyph_GetTextureSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Glyph_GetTextureIndex(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_Glyph_GetPosition(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_Glyph_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Glyph_GetOffset(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Glyph_GetAdvance(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Glyph_GetScale(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Glyph_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Glyph(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 文字テクスチャのサイズを取得します。 /// @@ -6687,7 +7308,7 @@ public Vector2I TextureSize return ret; } } - + /// /// 文字テクスチャのインデックスを取得します。 /// @@ -6699,7 +7320,7 @@ public int TextureIndex return ret; } } - + /// /// 文字の座標を取得します。 /// @@ -6711,7 +7332,7 @@ public Vector2I Position return ret; } } - + /// /// 文字のサイズを取得します。 /// @@ -6723,7 +7344,7 @@ public Vector2I Size return ret; } } - + /// /// 文字のオフセットを取得します。 /// @@ -6735,7 +7356,7 @@ public Vector2F Offset return ret; } } - + public float Advance { get @@ -6744,7 +7365,7 @@ public float Advance return ret; } } - + public float Scale { get @@ -6753,13 +7374,13 @@ public float Scale return ret; } } - + /// /// のインスタンスを削除します。 /// ~Glyph() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -6769,7 +7390,7 @@ public float Scale } } } - + /// /// フォント /// @@ -6777,15 +7398,15 @@ public float Scale public sealed partial class Font : ISerializable, ICacheKeeper, IDeserializationCallback { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static ConcurrentDictionary> cacheRepo = new ConcurrentDictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] internal static Font TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Font cacheRet; @@ -6800,104 +7421,104 @@ internal static Font TryGetFromCache(IntPtr native) cacheRepo.TryRemove(native, out _); } } - + var newObject = new Font(new MemoryHandle(native)); cacheRepo.TryAdd(native, new WeakReference(newObject)); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_GetGlyph(IntPtr selfPtr, int character); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_GetFontTexture(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Font_GetKerning(IntPtr selfPtr, int c1, int c2); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_LoadDynamicFont([MarshalAs(UnmanagedType.LPWStr)] string path, int samplingSize); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_LoadStaticFont([MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_CreateImageFont(IntPtr baseFont); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Font_GenerateFontFile([MarshalAs(UnmanagedType.LPWStr)] string dynamicFontPath, [MarshalAs(UnmanagedType.LPWStr)] string staticFontPath, int samplingSize, [MarshalAs(UnmanagedType.LPWStr)] string characters); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Font_AddImageGlyph(IntPtr selfPtr, int character, IntPtr texture); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_GetImageGlyph(IntPtr selfPtr, int character); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Font_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Font_GetSamplingSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Font_GetAscent(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Font_GetDescent(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Font_GetLineGap(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Font_GetEmSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Font_GetIsStaticFont(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_GetPath(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Font_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Font(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public int SamplingSize { get @@ -6906,7 +7527,7 @@ public int SamplingSize return ret; } } - + /// /// フォントのベースラインからトップラインまでの距離を取得します。 /// @@ -6918,7 +7539,7 @@ public float Ascent return ret; } } - + /// /// フォントのベースラインからボトムラインまでの距離を取得します。 /// @@ -6930,7 +7551,7 @@ public float Descent return ret; } } - + /// /// フォントの行間の距離を取得します。 /// @@ -6942,7 +7563,7 @@ public float LineGap return ret; } } - + public float EmSize { get @@ -6951,7 +7572,7 @@ public float EmSize return ret; } } - + /// /// StaticFontかどうかを取得します。 /// @@ -6963,7 +7584,7 @@ public bool IsStaticFont return ret; } } - + /// /// 読み込んだファイルのパスを取得します。 /// @@ -6975,7 +7596,7 @@ public string Path return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 文字情報を取得します。 /// @@ -6985,7 +7606,7 @@ public Glyph GetGlyph(int character) var ret = cbg_Font_GetGlyph(selfPtr, character); return Glyph.TryGetFromCache(ret); } - + /// /// 指定した文字のテクスチャを取得します。 /// @@ -6995,7 +7616,7 @@ public Texture2D GetFontTexture(int index) var ret = cbg_Font_GetFontTexture(selfPtr, index); return Texture2D.TryGetFromCache(ret); } - + /// /// カーニングを取得します。 /// @@ -7006,7 +7627,7 @@ public int GetKerning(int c1, int c2) var ret = cbg_Font_GetKerning(selfPtr, c1, c2); return ret; } - + /// /// FontGeneratorで生成したフォントを読み込んでFontの新しいインスタンスを生成します。 /// @@ -7018,7 +7639,7 @@ public static Font LoadStaticFont(string path) var ret = cbg_Font_LoadStaticFont(path); return Font.TryGetFromCache(ret); } - + /// /// テクスチャ追加対応フォントを生成します。 /// @@ -7030,7 +7651,7 @@ public static Font CreateImageFont(Font baseFont) var ret = cbg_Font_CreateImageFont(baseFont != null ? baseFont.selfPtr : IntPtr.Zero); return Font.TryGetFromCache(ret); } - + /// /// テクスチャ文字を追加します。 /// @@ -7040,7 +7661,7 @@ internal void AddImageGlyph(int character, TextureBase texture) { cbg_Font_AddImageGlyph(selfPtr, character, texture != null ? texture.selfPtr : IntPtr.Zero); } - + /// /// テクスチャ文字を取得します。 /// @@ -7050,16 +7671,16 @@ public TextureBase GetImageGlyph(int character) var ret = cbg_Font_GetImageGlyph(selfPtr, character); return TextureBase.TryGetFromCache(ret); } - + public bool Reload() { var ret = cbg_Font_Reload(selfPtr); return ret; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_SamplingSize = "S_SamplingSize"; @@ -7068,10 +7689,10 @@ public bool Reload() [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Path = "S_Path"; #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] private SerializationInfo seInfo; - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -7081,10 +7702,10 @@ public bool Reload() private Font(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { seInfo = info; - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -7094,14 +7715,14 @@ private Font(SerializationInfo info, StreamingContext context) : this(new Memory void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_SamplingSize, SamplingSize); info.AddValue(S_IsStaticFont, IsStaticFont); info.AddValue(S_Path, Path); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -7109,7 +7730,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -7117,7 +7738,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出されます。 /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -7126,7 +7747,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -7137,7 +7758,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -7152,12 +7773,12 @@ private void Font_Unsetter_Deserialize(SerializationInfo info, out int SamplingS IsStaticFont = info.GetBoolean(S_IsStaticFont); Path = info.GetString(S_Path) ?? throw new SerializationException("デシリアライズに失敗しました"); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -7167,14 +7788,14 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Font_Release(native); - + #endregion - + #endregion - + /// /// デシリアライズ時に実行 /// @@ -7183,15 +7804,15 @@ IntPtr ICacheKeeper.Self void IDeserializationCallback.OnDeserialization(object sender) { if (seInfo == null) return; - + var ptr = Call_GetPtr(seInfo); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserializationConcurrent(this, ptr); - - + + OnDeserialize_Method(sender); - + seInfo = null; } /// @@ -7200,13 +7821,13 @@ void IDeserializationCallback.OnDeserialization(object sender) /// 現在はサポートされていない 常にnullを返す [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Method(object sender); - + /// /// のインスタンスを削除します。 /// ~Font() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -7216,22 +7837,22 @@ void IDeserializationCallback.OnDeserialization(object sender) } } } - + /// - /// + /// /// public partial class ImageFont { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static ImageFont TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { ImageFont cacheRet; @@ -7246,77 +7867,77 @@ public static ImageFont TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new ImageFont(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ImageFont_GetGlyph(IntPtr selfPtr, int character); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ImageFont_GetFontTexture(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_ImageFont_GetKerning(IntPtr selfPtr, int c1, int c2); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ImageFont_AddImageGlyph(IntPtr selfPtr, int character, IntPtr texture); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ImageFont_GetImageGlyph(IntPtr selfPtr, int character); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_ImageFont_GetSamplingSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_ImageFont_GetAscent(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_ImageFont_GetDescent(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_ImageFont_GetLineGap(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_ImageFont_GetEmSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_ImageFont_GetIsStaticFont(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ImageFont_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal ImageFont(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public int SamplingSize { get @@ -7325,7 +7946,7 @@ public int SamplingSize return ret; } } - + public float Ascent { get @@ -7334,7 +7955,7 @@ public float Ascent return ret; } } - + public float Descent { get @@ -7343,7 +7964,7 @@ public float Descent return ret; } } - + public float LineGap { get @@ -7352,7 +7973,7 @@ public float LineGap return ret; } } - + public float EmSize { get @@ -7361,7 +7982,7 @@ public float EmSize return ret; } } - + public bool IsStaticFont { get @@ -7370,42 +7991,42 @@ public bool IsStaticFont return ret; } } - + public Glyph GetGlyph(int character) { var ret = cbg_ImageFont_GetGlyph(selfPtr, character); return Glyph.TryGetFromCache(ret); } - + public Texture2D GetFontTexture(int index) { var ret = cbg_ImageFont_GetFontTexture(selfPtr, index); return Texture2D.TryGetFromCache(ret); } - + public int GetKerning(int c1, int c2) { var ret = cbg_ImageFont_GetKerning(selfPtr, c1, c2); return ret; } - + public void AddImageGlyph(int character, TextureBase texture) { cbg_ImageFont_AddImageGlyph(selfPtr, character, texture != null ? texture.selfPtr : IntPtr.Zero); } - + public TextureBase GetImageGlyph(int character) { var ret = cbg_ImageFont_GetImageGlyph(selfPtr, character); return TextureBase.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~ImageFont() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -7415,22 +8036,22 @@ public TextureBase GetImageGlyph(int character) } } } - + /// /// カリングのクラス /// internal sealed partial class CullingSystem { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static CullingSystem TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { CullingSystem cacheRet; @@ -7445,65 +8066,65 @@ public static CullingSystem TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new CullingSystem(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_CullingSystem_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_CullingSystem_Initialize(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_Terminate(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_Register(IntPtr selfPtr, IntPtr rendered); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_UpdateAABB(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_Cull(IntPtr selfPtr, RectF rect); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_Unregister(IntPtr selfPtr, IntPtr rendered); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_CullingSystem_GetDrawingRenderedCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_CullingSystem_GetDrawingRenderedIds(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal CullingSystem(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 描画されているRenderedの個数を取得します。 /// @@ -7515,7 +8136,7 @@ internal int DrawingRenderedCount return ret; } } - + /// /// 描画されているRenderedのIdの配列を取得します。 /// @@ -7527,7 +8148,7 @@ internal Int32Array DrawingRenderedIds return Int32Array.TryGetFromCache(ret); } } - + /// /// インスタンスを取得します。 /// @@ -7536,18 +8157,18 @@ internal static CullingSystem GetInstance() var ret = cbg_CullingSystem_GetInstance(); return CullingSystem.TryGetFromCache(ret); } - + public static bool Initialize() { var ret = cbg_CullingSystem_Initialize(); return ret; } - + public static void Terminate() { cbg_CullingSystem_Terminate(); } - + /// /// Renderedをカリングシステムに登録します。 /// @@ -7556,7 +8177,7 @@ internal void Register(Rendered rendered) { cbg_CullingSystem_Register(selfPtr, rendered != null ? rendered.selfPtr : IntPtr.Zero); } - + /// /// RenderedのAABBを更新します。 /// @@ -7564,12 +8185,12 @@ internal void UpdateAABB() { cbg_CullingSystem_UpdateAABB(selfPtr); } - + public void Cull(RectF rect) { cbg_CullingSystem_Cull(selfPtr, rect); } - + /// /// Renderedをカリングシステムから登録解除します。 /// @@ -7578,13 +8199,13 @@ internal void Unregister(Rendered rendered) { cbg_CullingSystem_Unregister(selfPtr, rendered != null ? rendered.selfPtr : IntPtr.Zero); } - + /// /// のインスタンスを削除します。 /// ~CullingSystem() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -7594,7 +8215,7 @@ internal void Unregister(Rendered rendered) } } } - + /// /// 描画されるオブジェクトの基本クラスを表します /// @@ -7602,15 +8223,15 @@ internal void Unregister(Rendered rendered) internal partial class Rendered : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Rendered TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Rendered cacheRet; @@ -7625,12 +8246,12 @@ public static Rendered TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Rendered(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] @@ -7639,25 +8260,25 @@ public static Rendered TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Rendered_SetTransform(IntPtr selfPtr, Matrix44F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Rendered_GetId(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Rendered_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Rendered(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 変換行列を取得または設定します。 /// @@ -7679,7 +8300,7 @@ internal Matrix44F Transform } } private Matrix44F? _Transform; - + /// /// BaseObjectのIdを取得します。 /// @@ -7691,15 +8312,15 @@ internal int Id return ret; } } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Transform = "S_Transform"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -7709,15 +8330,15 @@ internal int Id protected Rendered(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + Transform = info.GetValue(S_Transform); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -7727,14 +8348,14 @@ protected Rendered(SerializationInfo info, StreamingContext context) : this(new protected virtual void GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Transform, Transform); - + OnGetObjectData(info, context); } [EditorBrowsable(EditorBrowsableState.Never)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) => GetObjectData(info, context); - + /// /// 内で実行されます。 /// @@ -7742,7 +8363,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -7750,7 +8371,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -7759,7 +8380,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -7770,12 +8391,12 @@ protected private virtual IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -7785,20 +8406,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Rendered_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Rendered() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -7808,7 +8429,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// カメラのクラス /// @@ -7816,15 +8437,15 @@ IntPtr ICacheKeeper.Self internal sealed partial class RenderedCamera : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static RenderedCamera TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { RenderedCamera cacheRet; @@ -7839,59 +8460,59 @@ public static RenderedCamera TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new RenderedCamera(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedCamera_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedCamera_GetTargetTexture(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedCamera_SetTargetTexture(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern RenderPassParameter cbg_RenderedCamera_GetRenderPassParameter(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedCamera_SetRenderPassParameter(IntPtr selfPtr, RenderPassParameter value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_RenderedCamera_GetProjectionMatrix(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_RenderedCamera_GetViewMatrix(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedCamera_SetViewMatrix(IntPtr selfPtr, Matrix44F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedCamera_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal RenderedCamera(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// TargetTextureを取得または設定します。 /// @@ -7913,7 +8534,7 @@ internal RenderTexture TargetTexture } } private RenderTexture _TargetTexture; - + /// /// RenderPassParameterを取得または設定します。 /// @@ -7935,7 +8556,7 @@ internal RenderPassParameter RenderPassParameter } } private RenderPassParameter? _RenderPassParameter; - + public Matrix44F ProjectionMatrix { get @@ -7944,7 +8565,7 @@ public Matrix44F ProjectionMatrix return ret; } } - + /// /// RenderPassParameterを取得または設定します。 /// @@ -7966,7 +8587,7 @@ internal Matrix44F ViewMatrix } } private Matrix44F? _ViewMatrix; - + /// /// RenderedCameraを作成します。 /// @@ -7975,10 +8596,10 @@ internal static RenderedCamera Create() var ret = cbg_RenderedCamera_Create(); return RenderedCamera.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_TargetTexture = "S_TargetTexture"; @@ -7987,7 +8608,7 @@ internal static RenderedCamera Create() [EditorBrowsable(EditorBrowsableState.Never)] private const string S_ViewMatrix = "S_ViewMatrix"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -7997,19 +8618,19 @@ internal static RenderedCamera Create() private RenderedCamera(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + var TargetTexture = info.GetValue(S_TargetTexture); ((IDeserializationCallback)TargetTexture)?.OnDeserialization(null); this.TargetTexture = TargetTexture; RenderPassParameter = info.GetValue(S_RenderPassParameter); ViewMatrix = info.GetValue(S_ViewMatrix); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -8019,14 +8640,14 @@ private RenderedCamera(SerializationInfo info, StreamingContext context) : this( void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_TargetTexture, TargetTexture); info.AddValue(S_RenderPassParameter, RenderPassParameter); info.AddValue(S_ViewMatrix, ViewMatrix); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -8034,7 +8655,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -8042,7 +8663,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -8051,7 +8672,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -8062,12 +8683,12 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -8077,20 +8698,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_RenderedCamera_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~RenderedCamera() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -8100,7 +8721,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// スプライトのクラス /// @@ -8108,15 +8729,15 @@ IntPtr ICacheKeeper.Self internal sealed partial class RenderedSprite : Rendered, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new RenderedSprite TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { RenderedSprite cacheRet; @@ -8131,68 +8752,68 @@ internal sealed partial class RenderedSprite : Rendered, ISerializable, ICacheKe cacheRepo.Remove(native); } } - + var newObject = new RenderedSprite(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedSprite_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern AlphaBlend cbg_RenderedSprite_GetAlphaBlend(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_SetAlphaBlend(IntPtr selfPtr, AlphaBlend value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern RectF cbg_RenderedSprite_GetSrc(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_SetSrc(IntPtr selfPtr, RectF value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Color cbg_RenderedSprite_GetColor(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_SetColor(IntPtr selfPtr, Color value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedSprite_GetTexture(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_SetTexture(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedSprite_GetMaterial(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_SetMaterial(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal RenderedSprite(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 描画時のアルファブレンドを取得または設定します。 /// @@ -8214,7 +8835,7 @@ internal AlphaBlend AlphaBlend } } private AlphaBlend? _AlphaBlend; - + /// /// 描画範囲を取得または設定します。 /// @@ -8236,7 +8857,7 @@ internal RectF Src } } private RectF? _Src; - + /// /// 色を取得または設定します。 /// @@ -8258,7 +8879,7 @@ internal Color Color } } private Color? _Color; - + /// /// テクスチャを取得または設定します。 /// @@ -8280,7 +8901,7 @@ internal TextureBase Texture } } private TextureBase _Texture; - + /// /// マテリアルを取得または設定します。 /// @@ -8302,7 +8923,7 @@ internal Material Material } } private Material _Material; - + /// /// スプライトを作成します。 /// @@ -8311,10 +8932,10 @@ internal static RenderedSprite Create() var ret = cbg_RenderedSprite_Create(); return RenderedSprite.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_AlphaBlend = "S_AlphaBlend"; @@ -8327,7 +8948,7 @@ internal static RenderedSprite Create() [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Material = "S_Material"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -8338,10 +8959,10 @@ private RenderedSprite(SerializationInfo info, StreamingContext context) : base( { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + AlphaBlend = info.GetValue(S_AlphaBlend); Src = info.GetValue(S_Src); Color = info.GetValue(S_Color); @@ -8349,10 +8970,10 @@ private RenderedSprite(SerializationInfo info, StreamingContext context) : base( ((IDeserializationCallback)Texture)?.OnDeserialization(null); this.Texture = Texture; Material = info.GetValue(S_Material); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -8362,16 +8983,16 @@ private RenderedSprite(SerializationInfo info, StreamingContext context) : base( protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_AlphaBlend, AlphaBlend); info.AddValue(S_Src, Src); info.AddValue(S_Color, Color); info.AddValue(S_Texture, Texture); info.AddValue(S_Material, Material); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -8379,7 +9000,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -8387,7 +9008,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -8396,7 +9017,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -8407,12 +9028,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -8422,20 +9043,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_RenderedSprite_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~RenderedSprite() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -8445,7 +9066,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// テキストのクラス /// @@ -8453,15 +9074,15 @@ IntPtr ICacheKeeper.Self internal sealed partial class RenderedText : Rendered, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new RenderedText TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { RenderedText cacheRet; @@ -8476,64 +9097,64 @@ internal sealed partial class RenderedText : Rendered, ISerializable, ICacheKeep cacheRepo.Remove(native); } } - + var newObject = new RenderedText(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedText_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern AlphaBlend cbg_RenderedText_GetAlphaBlend(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetAlphaBlend(IntPtr selfPtr, AlphaBlend value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedText_GetMaterialGlyph(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetMaterialGlyph(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedText_GetMaterialImage(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetMaterialImage(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Color cbg_RenderedText_GetColor(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetColor(IntPtr selfPtr, Color value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedText_GetFont(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetFont(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedText_GetText(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -8541,57 +9162,57 @@ internal sealed partial class RenderedText : Rendered, ISerializable, ICacheKeep [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetIsEnableKerning(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_RenderedText_GetWritingDirection(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetWritingDirection(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_RenderedText_GetCharacterSpace(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetCharacterSpace(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_RenderedText_GetLineGap(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetLineGap(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_RenderedText_GetFontSize(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetFontSize(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_RenderedText_GetRenderingSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal RenderedText(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 描画時のアルファブレンドを取得または設定します。 /// @@ -8613,7 +9234,7 @@ internal AlphaBlend AlphaBlend } } private AlphaBlend? _AlphaBlend; - + /// /// 文字の描画に使用するマテリアルを取得または設定します。 /// @@ -8635,7 +9256,7 @@ internal Material MaterialGlyph } } private Material _MaterialGlyph; - + /// /// テクスチャ文字の描画に使用するマテリアルを取得または設定します。 /// @@ -8657,7 +9278,7 @@ internal Material MaterialImage } } private Material _MaterialImage; - + /// /// 色を取得または設定します。 /// @@ -8679,7 +9300,7 @@ internal Color Color } } private Color? _Color; - + /// /// フォントを取得または設定します。 /// @@ -8701,7 +9322,7 @@ internal Font Font } } private Font _Font; - + /// /// テキストを取得または設定します。 /// @@ -8723,7 +9344,7 @@ internal string Text } } private string _Text; - + /// /// カーニングの有無を取得または設定します。 /// @@ -8745,7 +9366,7 @@ internal bool IsEnableKerning } } private bool? _IsEnableKerning; - + /// /// 行の方向を取得または設定します。 /// @@ -8767,7 +9388,7 @@ internal WritingDirection WritingDirection } } private WritingDirection? _WritingDirection; - + /// /// 字間をピクセル単位で取得または設定します。 /// @@ -8789,7 +9410,7 @@ internal float CharacterSpace } } private float? _CharacterSpace; - + /// /// 行間をピクセル単位で取得または設定します。 /// @@ -8811,7 +9432,7 @@ internal float LineGap } } private float? _LineGap; - + internal float FontSize { get @@ -8830,7 +9451,7 @@ internal float FontSize } } private float? _FontSize; - + public Vector2F RenderingSize { get @@ -8839,7 +9460,7 @@ public Vector2F RenderingSize return ret; } } - + /// /// テキストを作成します。 /// @@ -8848,10 +9469,10 @@ internal static RenderedText Create() var ret = cbg_RenderedText_Create(); return RenderedText.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_AlphaBlend = "S_AlphaBlend"; @@ -8876,7 +9497,7 @@ internal static RenderedText Create() [EditorBrowsable(EditorBrowsableState.Never)] private const string S_FontSize = "S_FontSize"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -8887,10 +9508,10 @@ private RenderedText(SerializationInfo info, StreamingContext context) : base(in { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + AlphaBlend = info.GetValue(S_AlphaBlend); MaterialGlyph = info.GetValue(S_MaterialGlyph); MaterialImage = info.GetValue(S_MaterialImage); @@ -8904,10 +9525,10 @@ private RenderedText(SerializationInfo info, StreamingContext context) : base(in CharacterSpace = info.GetSingle(S_CharacterSpace); LineGap = info.GetSingle(S_LineGap); FontSize = info.GetSingle(S_FontSize); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -8917,7 +9538,7 @@ private RenderedText(SerializationInfo info, StreamingContext context) : base(in protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_AlphaBlend, AlphaBlend); info.AddValue(S_MaterialGlyph, MaterialGlyph); info.AddValue(S_MaterialImage, MaterialImage); @@ -8929,10 +9550,10 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c info.AddValue(S_CharacterSpace, CharacterSpace); info.AddValue(S_LineGap, LineGap); info.AddValue(S_FontSize, FontSize); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -8940,7 +9561,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -8948,7 +9569,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -8957,7 +9578,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -8968,12 +9589,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -8983,20 +9604,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_RenderedText_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~RenderedText() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -9006,7 +9627,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// ポリゴンのクラス /// @@ -9014,15 +9635,15 @@ IntPtr ICacheKeeper.Self internal sealed partial class RenderedPolygon : Rendered, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new RenderedPolygon TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { RenderedPolygon cacheRet; @@ -9037,88 +9658,88 @@ internal sealed partial class RenderedPolygon : Rendered, ISerializable, ICacheK cacheRepo.Remove(native); } } - + var newObject = new RenderedPolygon(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedPolygon_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_CreateVertexesByVector2F(IntPtr selfPtr, IntPtr vectors); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_OverwriteVertexesColor(IntPtr selfPtr, Color color); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetDefaultIndexBuffer(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern AlphaBlend cbg_RenderedPolygon_GetAlphaBlend(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetAlphaBlend(IntPtr selfPtr, AlphaBlend value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedPolygon_GetBuffers(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetBuffers(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedPolygon_GetVertexes(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetVertexes(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern RectF cbg_RenderedPolygon_GetSrc(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetSrc(IntPtr selfPtr, RectF value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedPolygon_GetTexture(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetTexture(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedPolygon_GetMaterial(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetMaterial(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal RenderedPolygon(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 描画時のアルファブレンドを取得または設定します。 /// @@ -9140,7 +9761,7 @@ internal AlphaBlend AlphaBlend } } private AlphaBlend? _AlphaBlend; - + /// /// 頂点情報を取得または設定します。 /// @@ -9162,7 +9783,7 @@ internal VertexArray Vertexes } } private VertexArray _Vertexes; - + /// /// 描画範囲を取得または設定します。 /// @@ -9184,7 +9805,7 @@ internal RectF Src } } private RectF? _Src; - + /// /// テクスチャを取得または設定します。 /// @@ -9206,7 +9827,7 @@ internal TextureBase Texture } } private TextureBase _Texture; - + /// /// マテリアルを取得または設定します。 /// @@ -9228,7 +9849,7 @@ internal Material Material } } private Material _Material; - + /// /// ポリゴンを作成します。 /// @@ -9237,7 +9858,7 @@ internal static RenderedPolygon Create() var ret = cbg_RenderedPolygon_Create(); return RenderedPolygon.TryGetFromCache(ret); } - + /// /// 頂点情報 /// @@ -9245,7 +9866,7 @@ internal void CreateVertexesByVector2F(Vector2FArray vectors) { cbg_RenderedPolygon_CreateVertexesByVector2F(selfPtr, vectors != null ? vectors.selfPtr : IntPtr.Zero); } - + /// /// 頂点情報 /// @@ -9253,10 +9874,10 @@ internal void OverwriteVertexesColor(Color color) { cbg_RenderedPolygon_OverwriteVertexesColor(selfPtr, color); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_AlphaBlend = "S_AlphaBlend"; @@ -9271,7 +9892,7 @@ internal void OverwriteVertexesColor(Color color) [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Material = "S_Material"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -9282,10 +9903,10 @@ private RenderedPolygon(SerializationInfo info, StreamingContext context) : base { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + AlphaBlend = info.GetValue(S_AlphaBlend); Buffers = info.GetValue(S_Buffers); Vertexes = info.GetValue(S_Vertexes); @@ -9294,10 +9915,10 @@ private RenderedPolygon(SerializationInfo info, StreamingContext context) : base ((IDeserializationCallback)Texture)?.OnDeserialization(null); this.Texture = Texture; Material = info.GetValue(S_Material); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -9307,17 +9928,17 @@ private RenderedPolygon(SerializationInfo info, StreamingContext context) : base protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_AlphaBlend, AlphaBlend); info.AddValue(S_Buffers, Buffers); info.AddValue(S_Vertexes, Vertexes); info.AddValue(S_Src, Src); info.AddValue(S_Texture, Texture); info.AddValue(S_Material, Material); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -9325,7 +9946,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -9333,7 +9954,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -9342,7 +9963,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -9353,12 +9974,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -9368,20 +9989,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_RenderedPolygon_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~RenderedPolygon() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -9391,22 +10012,22 @@ IntPtr ICacheKeeper.Self } } } - + /// /// レンダラのクラス /// internal sealed partial class Renderer { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Renderer TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Renderer cacheRet; @@ -9421,64 +10042,64 @@ public static Renderer TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Renderer(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Renderer_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Renderer_Initialize(IntPtr window, IntPtr graphics, IntPtr cullingSystem); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_Terminate(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_DrawPolygon(IntPtr selfPtr, IntPtr polygon); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_DrawSprite(IntPtr selfPtr, IntPtr sprite); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_DrawText(IntPtr selfPtr, IntPtr text); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_Render(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_ResetCamera(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_SetCamera(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Renderer(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + internal RenderedCamera Camera { set @@ -9486,7 +10107,7 @@ internal RenderedCamera Camera cbg_Renderer_SetCamera(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); } } - + /// /// インスタンスを取得します。 /// @@ -9495,18 +10116,18 @@ internal static Renderer GetInstance() var ret = cbg_Renderer_GetInstance(); return Renderer.TryGetFromCache(ret); } - + public static bool Initialize(Window window, Graphics graphics, CullingSystem cullingSystem) { var ret = cbg_Renderer_Initialize(window != null ? window.selfPtr : IntPtr.Zero, graphics != null ? graphics.selfPtr : IntPtr.Zero, cullingSystem != null ? cullingSystem.selfPtr : IntPtr.Zero); return ret; } - + public static void Terminate() { cbg_Renderer_Terminate(); } - + /// /// ポリゴンを描画します。 /// @@ -9515,7 +10136,7 @@ internal void DrawPolygon(RenderedPolygon polygon) { cbg_Renderer_DrawPolygon(selfPtr, polygon != null ? polygon.selfPtr : IntPtr.Zero); } - + /// /// スプライトを描画します。 /// @@ -9524,7 +10145,7 @@ internal void DrawSprite(RenderedSprite sprite) { cbg_Renderer_DrawSprite(selfPtr, sprite != null ? sprite.selfPtr : IntPtr.Zero); } - + /// /// テキストを描画します。 /// @@ -9533,7 +10154,7 @@ internal void DrawText(RenderedText text) { cbg_Renderer_DrawText(selfPtr, text != null ? text.selfPtr : IntPtr.Zero); } - + /// /// コマンドリストを描画します。 /// @@ -9541,7 +10162,7 @@ internal void Render() { cbg_Renderer_Render(selfPtr); } - + /// /// 使用するカメラの設定をリセットします。 /// @@ -9549,13 +10170,13 @@ internal void ResetCamera() { cbg_Renderer_ResetCamera(selfPtr); } - + /// /// のインスタンスを削除します。 /// ~Renderer() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -9565,22 +10186,22 @@ internal void ResetCamera() } } } - + /// - /// + /// /// public partial class ShaderCompiler { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static ShaderCompiler TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { ShaderCompiler cacheRet; @@ -9595,62 +10216,62 @@ public static ShaderCompiler TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new ShaderCompiler(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ShaderCompiler_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_ShaderCompiler_Initialize(IntPtr graphics, IntPtr file); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ShaderCompiler_Terminate(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ShaderCompiler_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal ShaderCompiler(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public static ShaderCompiler GetInstance() { var ret = cbg_ShaderCompiler_GetInstance(); return ShaderCompiler.TryGetFromCache(ret); } - + public static bool Initialize(Graphics graphics, File file) { var ret = cbg_ShaderCompiler_Initialize(graphics != null ? graphics.selfPtr : IntPtr.Zero, file != null ? file.selfPtr : IntPtr.Zero); return ret; } - + public static void Terminate() { cbg_ShaderCompiler_Terminate(); } - + /// /// のインスタンスを削除します。 /// ~ShaderCompiler() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -9660,7 +10281,7 @@ public static void Terminate() } } } - + /// /// 段階的にファイルを読み取るクラス /// @@ -9668,15 +10289,15 @@ public static void Terminate() public sealed partial class StreamFile : ISerializable, ICacheKeeper, IDeserializationCallback { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static ConcurrentDictionary> cacheRepo = new ConcurrentDictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] internal static StreamFile TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { StreamFile cacheRet; @@ -9691,70 +10312,70 @@ internal static StreamFile TryGetFromCache(IntPtr native) cacheRepo.TryRemove(native, out _); } } - + var newObject = new StreamFile(new MemoryHandle(native)); cacheRepo.TryAdd(native, new WeakReference(newObject)); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StreamFile_Create([MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_StreamFile_Read(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_StreamFile_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_StreamFile_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_StreamFile_GetCurrentPosition(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StreamFile_GetInt8ArrayTempBuffer(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_StreamFile_GetTempBufferSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_StreamFile_GetIsInPackage(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StreamFile_GetPath(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_StreamFile_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal StreamFile(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 読み込むファイルのデータサイズを取得します。 /// @@ -9766,7 +10387,7 @@ public int Size return ret; } } - + /// /// 現在読み込んでいるファイル上の位置を取得します。 /// @@ -9778,7 +10399,7 @@ public int CurrentPosition return ret; } } - + internal Int8Array Int8ArrayTempBuffer { get @@ -9787,7 +10408,7 @@ internal Int8Array Int8ArrayTempBuffer return Int8Array.TryGetFromCache(ret); } } - + /// /// 現在読み込んでいるファイルのデータサイズを取得します。 /// @@ -9799,7 +10420,7 @@ public int TempBufferSize return ret; } } - + /// /// 読み込むファイルがファイルパッケージ内に格納されているかどうかを取得します。 /// @@ -9811,7 +10432,7 @@ public bool IsInPackage return ret; } } - + /// /// 読み込んだファイルのパスを取得します。 /// @@ -9823,7 +10444,7 @@ public string Path return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 指定ファイルを読み込むの新しいインスタンスを生成します。 /// @@ -9835,7 +10456,7 @@ public static StreamFile Create(string path) var ret = cbg_StreamFile_Create(path); return StreamFile.TryGetFromCache(ret); } - + /// /// 指定した分ファイルを読み込みます。 /// @@ -9845,7 +10466,7 @@ public int Read(int size) var ret = cbg_StreamFile_Read(selfPtr, size); return ret; } - + /// /// 再読み込みを行います。 /// @@ -9854,20 +10475,20 @@ public bool Reload() var ret = cbg_StreamFile_Reload(selfPtr); return ret; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_CurrentPosition = "S_CurrentPosition"; [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Path = "S_Path"; #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] private SerializationInfo seInfo; - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -9877,10 +10498,10 @@ public bool Reload() private StreamFile(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { seInfo = info; - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -9890,13 +10511,13 @@ private StreamFile(SerializationInfo info, StreamingContext context) : this(new void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_CurrentPosition, CurrentPosition); info.AddValue(S_Path, Path); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -9904,7 +10525,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -9912,7 +10533,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出されます。 /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -9921,7 +10542,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -9932,7 +10553,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -9945,12 +10566,12 @@ private void StreamFile_Unsetter_Deserialize(SerializationInfo info, out int Cur CurrentPosition = info.GetInt32(S_CurrentPosition); Path = info.GetString(S_Path); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -9960,14 +10581,14 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_StreamFile_Release(native); - + #endregion - + #endregion - + /// /// デシリアライズ時に実行 /// @@ -9976,15 +10597,15 @@ IntPtr ICacheKeeper.Self void IDeserializationCallback.OnDeserialization(object sender) { if (seInfo == null) return; - + var ptr = Call_GetPtr(seInfo); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserializationConcurrent(this, ptr); - - + + OnDeserialize_Method(sender); - + seInfo = null; } /// @@ -9993,13 +10614,13 @@ void IDeserializationCallback.OnDeserialization(object sender) /// 現在はサポートされていない 常にnullを返す [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Method(object sender); - + /// /// のインスタンスを削除します。 /// ~StreamFile() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10009,22 +10630,22 @@ void IDeserializationCallback.OnDeserialization(object sender) } } } - + /// /// カーソルを表します。 /// public sealed partial class Cursor { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Cursor TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Cursor cacheRet; @@ -10039,30 +10660,30 @@ public static Cursor TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Cursor(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Cursor_Create([MarshalAs(UnmanagedType.LPWStr)] string path, Vector2I hot); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Cursor_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Cursor(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 指定したpng画像を読み込んだのインスタンスを生成します。 /// @@ -10075,13 +10696,13 @@ public static Cursor Create(string path, Vector2I hot) var ret = cbg_Cursor_Create(path, hot); return Cursor.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~Cursor() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10091,22 +10712,22 @@ public static Cursor Create(string path, Vector2I hot) } } } - + /// /// ジョイスティックコントローラを表します。 /// public partial class JoystickInfo { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static JoystickInfo TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { JoystickInfo cacheRet; @@ -10121,82 +10742,82 @@ public static JoystickInfo TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new JoystickInfo(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_JoystickInfo_IsJoystickType(IntPtr selfPtr, int type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_JoystickInfo_GetName(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetButtonCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern int cbg_JoystickInfo_GetAxisCount(IntPtr selfPtr); - - + private static extern int cbg_JoystickInfo_GetAxisCount(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_JoystickInfo_GetIsGamepad(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_JoystickInfo_GetGamepadName(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_JoystickInfo_GetGUID(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetBustype(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetVendor(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetProduct(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetVersion(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_JoystickInfo_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal JoystickInfo(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// ジョイスティックの名前を取得します。 /// @@ -10208,7 +10829,7 @@ public string Name return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + public int ButtonCount { get @@ -10217,7 +10838,7 @@ public int ButtonCount return ret; } } - + public int AxisCount { get @@ -10226,7 +10847,7 @@ public int AxisCount return ret; } } - + /// /// ジョイスティックがGamepadとして使えるかどうかを取得します。 /// @@ -10238,7 +10859,7 @@ public bool IsGamepad return ret; } } - + /// /// ジョイスティックがGamepadとして使える時、その名前を取得します。 /// @@ -10250,7 +10871,7 @@ public string GamepadName return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + public string GUID { get @@ -10259,7 +10880,7 @@ public string GUID return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + public int Bustype { get @@ -10268,7 +10889,7 @@ public int Bustype return ret; } } - + /// /// 製造者IDを取得します。 /// @@ -10280,7 +10901,7 @@ public int Vendor return ret; } } - + /// /// 製品IDを取得します。 /// @@ -10292,7 +10913,7 @@ public int Product return ret; } } - + /// /// ジョイスティックのバージョンを取得します。 /// @@ -10304,7 +10925,7 @@ public int Version return ret; } } - + /// /// 指定したジョイスティックの種類に合致するかどうかを取得します。 /// @@ -10313,13 +10934,13 @@ public bool IsJoystickType(JoystickType type) var ret = cbg_JoystickInfo_IsJoystickType(selfPtr, (int)type); return ret; } - + /// /// のインスタンスを削除します。 /// ~JoystickInfo() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10329,22 +10950,22 @@ public bool IsJoystickType(JoystickType type) } } } - + /// /// ジョイスティックを表すクラス /// public sealed partial class Joystick { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Joystick TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Joystick cacheRet; @@ -10359,64 +10980,64 @@ public static Joystick TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Joystick(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Joystick_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Joystick_RefreshInputState(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Joystick_IsPresent(IntPtr selfPtr, int joystickIndex); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Joystick_GetJoystickInfo(IntPtr selfPtr, int joystickIndex); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Joystick_GetButtonStateByIndex(IntPtr selfPtr, int joystickIndex, int buttonIndex); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Joystick_GetButtonStateByType(IntPtr selfPtr, int joystickIndex, int type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Joystick_GetAxisStateByIndex(IntPtr selfPtr, int joystickIndex, int axisIndex); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Joystick_GetAxisStateByType(IntPtr selfPtr, int joystickIndex, int type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Joystick_GetConnectedJoystickCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Joystick_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Joystick(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 接続されているジョイスティックの数を取得します。 /// @@ -10428,7 +11049,7 @@ public int ConnectedJoystickCount return ret; } } - + /// /// インスタンスを取得します。 /// @@ -10437,12 +11058,12 @@ internal static Joystick GetInstance() var ret = cbg_Joystick_GetInstance(); return Joystick.TryGetFromCache(ret); } - + public void RefreshInputState() { cbg_Joystick_RefreshInputState(selfPtr); } - + /// /// 指定したジョイスティックが存在しているかどうかを取得します。 /// @@ -10452,7 +11073,7 @@ public bool IsPresent(int joystickIndex) var ret = cbg_Joystick_IsPresent(selfPtr, joystickIndex); return ret; } - + /// /// 指定したジョイスティックの情報を取得します。 /// @@ -10462,13 +11083,13 @@ public JoystickInfo GetJoystickInfo(int joystickIndex) var ret = cbg_Joystick_GetJoystickInfo(selfPtr, joystickIndex); return JoystickInfo.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~Joystick() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10478,22 +11099,22 @@ public JoystickInfo GetJoystickInfo(int joystickIndex) } } } - + /// /// キーボードを表します。 /// public sealed partial class Keyboard { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Keyboard TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Keyboard cacheRet; @@ -10508,38 +11129,38 @@ public static Keyboard TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Keyboard(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Keyboard_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Keyboard_RefleshKeyStates(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Keyboard_GetKeyState(IntPtr selfPtr, int key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Keyboard_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Keyboard(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// インスタンスを取得します。 /// @@ -10548,12 +11169,12 @@ internal static Keyboard GetInstance() var ret = cbg_Keyboard_GetInstance(); return Keyboard.TryGetFromCache(ret); } - + public void RefleshKeyStates() { cbg_Keyboard_RefleshKeyStates(selfPtr); } - + /// /// キーの状態を取得します。 /// @@ -10563,13 +11184,13 @@ public ButtonState GetKeyState(Key key) var ret = cbg_Keyboard_GetKeyState(selfPtr, (int)key); return (ButtonState)ret; } - + /// /// のインスタンスを削除します。 /// ~Keyboard() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10579,22 +11200,22 @@ public ButtonState GetKeyState(Key key) } } } - + /// /// マウスを表します。 /// public sealed partial class Mouse { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Mouse TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Mouse cacheRet; @@ -10609,64 +11230,64 @@ public static Mouse TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Mouse(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Mouse_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_RefreshInputState(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Mouse_GetMouseButtonState(IntPtr selfPtr, int button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Mouse_GetPosition(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_SetPosition(IntPtr selfPtr, Vector2F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Mouse_GetWheel(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Mouse_GetCursorMode(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_SetCursorMode(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_SetCursorImage(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Mouse(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// マウスカーソルの座標を取得または設定します。 /// @@ -10688,7 +11309,7 @@ public Vector2F Position } } private Vector2F? _Position; - + /// /// マウスホイールの回転量を取得します。 /// @@ -10700,7 +11321,7 @@ public float Wheel return ret; } } - + /// /// カーソルのモードを取得または設定します。 /// @@ -10722,7 +11343,7 @@ public CursorMode CursorMode } } private CursorMode? _CursorMode; - + public Cursor CursorImage { set @@ -10730,7 +11351,7 @@ public Cursor CursorImage cbg_Mouse_SetCursorImage(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); } } - + /// /// インスタンスを取得します。 /// @@ -10739,12 +11360,12 @@ internal static Mouse GetInstance() var ret = cbg_Mouse_GetInstance(); return Mouse.TryGetFromCache(ret); } - + public void RefreshInputState() { cbg_Mouse_RefreshInputState(selfPtr); } - + /// /// マウスボタンの状態を取得します。 /// @@ -10754,13 +11375,13 @@ public ButtonState GetMouseButtonState(MouseButton button) var ret = cbg_Mouse_GetMouseButtonState(selfPtr, (int)button); return (ButtonState)ret; } - + /// /// のインスタンスを削除します。 /// ~Mouse() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10770,22 +11391,22 @@ public ButtonState GetMouseButtonState(MouseButton button) } } } - + /// /// 映像を再生するクラス /// public partial class MediaPlayer { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static MediaPlayer TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { MediaPlayer cacheRet; @@ -10800,50 +11421,50 @@ public static MediaPlayer TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new MediaPlayer(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_MediaPlayer_Play(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool isLoopingMode); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_MediaPlayer_WriteToRenderTexture(IntPtr selfPtr, IntPtr target); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_MediaPlayer_Load([MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_MediaPlayer_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_MediaPlayer_GetCurrentFrame(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MediaPlayer_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal MediaPlayer(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 映像の大きさを取得します。 /// @@ -10855,7 +11476,7 @@ public Vector2I Size return ret; } } - + /// /// 映像の現在のフレーム番号を取得します。 /// @@ -10867,7 +11488,7 @@ public int CurrentFrame return ret; } } - + /// /// 映像を再生します。 /// @@ -10877,7 +11498,7 @@ public bool Play(bool isLoopingMode) var ret = cbg_MediaPlayer_Play(selfPtr, isLoopingMode); return ret; } - + /// /// 現在の映像のフレームをテクスチャに書き込みます。映像とテクスチャは同じサイズである必要があります。 /// @@ -10887,7 +11508,7 @@ public bool WriteToRenderTexture(RenderTexture target) var ret = cbg_MediaPlayer_WriteToRenderTexture(selfPtr, target != null ? target.selfPtr : IntPtr.Zero); return ret; } - + /// /// 映像を読み込みます。 /// @@ -10897,13 +11518,13 @@ public static MediaPlayer Load(string path) var ret = cbg_MediaPlayer_Load(path); return MediaPlayer.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~MediaPlayer() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10913,7 +11534,7 @@ public static MediaPlayer Load(string path) } } } - + /// /// コライダの抽象基本クラスです /// @@ -10921,15 +11542,15 @@ public static MediaPlayer Load(string path) public partial class Collider : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Collider TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Collider cacheRet; @@ -10944,63 +11565,63 @@ public static Collider TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Collider(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Collider_GetIsCollidedWith(IntPtr selfPtr, IntPtr collider); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Collider_GetPosition(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Collider_SetPosition(IntPtr selfPtr, Vector2F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Collider_GetRotation(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Collider_SetRotation(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_Collider_GetTransform(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Collider_SetTransform(IntPtr selfPtr, Matrix44F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Collider_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Collider(MemoryHandle handle) { selfPtr = handle.selfPtr; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Transform = "S_Transform"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -11010,15 +11631,15 @@ internal Collider(MemoryHandle handle) protected Collider(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + Transform = info.GetValue(S_Transform); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -11028,14 +11649,14 @@ protected Collider(SerializationInfo info, StreamingContext context) : this(new protected virtual void GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Transform, Transform); - + OnGetObjectData(info, context); } [EditorBrowsable(EditorBrowsableState.Never)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) => GetObjectData(info, context); - + /// /// 内で実行されます。 /// @@ -11043,7 +11664,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -11051,7 +11672,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -11060,7 +11681,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -11071,12 +11692,12 @@ protected private virtual IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -11086,20 +11707,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Collider_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Collider() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11109,7 +11730,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 図形コライダのクラス /// @@ -11117,15 +11738,15 @@ IntPtr ICacheKeeper.Self public partial class ShapeCollider : Collider, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new ShapeCollider TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { ShapeCollider cacheRet; @@ -11140,36 +11761,36 @@ public partial class ShapeCollider : Collider, ISerializable, ICacheKeeper(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ShapeCollider_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ShapeCollider_GetVertexes(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ShapeCollider_SetVertexes(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ShapeCollider_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal ShapeCollider(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 頂点座標を取得または設定します。 /// @@ -11191,15 +11812,15 @@ internal Vector2FArray Vertexes } } private Vector2FArray _Vertexes; - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Vertexes = "S_Vertexes"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -11210,15 +11831,15 @@ protected ShapeCollider(SerializationInfo info, StreamingContext context) : base { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + Vertexes = info.GetValue(S_Vertexes); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -11228,12 +11849,12 @@ protected ShapeCollider(SerializationInfo info, StreamingContext context) : base protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_Vertexes, Vertexes); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -11241,7 +11862,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -11249,7 +11870,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -11258,7 +11879,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -11269,12 +11890,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -11284,20 +11905,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_ShapeCollider_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~ShapeCollider() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11307,7 +11928,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 多角形コライダのクラス /// @@ -11315,15 +11936,15 @@ IntPtr ICacheKeeper.Self public partial class PolygonCollider : Collider, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new PolygonCollider TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { PolygonCollider cacheRet; @@ -11338,48 +11959,48 @@ public partial class PolygonCollider : Collider, ISerializable, ICacheKeeper(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_PolygonCollider_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_PolygonCollider_SetDefaultIndexBuffer(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_PolygonCollider_GetBuffers(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_PolygonCollider_SetBuffers(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_PolygonCollider_GetVertexes(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_PolygonCollider_SetVertexes(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_PolygonCollider_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal PolygonCollider(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 多角形コライダを作成します。 /// @@ -11388,13 +12009,13 @@ public static PolygonCollider Create() var ret = cbg_PolygonCollider_Create(); return PolygonCollider.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -11405,14 +12026,14 @@ protected PolygonCollider(SerializationInfo info, StreamingContext context) : ba { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -11422,11 +12043,11 @@ protected PolygonCollider(SerializationInfo info, StreamingContext context) : ba protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - - + + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -11434,7 +12055,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -11442,7 +12063,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -11451,7 +12072,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -11462,12 +12083,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -11477,20 +12098,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_PolygonCollider_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~PolygonCollider() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11500,7 +12121,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 線分コライダのクラス /// @@ -11508,15 +12129,15 @@ IntPtr ICacheKeeper.Self public partial class EdgeCollider : Collider, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new EdgeCollider TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { EdgeCollider cacheRet; @@ -11531,44 +12152,44 @@ public partial class EdgeCollider : Collider, ISerializable, ICacheKeeper(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_EdgeCollider_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_EdgeCollider_GetPoint1(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_EdgeCollider_SetPoint1(IntPtr selfPtr, Vector2F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_EdgeCollider_GetPoint2(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_EdgeCollider_SetPoint2(IntPtr selfPtr, Vector2F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_EdgeCollider_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal EdgeCollider(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 線分コライダの端点1を取得または設定します。 /// @@ -11590,7 +12211,7 @@ public Vector2F Point1 } } private Vector2F? _Point1; - + /// /// 線分コライダの端点2を取得または設定します。 /// @@ -11612,7 +12233,7 @@ public Vector2F Point2 } } private Vector2F? _Point2; - + /// /// 線分コライダを作成します。 /// @@ -11621,17 +12242,17 @@ public static EdgeCollider Create() var ret = cbg_EdgeCollider_Create(); return EdgeCollider.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Point1 = "S_Point1"; [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Point2 = "S_Point2"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -11642,16 +12263,16 @@ protected EdgeCollider(SerializationInfo info, StreamingContext context) : base( { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + Point1 = info.GetValue(S_Point1); Point2 = info.GetValue(S_Point2); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -11661,13 +12282,13 @@ protected EdgeCollider(SerializationInfo info, StreamingContext context) : base( protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_Point1, Point1); info.AddValue(S_Point2, Point2); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -11675,7 +12296,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -11683,7 +12304,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -11692,7 +12313,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -11703,12 +12324,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -11718,20 +12339,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_EdgeCollider_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~EdgeCollider() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11741,7 +12362,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 円形コライダのクラス /// @@ -11749,15 +12370,15 @@ IntPtr ICacheKeeper.Self public partial class CircleCollider : Collider, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new CircleCollider TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { CircleCollider cacheRet; @@ -11772,36 +12393,36 @@ public partial class CircleCollider : Collider, ISerializable, ICacheKeeper(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_CircleCollider_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_CircleCollider_GetRadius(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CircleCollider_SetRadius(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CircleCollider_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal CircleCollider(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 円形コライダの半径を取得または設定します。 /// @@ -11823,7 +12444,7 @@ public float Radius } } private float? _Radius; - + /// /// 円形コライダを作成します。 /// @@ -11832,15 +12453,15 @@ public static CircleCollider Create() var ret = cbg_CircleCollider_Create(); return CircleCollider.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Radius = "S_Radius"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -11851,15 +12472,15 @@ protected CircleCollider(SerializationInfo info, StreamingContext context) : bas { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + Radius = info.GetSingle(S_Radius); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -11869,12 +12490,12 @@ protected CircleCollider(SerializationInfo info, StreamingContext context) : bas protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_Radius, Radius); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -11882,7 +12503,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -11890,7 +12511,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -11899,7 +12520,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -11910,12 +12531,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -11925,20 +12546,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_CircleCollider_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~CircleCollider() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11948,7 +12569,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 音源のクラス /// @@ -11956,15 +12577,15 @@ IntPtr ICacheKeeper.Self public sealed partial class Sound : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Sound TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Sound cacheRet; @@ -11979,39 +12600,39 @@ public static Sound TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Sound(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Sound_Load([MarshalAs(UnmanagedType.LPWStr)] string path, [MarshalAs(UnmanagedType.Bool)] bool isDecompressed); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Sound_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Sound_GetLoopStartingPoint(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Sound_SetLoopStartingPoint(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Sound_GetLoopEndPoint(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Sound_SetLoopEndPoint(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -12019,36 +12640,36 @@ public static Sound TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Sound_SetIsLoopingMode(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Sound_GetLength(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Sound_GetPath(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Sound_GetIsDecompressed(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Sound_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Sound(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// ループ開始地点(秒)を取得または設定します。 /// @@ -12070,7 +12691,7 @@ public float LoopStartingPoint } } private float? _LoopStartingPoint; - + /// /// ループ終了地点(秒)を取得または設定します。 /// @@ -12092,7 +12713,7 @@ public float LoopEndPoint } } private float? _LoopEndPoint; - + /// /// ループするかどうかを取得または設定します。 /// @@ -12114,7 +12735,7 @@ public bool IsLoopingMode } } private bool? _IsLoopingMode; - + /// /// 音源の長さ(秒)を取得します。 /// @@ -12126,7 +12747,7 @@ public float Length return ret; } } - + /// /// 読み込んだファイルのパスを取得します。 /// @@ -12138,7 +12759,7 @@ internal string Path return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 音源が解凍されているかどうかを取得します。 /// @@ -12150,7 +12771,7 @@ public bool IsDecompressed return ret; } } - + /// /// 音声ファイルを読み込みます。 /// @@ -12163,16 +12784,16 @@ public static Sound Load(string path, bool isDecompressed) var ret = cbg_Sound_Load(path, isDecompressed); return Sound.TryGetFromCache(ret); } - + public bool Reload() { var ret = cbg_Sound_Reload(selfPtr); return ret; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_LoopStartingPoint = "S_LoopStartingPoint"; @@ -12185,7 +12806,7 @@ public bool Reload() [EditorBrowsable(EditorBrowsableState.Never)] private const string S_IsDecompressed = "S_IsDecompressed"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -12195,17 +12816,17 @@ public bool Reload() private Sound(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + LoopStartingPoint = info.GetSingle(S_LoopStartingPoint); LoopEndPoint = info.GetSingle(S_LoopEndPoint); IsLoopingMode = info.GetBoolean(S_IsLoopingMode); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -12215,16 +12836,16 @@ private Sound(SerializationInfo info, StreamingContext context) : this(new Memor void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_LoopStartingPoint, LoopStartingPoint); info.AddValue(S_LoopEndPoint, LoopEndPoint); info.AddValue(S_IsLoopingMode, IsLoopingMode); info.AddValue(S_Path, Path); info.AddValue(S_IsDecompressed, IsDecompressed); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -12232,7 +12853,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -12240,7 +12861,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -12249,7 +12870,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -12260,7 +12881,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -12273,12 +12894,12 @@ private void Sound_Unsetter_Deserialize(SerializationInfo info, out string Path, Path = info.GetString(S_Path) ?? throw new SerializationException("デシリアライズに失敗しました"); IsDecompressed = info.GetBoolean(S_IsDecompressed); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -12288,20 +12909,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Sound_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Sound() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -12311,22 +12932,22 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 音源を操作するクラス /// public sealed partial class SoundMixer { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static SoundMixer TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { SoundMixer cacheRet; @@ -12341,118 +12962,118 @@ public static SoundMixer TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new SoundMixer(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_SoundMixer_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_SoundMixer_Play(IntPtr selfPtr, IntPtr sound); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_SoundMixer_GetIsPlaying(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_StopAll(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Stop(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Pause(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Resume(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_SetVolume(IntPtr selfPtr, int id, float volume); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_FadeIn(IntPtr selfPtr, int id, float second); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_FadeOut(IntPtr selfPtr, int id, float second); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Fade(IntPtr selfPtr, int id, float second, float targetedVolume); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_SoundMixer_GetIsPlaybackSpeedEnabled(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_SetIsPlaybackSpeedEnabled(IntPtr selfPtr, int id, [MarshalAs(UnmanagedType.Bool)] bool isPlaybackSpeedEnabled); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_SoundMixer_GetPlaybackSpeed(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_SetPlaybackSpeed(IntPtr selfPtr, int id, float playbackSpeed); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_SoundMixer_GetPanningPosition(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_SetPanningPosition(IntPtr selfPtr, int id, float panningPosition); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_SoundMixer_GetPlaybackPosition(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_SetPlaybackPosition(IntPtr selfPtr, int id, float position); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_GetSpectrum(IntPtr selfPtr, int id, IntPtr spectrums, int window); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal SoundMixer(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + internal static SoundMixer GetInstance() { var ret = cbg_SoundMixer_GetInstance(); return SoundMixer.TryGetFromCache(ret); } - + /// /// 音を再生します。 /// @@ -12464,7 +13085,7 @@ public int Play(Sound sound) var ret = cbg_SoundMixer_Play(selfPtr, sound != null ? sound.selfPtr : IntPtr.Zero); return ret; } - + /// /// 指定した音が再生中であるかを取得します。 /// @@ -12474,7 +13095,7 @@ public bool GetIsPlaying(int id) var ret = cbg_SoundMixer_GetIsPlaying(selfPtr, id); return ret; } - + /// /// 再生中の音を全て停止します。 /// @@ -12482,7 +13103,7 @@ public void StopAll() { cbg_SoundMixer_StopAll(selfPtr); } - + /// /// 指定した音の再生を停止します。 /// @@ -12491,7 +13112,7 @@ public void Stop(int id) { cbg_SoundMixer_Stop(selfPtr, id); } - + /// /// 指定した音の再生を一時停止します。 /// @@ -12500,7 +13121,7 @@ public void Pause(int id) { cbg_SoundMixer_Pause(selfPtr, id); } - + /// /// 指定した音の再生を再開します。 /// @@ -12509,7 +13130,7 @@ public void Resume(int id) { cbg_SoundMixer_Resume(selfPtr, id); } - + /// /// 指定した音の音量を変更します。 /// @@ -12519,7 +13140,7 @@ public void SetVolume(int id, float volume) { cbg_SoundMixer_SetVolume(selfPtr, id, volume); } - + /// /// 指定した音をフェードインさせます。 /// @@ -12528,7 +13149,7 @@ public void FadeIn(int id, float second) { cbg_SoundMixer_FadeIn(selfPtr, id, second); } - + /// /// 指定した音をフェードアウトさせます。 /// @@ -12538,7 +13159,7 @@ public void FadeOut(int id, float second) { cbg_SoundMixer_FadeOut(selfPtr, id, second); } - + /// /// 指定した音の音量を一定時間かけて変更します。 /// @@ -12549,7 +13170,7 @@ public void Fade(int id, float second, float targetedVolume) { cbg_SoundMixer_Fade(selfPtr, id, second, targetedVolume); } - + /// /// 再生速度を変更するかを取得します。 /// @@ -12559,7 +13180,7 @@ public bool GetIsPlaybackSpeedEnabled(int id) var ret = cbg_SoundMixer_GetIsPlaybackSpeedEnabled(selfPtr, id); return ret; } - + /// /// 再生速度を変更するかを設定します。 /// @@ -12569,7 +13190,7 @@ public void SetIsPlaybackSpeedEnabled(int id, bool isPlaybackSpeedEnabled) { cbg_SoundMixer_SetIsPlaybackSpeedEnabled(selfPtr, id, isPlaybackSpeedEnabled); } - + /// /// 再生速度を取得します。 /// @@ -12579,7 +13200,7 @@ public float GetPlaybackSpeed(int id) var ret = cbg_SoundMixer_GetPlaybackSpeed(selfPtr, id); return ret; } - + /// /// 再生速度を設定します。 /// @@ -12589,7 +13210,7 @@ public void SetPlaybackSpeed(int id, float playbackSpeed) { cbg_SoundMixer_SetPlaybackSpeed(selfPtr, id, playbackSpeed); } - + /// /// パン位置を取得します。 /// @@ -12599,7 +13220,7 @@ public float GetPanningPosition(int id) var ret = cbg_SoundMixer_GetPanningPosition(selfPtr, id); return ret; } - + /// /// パン位置を設定します。 /// @@ -12609,7 +13230,7 @@ public void SetPanningPosition(int id, float panningPosition) { cbg_SoundMixer_SetPanningPosition(selfPtr, id, panningPosition); } - + /// /// 指定した音の再生位置を取得します。 /// @@ -12619,7 +13240,7 @@ public float GetPlaybackPosition(int id) var ret = cbg_SoundMixer_GetPlaybackPosition(selfPtr, id); return ret; } - + /// /// 指定した音の再生位置を変更します。 /// @@ -12629,7 +13250,7 @@ public void SetPlaybackPosition(int id, float position) { cbg_SoundMixer_SetPlaybackPosition(selfPtr, id, position); } - + /// /// 再生中の音のスペクトル情報を取得します。 /// @@ -12640,18 +13261,18 @@ internal void GetSpectrum(int id, FloatArray spectrums, FFTWindow window) { cbg_SoundMixer_GetSpectrum(selfPtr, id, spectrums != null ? spectrums.selfPtr : IntPtr.Zero, (int)window); } - + public void Reload() { cbg_SoundMixer_Reload(selfPtr); } - + /// /// のインスタンスを削除します。 /// ~SoundMixer() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -12661,22 +13282,22 @@ public void Reload() } } } - + /// /// imguiのツール処理を行うクラス /// public sealed partial class Tool { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Tool TryGetFromCache(IntPtr native) { if(native == IntPtr.Zero) return null; - + if(cacheRepo.ContainsKey(native)) { Tool cacheRet; @@ -12691,1376 +13312,1376 @@ public static Tool TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Tool(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_NewFrame(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Render(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_AddFontFromFileTTF(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path, float sizePixels, int ranges); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ListBox(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int current, [MarshalAs(UnmanagedType.LPWStr)] string items_separated_by_tabs, int popup_max_height_in_items); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_InputText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string input, int max_length, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_InputTextWithHint(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string hint, [MarshalAs(UnmanagedType.LPWStr)] string input, int max_length, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_InputTextMultiline(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string input, int max_length, Vector2F size, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ColorEdit3_char16p_FloatArray_ToolColorEditFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr col, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ColorEdit4_char16p_FloatArray_ToolColorEditFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr col, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Image(IntPtr selfPtr, IntPtr texture, Vector2F size, Vector2F uv0, Vector2F uv1, Color tint_col, Color border_col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ImageButton(IntPtr selfPtr, IntPtr texture, Vector2F size, Vector2F uv0, Vector2F uv1, int frame_padding, Color bg_col, Color tint_col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Combo(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int current_item, [MarshalAs(UnmanagedType.LPWStr)] string items_separated_by_tabs, int popup_max_height_in_items); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PlotLines(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr values, int values_count, int values_offset, [MarshalAs(UnmanagedType.LPWStr)] string overlay_text, float scale_min, float scale_max, Vector2F graph_size, int stride); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PlotHistogram(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr values, int values_count, int values_offset, [MarshalAs(UnmanagedType.LPWStr)] string overlay_text, float scale_min, float scale_max, Vector2F graph_size, int stride); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetTime(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetMainViewportID(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMainViewportPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMainViewportSize(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMainViewportWorkPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMainViewportWorkSize(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_DockSpace(IntPtr selfPtr, int id, Vector2F size, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginDockHost(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, Vector2F offset); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowDemoWindowNoCloseButton(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowAboutWindowNoCloseButton(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowMetricsWindowNoCloseButton(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Begin_char16p_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Begin_char16p_boolp_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopupModal_char16p_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopupModal_char16p_boolp_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginTabItem_char16p_ToolTabItemFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginTabItem_char16p_boolp_ToolTabItemFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_OpenDialog(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string filter, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_OpenDialogMultiple(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string filter, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_SaveDialog(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string filter, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_PickFolder(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowDemoWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowAboutWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowMetricsWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ShowStyleSelector(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowFontSelector(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowUserGuide(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_GetVersion(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_End(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginChild_char16p_Vector2F_C_bool_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, Vector2F size, [MarshalAs(UnmanagedType.Bool)] bool border, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginChild_int_Vector2F_C_bool_ToolWindowFlags(IntPtr selfPtr, int id, Vector2F size, [MarshalAs(UnmanagedType.Bool)] bool border, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndChild(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsWindowAppearing(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsWindowCollapsed(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsWindowFocused(IntPtr selfPtr, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsWindowHovered(IntPtr selfPtr, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetWindowDpiScale(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetWindowPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetWindowSize(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetWindowWidth(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetWindowHeight(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowPos(IntPtr selfPtr, Vector2F pos, int cond, Vector2F pivot); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowSize(IntPtr selfPtr, Vector2F size, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowContentSize(IntPtr selfPtr, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowCollapsed(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool collapsed, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowFocus(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowBgAlpha(IntPtr selfPtr, float alpha); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowViewport(IntPtr selfPtr, int viewport_id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowPos_Vector2F_C_ToolCond(IntPtr selfPtr, Vector2F pos, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowPos_char16p_Vector2F_C_ToolCond(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, Vector2F pos, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowSize_Vector2F_C_ToolCond(IntPtr selfPtr, Vector2F size, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowSize_char16p_Vector2F_C_ToolCond(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, Vector2F size, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowCollapsed_bool_ToolCond(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool collapsed, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowCollapsed_char16p_bool_ToolCond(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.Bool)] bool collapsed, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowFocus_(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowFocus_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowFontScale(IntPtr selfPtr, float scale); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetContentRegionMax(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetContentRegionAvail(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetWindowContentRegionMin(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetWindowContentRegionMax(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetWindowContentRegionWidth(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetScrollX(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetScrollY(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetScrollMaxX(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetScrollMaxY(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollX(IntPtr selfPtr, float scroll_x); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollY(IntPtr selfPtr, float scroll_y); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollHereX(IntPtr selfPtr, float center_x_ratio); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollHereY(IntPtr selfPtr, float center_y_ratio); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollFromPosX(IntPtr selfPtr, float local_x, float center_x_ratio); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollFromPosY(IntPtr selfPtr, float local_y, float center_y_ratio); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopFont(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushStyleColor_ToolCol_int(IntPtr selfPtr, int idx, int col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushStyleColor_ToolCol_Vector4F_C(IntPtr selfPtr, int idx, Vector4F col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopStyleColor(IntPtr selfPtr, int count); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushStyleVar_ToolStyleVar_float(IntPtr selfPtr, int idx, float val); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushStyleVar_ToolStyleVar_Vector2F_C(IntPtr selfPtr, int idx, Vector2F val); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopStyleVar(IntPtr selfPtr, int count); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetFontSize(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetFontTexUvWhitePixel(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetColorU32_ToolCol_float(IntPtr selfPtr, int idx, float alpha_mul); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetColorU32_Vector4F_C(IntPtr selfPtr, Vector4F col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetColorU32_int(IntPtr selfPtr, int col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushItemWidth(IntPtr selfPtr, float item_width); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopItemWidth(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextItemWidth(IntPtr selfPtr, float item_width); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_CalcItemWidth(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushTextWrapPos(IntPtr selfPtr, float wrap_local_pos_x); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopTextWrapPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushAllowKeyboardFocus(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool allow_keyboard_focus); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopAllowKeyboardFocus(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushButtonRepeat(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool repeat); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopButtonRepeat(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Separator(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SameLine(IntPtr selfPtr, float offset_from_start_x, float spacing); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_NewLine(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Spacing(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Dummy(IntPtr selfPtr, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Indent(IntPtr selfPtr, float indent_w); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Unindent(IntPtr selfPtr, float indent_w); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_BeginGroup(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndGroup(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetCursorPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetCursorPosX(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetCursorPosY(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetCursorPos(IntPtr selfPtr, Vector2F local_pos); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetCursorPosX(IntPtr selfPtr, float local_x); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetCursorPosY(IntPtr selfPtr, float local_y); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetCursorStartPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetCursorScreenPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetCursorScreenPos(IntPtr selfPtr, Vector2F pos); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_AlignTextToFramePadding(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetTextLineHeight(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetTextLineHeightWithSpacing(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetFrameHeight(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetFrameHeightWithSpacing(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushID_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushID_char16p_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id_begin, [MarshalAs(UnmanagedType.LPWStr)] string str_id_end); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushID_int(IntPtr selfPtr, int int_id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopID(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetID_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetID_char16p_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id_begin, [MarshalAs(UnmanagedType.LPWStr)] string str_id_end); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TextUnformatted(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string text, [MarshalAs(UnmanagedType.LPWStr)] string text_end); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Text(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TextColored(IntPtr selfPtr, Vector4F col, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TextDisabled(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TextWrapped(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LabelText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_BulletText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Button(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SmallButton(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InvisibleButton(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, Vector2F size, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ArrowButton(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int dir); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Checkbox(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool v); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_RadioButton_char16p_bool(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] bool active); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_RadioButton_char16p_intp_int(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int v, int v_button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ProgressBar(IntPtr selfPtr, float fraction, Vector2F size_arg, [MarshalAs(UnmanagedType.LPWStr)] string overlay); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Bullet(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginCombo(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string preview_value, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndCombo(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragFloat(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref float v, float v_speed, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragFloat2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragFloat3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragFloat4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragFloatRange2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref float v_current_min, [In, Out] ref float v_current_max, float v_speed, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, [MarshalAs(UnmanagedType.LPWStr)] string format_max, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragInt(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int v, float v_speed, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragInt2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragInt3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragInt4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragIntRange2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int v_current_min, [In, Out] ref int v_current_max, float v_speed, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, [MarshalAs(UnmanagedType.LPWStr)] string format_max, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderFloat(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref float v, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderFloat2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderFloat3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderFloat4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderAngle(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref float v_rad, float v_degrees_min, float v_degrees_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderInt(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int v, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderInt2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderInt3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderInt4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_VSliderFloat(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, Vector2F size, [In, Out] ref float v, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_VSliderInt(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, Vector2F size, [In, Out] ref int v, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputFloat(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref float v, float step, float step_fast, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputFloat2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputFloat3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputFloat4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputInt(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int v, int step, int step_fast, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputInt2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputInt3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputInt4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ColorPicker3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr col, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ColorPicker4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr col, int flags, [In, Out] ref float ref_col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetColorEditOptions(IntPtr selfPtr, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_TreeNode_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_TreeNode_char16p_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_TreeNodeEx_char16p_ToolTreeNodeFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_TreeNodeEx_char16p_ToolTreeNodeFlags_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int flags, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TreePush(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TreePop(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetTreeNodeToLabelSpacing(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_CollapsingHeader_char16p_ToolTreeNodeFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_CollapsingHeader_char16p_boolp_ToolTreeNodeFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextItemOpen(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool is_open, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Selectable_char16p_bool_ToolSelectableFlags_Vector2F_C(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] bool selected, int flags, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Selectable_char16p_boolp_ToolSelectableFlags_Vector2F_C(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_selected, int flags, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ListBoxHeader_char16p_Vector2F_C(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ListBoxHeader_char16p_int_int(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, int items_count, int height_in_items); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ListBoxFooter(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Value_char16p_bool(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string prefix, [MarshalAs(UnmanagedType.Bool)] bool b); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Value_char16p_int(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string prefix, int v); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Value_char16p_float_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string prefix, float v, [MarshalAs(UnmanagedType.LPWStr)] string float_format); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginMenuBar(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndMenuBar(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginMainMenuBar(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndMainMenuBar(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginMenu(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] bool enabled); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndMenu(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_MenuItem_char16p_char16p_bool_bool(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string shortcut, [MarshalAs(UnmanagedType.Bool)] bool selected, [MarshalAs(UnmanagedType.Bool)] bool enabled); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_MenuItem_char16p_char16p_boolp_bool(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string shortcut, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_selected, [MarshalAs(UnmanagedType.Bool)] bool enabled); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_BeginTooltip(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndTooltip(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetTooltip(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopup(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndPopup(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_OpenPopup(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int popup_flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_OpenPopupOnItemClick(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int popup_flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_CloseCurrentPopup(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopupContextItem(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int popup_flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopupContextWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int popup_flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopupContextVoid(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int popup_flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsPopupOpen(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Columns(IntPtr selfPtr, int count, [MarshalAs(UnmanagedType.LPWStr)] string id, [MarshalAs(UnmanagedType.Bool)] bool border); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_NextColumn(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetColumnIndex(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetColumnWidth(IntPtr selfPtr, int column_index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetColumnWidth(IntPtr selfPtr, int column_index, float width); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetColumnOffset(IntPtr selfPtr, int column_index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetColumnOffset(IntPtr selfPtr, int column_index, float offset_x); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetColumnsCount(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginTabBar(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndTabBar(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndTabItem(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_TabItemButton(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetTabItemClosed(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string tab_or_docked_window_label); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowDockID(IntPtr selfPtr, int dock_id, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetWindowDockID(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsWindowDocked(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogToTTY(IntPtr selfPtr, int auto_open_depth); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogToFile(IntPtr selfPtr, int auto_open_depth, [MarshalAs(UnmanagedType.LPWStr)] string filename); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogToClipboard(IntPtr selfPtr, int auto_open_depth); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogFinish(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogButtons(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginDragDropSource(IntPtr selfPtr, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndDragDropSource(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginDragDropTarget(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndDragDropTarget(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushClipRect(IntPtr selfPtr, Vector2F clip_rect_min, Vector2F clip_rect_max, [MarshalAs(UnmanagedType.Bool)] bool intersect_with_current_clip_rect); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopClipRect(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetItemDefaultFocus(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetKeyboardFocusHere(IntPtr selfPtr, int offset); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemHovered(IntPtr selfPtr, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemActive(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemFocused(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemClicked(IntPtr selfPtr, int mouse_button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemVisible(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemEdited(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemActivated(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemDeactivated(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemDeactivatedAfterEdit(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemToggledOpen(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsAnyItemHovered(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsAnyItemActive(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsAnyItemFocused(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetItemRectMin(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetItemRectMax(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetItemRectSize(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetItemAllowOverlap(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsRectVisible_Vector2F_C(IntPtr selfPtr, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsRectVisible_Vector2F_C_Vector2F_C(IntPtr selfPtr, Vector2F rect_min, Vector2F rect_max); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetFrameCount(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_GetStyleColorName(IntPtr selfPtr, int idx); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_CalcListClipping(IntPtr selfPtr, int items_count, float items_height, [In, Out] ref int out_items_display_start, [In, Out] ref int out_items_display_end); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginChildFrame(IntPtr selfPtr, int id, Vector2F size, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndChildFrame(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_CalcTextSize(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string text, [MarshalAs(UnmanagedType.LPWStr)] string text_end, [MarshalAs(UnmanagedType.Bool)] bool hide_text_after_double_hash, float wrap_width); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector4F cbg_Tool_ColorConvertU32ToFloat4(IntPtr selfPtr, int in_); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_ColorConvertFloat4ToU32(IntPtr selfPtr, Vector4F in_); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetKeyIndex(IntPtr selfPtr, int imgui_key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsKeyDown(IntPtr selfPtr, int user_key_index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsKeyPressed(IntPtr selfPtr, int user_key_index, [MarshalAs(UnmanagedType.Bool)] bool repeat); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsKeyReleased(IntPtr selfPtr, int user_key_index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetKeyPressedAmount(IntPtr selfPtr, int key_index, float repeat_delay, float rate); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_CaptureKeyboardFromApp(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool want_capture_keyboard_value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseDown(IntPtr selfPtr, int button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseClicked(IntPtr selfPtr, int button, [MarshalAs(UnmanagedType.Bool)] bool repeat); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseReleased(IntPtr selfPtr, int button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseDoubleClicked(IntPtr selfPtr, int button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseHoveringRect(IntPtr selfPtr, Vector2F r_min, Vector2F r_max, [MarshalAs(UnmanagedType.Bool)] bool clip); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsAnyMouseDown(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMousePos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMousePosOnOpeningCurrentPopup(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseDragging(IntPtr selfPtr, int button, float lock_threshold); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMouseDragDelta(IntPtr selfPtr, int button, float lock_threshold); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ResetMouseDragDelta(IntPtr selfPtr, int button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetMouseCursor(IntPtr selfPtr, int cursor_type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_CaptureMouseFromApp(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool want_capture_mouse_value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_GetClipboardText(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetClipboardText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string text); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LoadIniSettingsFromDisk(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string ini_filename); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SaveIniSettingsToDisk(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string ini_filename); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_UpdatePlatformWindows(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_DestroyPlatformWindows(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetToolUsage(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetToolUsage(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Tool(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// ツールの使用方法を取得または設定します。 /// @@ -14082,7 +14703,7 @@ public ToolUsage ToolUsage } } private ToolUsage? _ToolUsage; - + /// /// インスタンスを取得します。 /// @@ -14091,17 +14712,17 @@ internal static Tool GetInstance() var ret = cbg_Tool_GetInstance(); return Tool.TryGetFromCache(ret); } - + public void NewFrame() { cbg_Tool_NewFrame(selfPtr); } - + public void Render() { cbg_Tool_Render(selfPtr); } - + /// /// パスからフォントを読み込みます。パックされたファイルは非対応です。 /// @@ -14112,7 +14733,7 @@ public bool AddFontFromFileTTF(string path, float sizePixels, ToolGlyphRange ran var ret = cbg_Tool_AddFontFromFileTTF(selfPtr, path, sizePixels, (int)ranges); return ret; } - + /// /// リストボックスを生成します。 /// @@ -14126,7 +14747,7 @@ public bool ListBox(string label, ref int current, string items_separated_by_tab var ret = cbg_Tool_ListBox(selfPtr, label, ref current, items_separated_by_tabs, popup_max_height_in_items); return ret; } - + /// /// テキストを入力するボックスを生成します。 /// @@ -14141,7 +14762,7 @@ public string InputText(string label, string input, int max_length, ToolInputTex var ret = cbg_Tool_InputText(selfPtr, label, input, max_length, (int)flags); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// ヒント付きのテキスト入力ボックスを生成します。 /// @@ -14158,7 +14779,7 @@ public string InputTextWithHint(string label, string hint, string input, int max var ret = cbg_Tool_InputTextWithHint(selfPtr, label, hint, input, max_length, (int)flags); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// 複数行のテキストが入力可能なボックスを生成します。 /// @@ -14174,7 +14795,7 @@ public string InputTextMultiline(string label, string input, int max_length, Vec var ret = cbg_Tool_InputTextMultiline(selfPtr, label, input, max_length, size, (int)flags); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// 色を入力するツールを生成します。 /// @@ -14187,7 +14808,7 @@ internal bool ColorEdit3(string label, FloatArray col, ToolColorEditFlags flags) var ret = cbg_Tool_ColorEdit3_char16p_FloatArray_ToolColorEditFlags(selfPtr, label, col != null ? col.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + /// /// 色を入力するツールを生成します。 /// @@ -14200,7 +14821,7 @@ internal bool ColorEdit4(string label, FloatArray col, ToolColorEditFlags flags) var ret = cbg_Tool_ColorEdit4_char16p_FloatArray_ToolColorEditFlags(selfPtr, label, col != null ? col.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + /// /// 画像表示ボックスを生成します。 /// @@ -14212,7 +14833,7 @@ public void Image(TextureBase texture, Vector2F size, Vector2F uv0, Vector2F uv1 { cbg_Tool_Image(selfPtr, texture != null ? texture.selfPtr : IntPtr.Zero, size, uv0, uv1, tint_col, border_col); } - + /// /// ボタンとして機能する画像表示ボックスを生成します。 /// @@ -14225,7 +14846,7 @@ public bool ImageButton(TextureBase texture, Vector2F size, Vector2F uv0, Vector var ret = cbg_Tool_ImageButton(selfPtr, texture != null ? texture.selfPtr : IntPtr.Zero, size, uv0, uv1, frame_padding, bg_col, tint_col); return ret; } - + /// /// コンボボックスを生成します。 /// @@ -14239,84 +14860,84 @@ public bool Combo(string label, ref int current_item, string items_separated_by_ var ret = cbg_Tool_Combo(selfPtr, label, ref current_item, items_separated_by_tabs, popup_max_height_in_items); return ret; } - + internal void PlotLines(string label, FloatArray values, int values_count, int values_offset, string overlay_text, float scale_min, float scale_max, Vector2F graph_size, int stride) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); if (overlay_text == null) throw new ArgumentNullException(nameof(overlay_text), "引数がnullです"); cbg_Tool_PlotLines(selfPtr, label, values != null ? values.selfPtr : IntPtr.Zero, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride); } - + internal void PlotHistogram(string label, FloatArray values, int values_count, int values_offset, string overlay_text, float scale_min, float scale_max, Vector2F graph_size, int stride) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); if (overlay_text == null) throw new ArgumentNullException(nameof(overlay_text), "引数がnullです"); cbg_Tool_PlotHistogram(selfPtr, label, values != null ? values.selfPtr : IntPtr.Zero, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride); } - + public float GetTime() { var ret = cbg_Tool_GetTime(selfPtr); return ret; } - + public int GetMainViewportID() { var ret = cbg_Tool_GetMainViewportID(selfPtr); return ret; } - + public Vector2F GetMainViewportPos() { var ret = cbg_Tool_GetMainViewportPos(selfPtr); return ret; } - + public Vector2F GetMainViewportSize() { var ret = cbg_Tool_GetMainViewportSize(selfPtr); return ret; } - + public Vector2F GetMainViewportWorkPos() { var ret = cbg_Tool_GetMainViewportWorkPos(selfPtr); return ret; } - + public Vector2F GetMainViewportWorkSize() { var ret = cbg_Tool_GetMainViewportWorkSize(selfPtr); return ret; } - + public void DockSpace(int id, Vector2F size, ToolDockNodeFlags flags) { cbg_Tool_DockSpace(selfPtr, id, size, (int)flags); } - + public bool BeginDockHost(string label, Vector2F offset) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_BeginDockHost(selfPtr, label, offset); return ret; } - + public void ShowDemoWindowNoCloseButton() { cbg_Tool_ShowDemoWindowNoCloseButton(selfPtr); } - + public void ShowAboutWindowNoCloseButton() { cbg_Tool_ShowAboutWindowNoCloseButton(selfPtr); } - + public void ShowMetricsWindowNoCloseButton() { cbg_Tool_ShowMetricsWindowNoCloseButton(selfPtr); } - + /// /// 'End()' を呼び出してください。 /// @@ -14327,7 +14948,7 @@ public bool Begin(string name, ToolWindowFlags flags) var ret = cbg_Tool_Begin_char16p_ToolWindowFlags(selfPtr, name, (int)flags); return ret; } - + /// /// 'End()' を呼び出してください。 /// @@ -14338,7 +14959,7 @@ public bool Begin(string name, ref bool p_open, ToolWindowFlags flags) var ret = cbg_Tool_Begin_char16p_boolp_ToolWindowFlags(selfPtr, name, ref p_open, (int)flags); return ret; } - + /// /// 'EndPopup()' を呼び出してください /// @@ -14349,7 +14970,7 @@ public bool BeginPopupModal(string name, ToolWindowFlags flags) var ret = cbg_Tool_BeginPopupModal_char16p_ToolWindowFlags(selfPtr, name, (int)flags); return ret; } - + /// /// 'EndPopup()' を呼び出してください /// @@ -14360,7 +14981,7 @@ public bool BeginPopupModal(string name, ref bool p_open, ToolWindowFlags flags) var ret = cbg_Tool_BeginPopupModal_char16p_boolp_ToolWindowFlags(selfPtr, name, ref p_open, (int)flags); return ret; } - + /// /// 'EndTabItem()' を呼び出してください /// @@ -14371,7 +14992,7 @@ public bool BeginTabItem(string label, ToolTabItemFlags flags) var ret = cbg_Tool_BeginTabItem_char16p_ToolTabItemFlags(selfPtr, label, (int)flags); return ret; } - + /// /// 'EndTabItem()' を呼び出してください /// @@ -14382,7 +15003,7 @@ public bool BeginTabItem(string label, ref bool p_open, ToolTabItemFlags flags) var ret = cbg_Tool_BeginTabItem_char16p_boolp_ToolTabItemFlags(selfPtr, label, ref p_open, (int)flags); return ret; } - + /// /// 1つの開くファイルを選択するダイアログを開きます。 /// @@ -14396,7 +15017,7 @@ public string OpenDialog(string filter, string defaultPath) var ret = cbg_Tool_OpenDialog(selfPtr, filter, defaultPath); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// 複数の開くファイルを選択するダイアログを開きます。 /// @@ -14410,7 +15031,7 @@ public string OpenDialogMultiple(string filter, string defaultPath) var ret = cbg_Tool_OpenDialogMultiple(selfPtr, filter, defaultPath); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// 保存するファイルを選択するダイアログを開きます。 /// @@ -14424,7 +15045,7 @@ public string SaveDialog(string filter, string defaultPath) var ret = cbg_Tool_SaveDialog(selfPtr, filter, defaultPath); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// フォルダを選択するダイアログを開きます。 /// @@ -14436,51 +15057,51 @@ public string PickFolder(string defaultPath) var ret = cbg_Tool_PickFolder(selfPtr, defaultPath); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + public void ShowDemoWindow(ref bool p_open) { cbg_Tool_ShowDemoWindow(selfPtr, ref p_open); } - + public void ShowAboutWindow(ref bool p_open) { cbg_Tool_ShowAboutWindow(selfPtr, ref p_open); } - + public void ShowMetricsWindow(ref bool p_open) { cbg_Tool_ShowMetricsWindow(selfPtr, ref p_open); } - + public bool ShowStyleSelector(string label) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_ShowStyleSelector(selfPtr, label); return ret; } - + public void ShowFontSelector(string label) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); cbg_Tool_ShowFontSelector(selfPtr, label); } - + public void ShowUserGuide() { cbg_Tool_ShowUserGuide(selfPtr); } - + public string GetVersion() { var ret = cbg_Tool_GetVersion(selfPtr); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + public void End() { cbg_Tool_End(selfPtr); } - + /// /// 'EndChild()' を呼び出してください /// @@ -14491,7 +15112,7 @@ public bool BeginChild(string str_id, Vector2F size, bool border, ToolWindowFlag var ret = cbg_Tool_BeginChild_char16p_Vector2F_C_bool_ToolWindowFlags(selfPtr, str_id, size, border, (int)flags); return ret; } - + /// /// 'EndChild()' を呼び出してください /// @@ -14500,350 +15121,350 @@ public bool BeginChild(int id, Vector2F size, bool border, ToolWindowFlags flags var ret = cbg_Tool_BeginChild_int_Vector2F_C_bool_ToolWindowFlags(selfPtr, id, size, border, (int)flags); return ret; } - + public void EndChild() { cbg_Tool_EndChild(selfPtr); } - + public bool IsWindowAppearing() { var ret = cbg_Tool_IsWindowAppearing(selfPtr); return ret; } - + public bool IsWindowCollapsed() { var ret = cbg_Tool_IsWindowCollapsed(selfPtr); return ret; } - + public bool IsWindowFocused(ToolFocusedFlags flags) { var ret = cbg_Tool_IsWindowFocused(selfPtr, (int)flags); return ret; } - + public bool IsWindowHovered(ToolHoveredFlags flags) { var ret = cbg_Tool_IsWindowHovered(selfPtr, (int)flags); return ret; } - + public float GetWindowDpiScale() { var ret = cbg_Tool_GetWindowDpiScale(selfPtr); return ret; } - + public Vector2F GetWindowPos() { var ret = cbg_Tool_GetWindowPos(selfPtr); return ret; } - + public Vector2F GetWindowSize() { var ret = cbg_Tool_GetWindowSize(selfPtr); return ret; } - + public float GetWindowWidth() { var ret = cbg_Tool_GetWindowWidth(selfPtr); return ret; } - + public float GetWindowHeight() { var ret = cbg_Tool_GetWindowHeight(selfPtr); return ret; } - + public void SetNextWindowPos(Vector2F pos, ToolCond cond, Vector2F pivot) { cbg_Tool_SetNextWindowPos(selfPtr, pos, (int)cond, pivot); } - + public void SetNextWindowSize(Vector2F size, ToolCond cond) { cbg_Tool_SetNextWindowSize(selfPtr, size, (int)cond); } - + public void SetNextWindowContentSize(Vector2F size) { cbg_Tool_SetNextWindowContentSize(selfPtr, size); } - + public void SetNextWindowCollapsed(bool collapsed, ToolCond cond) { cbg_Tool_SetNextWindowCollapsed(selfPtr, collapsed, (int)cond); } - + public void SetNextWindowFocus() { cbg_Tool_SetNextWindowFocus(selfPtr); } - + public void SetNextWindowBgAlpha(float alpha) { cbg_Tool_SetNextWindowBgAlpha(selfPtr, alpha); } - + public void SetNextWindowViewport(int viewport_id) { cbg_Tool_SetNextWindowViewport(selfPtr, viewport_id); } - + public void SetWindowPos(Vector2F pos, ToolCond cond) { cbg_Tool_SetWindowPos_Vector2F_C_ToolCond(selfPtr, pos, (int)cond); } - + public void SetWindowPos(string name, Vector2F pos, ToolCond cond) { if (name == null) throw new ArgumentNullException(nameof(name), "引数がnullです"); cbg_Tool_SetWindowPos_char16p_Vector2F_C_ToolCond(selfPtr, name, pos, (int)cond); } - + public void SetWindowSize(Vector2F size, ToolCond cond) { cbg_Tool_SetWindowSize_Vector2F_C_ToolCond(selfPtr, size, (int)cond); } - + public void SetWindowSize(string name, Vector2F size, ToolCond cond) { if (name == null) throw new ArgumentNullException(nameof(name), "引数がnullです"); cbg_Tool_SetWindowSize_char16p_Vector2F_C_ToolCond(selfPtr, name, size, (int)cond); } - + public void SetWindowCollapsed(bool collapsed, ToolCond cond) { cbg_Tool_SetWindowCollapsed_bool_ToolCond(selfPtr, collapsed, (int)cond); } - + public void SetWindowCollapsed(string name, bool collapsed, ToolCond cond) { if (name == null) throw new ArgumentNullException(nameof(name), "引数がnullです"); cbg_Tool_SetWindowCollapsed_char16p_bool_ToolCond(selfPtr, name, collapsed, (int)cond); } - + public void SetWindowFocus() { cbg_Tool_SetWindowFocus_(selfPtr); } - + public void SetWindowFocus(string name) { if (name == null) throw new ArgumentNullException(nameof(name), "引数がnullです"); cbg_Tool_SetWindowFocus_char16p(selfPtr, name); } - + public void SetWindowFontScale(float scale) { cbg_Tool_SetWindowFontScale(selfPtr, scale); } - + public Vector2F GetContentRegionMax() { var ret = cbg_Tool_GetContentRegionMax(selfPtr); return ret; } - + public Vector2F GetContentRegionAvail() { var ret = cbg_Tool_GetContentRegionAvail(selfPtr); return ret; } - + public Vector2F GetWindowContentRegionMin() { var ret = cbg_Tool_GetWindowContentRegionMin(selfPtr); return ret; } - + public Vector2F GetWindowContentRegionMax() { var ret = cbg_Tool_GetWindowContentRegionMax(selfPtr); return ret; } - + public float GetWindowContentRegionWidth() { var ret = cbg_Tool_GetWindowContentRegionWidth(selfPtr); return ret; } - + public float GetScrollX() { var ret = cbg_Tool_GetScrollX(selfPtr); return ret; } - + public float GetScrollY() { var ret = cbg_Tool_GetScrollY(selfPtr); return ret; } - + public float GetScrollMaxX() { var ret = cbg_Tool_GetScrollMaxX(selfPtr); return ret; } - + public float GetScrollMaxY() { var ret = cbg_Tool_GetScrollMaxY(selfPtr); return ret; } - + public void SetScrollX(float scroll_x) { cbg_Tool_SetScrollX(selfPtr, scroll_x); } - + public void SetScrollY(float scroll_y) { cbg_Tool_SetScrollY(selfPtr, scroll_y); } - + public void SetScrollHereX(float center_x_ratio) { cbg_Tool_SetScrollHereX(selfPtr, center_x_ratio); } - + public void SetScrollHereY(float center_y_ratio) { cbg_Tool_SetScrollHereY(selfPtr, center_y_ratio); } - + public void SetScrollFromPosX(float local_x, float center_x_ratio) { cbg_Tool_SetScrollFromPosX(selfPtr, local_x, center_x_ratio); } - + public void SetScrollFromPosY(float local_y, float center_y_ratio) { cbg_Tool_SetScrollFromPosY(selfPtr, local_y, center_y_ratio); } - + public void PopFont() { cbg_Tool_PopFont(selfPtr); } - + public void PushStyleColor(ToolCol idx, int col) { cbg_Tool_PushStyleColor_ToolCol_int(selfPtr, (int)idx, col); } - + public void PushStyleColor(ToolCol idx, Vector4F col) { cbg_Tool_PushStyleColor_ToolCol_Vector4F_C(selfPtr, (int)idx, col); } - + public void PopStyleColor(int count) { cbg_Tool_PopStyleColor(selfPtr, count); } - + public void PushStyleVar(ToolStyleVar idx, float val) { cbg_Tool_PushStyleVar_ToolStyleVar_float(selfPtr, (int)idx, val); } - + public void PushStyleVar(ToolStyleVar idx, Vector2F val) { cbg_Tool_PushStyleVar_ToolStyleVar_Vector2F_C(selfPtr, (int)idx, val); } - + public void PopStyleVar(int count) { cbg_Tool_PopStyleVar(selfPtr, count); } - + public float GetFontSize() { var ret = cbg_Tool_GetFontSize(selfPtr); return ret; } - + public Vector2F GetFontTexUvWhitePixel() { var ret = cbg_Tool_GetFontTexUvWhitePixel(selfPtr); return ret; } - + public int GetColorU32(ToolCol idx, float alpha_mul) { var ret = cbg_Tool_GetColorU32_ToolCol_float(selfPtr, (int)idx, alpha_mul); return ret; } - + public int GetColorU32(Vector4F col) { var ret = cbg_Tool_GetColorU32_Vector4F_C(selfPtr, col); return ret; } - + public int GetColorU32(int col) { var ret = cbg_Tool_GetColorU32_int(selfPtr, col); return ret; } - + public void PushItemWidth(float item_width) { cbg_Tool_PushItemWidth(selfPtr, item_width); } - + public void PopItemWidth() { cbg_Tool_PopItemWidth(selfPtr); } - + public void SetNextItemWidth(float item_width) { cbg_Tool_SetNextItemWidth(selfPtr, item_width); } - + public float CalcItemWidth() { var ret = cbg_Tool_CalcItemWidth(selfPtr); return ret; } - + public void PushTextWrapPos(float wrap_local_pos_x) { cbg_Tool_PushTextWrapPos(selfPtr, wrap_local_pos_x); } - + public void PopTextWrapPos() { cbg_Tool_PopTextWrapPos(selfPtr); } - + public void PushAllowKeyboardFocus(bool allow_keyboard_focus) { cbg_Tool_PushAllowKeyboardFocus(selfPtr, allow_keyboard_focus); } - + public void PopAllowKeyboardFocus() { cbg_Tool_PopAllowKeyboardFocus(selfPtr); } - + public void PushButtonRepeat(bool repeat) { cbg_Tool_PushButtonRepeat(selfPtr, repeat); } - + public void PopButtonRepeat() { cbg_Tool_PopButtonRepeat(selfPtr); } - + /// /// 仕切りを生成します。 /// @@ -14851,22 +15472,22 @@ public void Separator() { cbg_Tool_Separator(selfPtr); } - + public void SameLine(float offset_from_start_x, float spacing) { cbg_Tool_SameLine(selfPtr, offset_from_start_x, spacing); } - + public void NewLine() { cbg_Tool_NewLine(selfPtr); } - + public void Spacing() { cbg_Tool_Spacing(selfPtr); } - + /// /// 空白を生成します。 /// @@ -14875,7 +15496,7 @@ public void Dummy(Vector2F size) { cbg_Tool_Dummy(selfPtr, size); } - + /// /// 次の要素を右にずらします。 /// @@ -14883,7 +15504,7 @@ public void Indent(float indent_w) { cbg_Tool_Indent(selfPtr, indent_w); } - + /// /// 右にずらすインデントを1つ分打消します。 /// @@ -14891,126 +15512,126 @@ public void Unindent(float indent_w) { cbg_Tool_Unindent(selfPtr, indent_w); } - + public void BeginGroup() { cbg_Tool_BeginGroup(selfPtr); } - + public void EndGroup() { cbg_Tool_EndGroup(selfPtr); } - + public Vector2F GetCursorPos() { var ret = cbg_Tool_GetCursorPos(selfPtr); return ret; } - + public float GetCursorPosX() { var ret = cbg_Tool_GetCursorPosX(selfPtr); return ret; } - + public float GetCursorPosY() { var ret = cbg_Tool_GetCursorPosY(selfPtr); return ret; } - + public void SetCursorPos(Vector2F local_pos) { cbg_Tool_SetCursorPos(selfPtr, local_pos); } - + public void SetCursorPosX(float local_x) { cbg_Tool_SetCursorPosX(selfPtr, local_x); } - + public void SetCursorPosY(float local_y) { cbg_Tool_SetCursorPosY(selfPtr, local_y); } - + public Vector2F GetCursorStartPos() { var ret = cbg_Tool_GetCursorStartPos(selfPtr); return ret; } - + public Vector2F GetCursorScreenPos() { var ret = cbg_Tool_GetCursorScreenPos(selfPtr); return ret; } - + public void SetCursorScreenPos(Vector2F pos) { cbg_Tool_SetCursorScreenPos(selfPtr, pos); } - + public void AlignTextToFramePadding() { cbg_Tool_AlignTextToFramePadding(selfPtr); } - + public float GetTextLineHeight() { var ret = cbg_Tool_GetTextLineHeight(selfPtr); return ret; } - + public float GetTextLineHeightWithSpacing() { var ret = cbg_Tool_GetTextLineHeightWithSpacing(selfPtr); return ret; } - + public float GetFrameHeight() { var ret = cbg_Tool_GetFrameHeight(selfPtr); return ret; } - + public float GetFrameHeightWithSpacing() { var ret = cbg_Tool_GetFrameHeightWithSpacing(selfPtr); return ret; } - + public void PushID(string str_id) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); cbg_Tool_PushID_char16p(selfPtr, str_id); } - + public void PushID(string str_id_begin, string str_id_end) { if (str_id_begin == null) throw new ArgumentNullException(nameof(str_id_begin), "引数がnullです"); if (str_id_end == null) throw new ArgumentNullException(nameof(str_id_end), "引数がnullです"); cbg_Tool_PushID_char16p_char16p(selfPtr, str_id_begin, str_id_end); } - + public void PushID(int int_id) { cbg_Tool_PushID_int(selfPtr, int_id); } - + public void PopID() { cbg_Tool_PopID(selfPtr); } - + public int GetID(string str_id) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); var ret = cbg_Tool_GetID_char16p(selfPtr, str_id); return ret; } - + public int GetID(string str_id_begin, string str_id_end) { if (str_id_begin == null) throw new ArgumentNullException(nameof(str_id_begin), "引数がnullです"); @@ -15018,14 +15639,14 @@ public int GetID(string str_id_begin, string str_id_end) var ret = cbg_Tool_GetID_char16p_char16p(selfPtr, str_id_begin, str_id_end); return ret; } - + public void TextUnformatted(string text, string text_end) { if (text == null) throw new ArgumentNullException(nameof(text), "引数がnullです"); if (text_end == null) throw new ArgumentNullException(nameof(text_end), "引数がnullです"); cbg_Tool_TextUnformatted(selfPtr, text, text_end); } - + /// /// テキストを生成します。 /// @@ -15035,7 +15656,7 @@ public void Text(string fmt) if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_Text(selfPtr, fmt); } - + /// /// 色付きテキストを生成します。 /// @@ -15045,7 +15666,7 @@ public void TextColored(Vector4F col, string fmt) if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_TextColored(selfPtr, col, fmt); } - + /// /// 灰字のテキストを生成します。 /// @@ -15055,13 +15676,13 @@ public void TextDisabled(string fmt) if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_TextDisabled(selfPtr, fmt); } - + public void TextWrapped(string fmt) { if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_TextWrapped(selfPtr, fmt); } - + /// /// 横にラベルの付いたテキストを生成します。 /// @@ -15073,7 +15694,7 @@ public void LabelText(string label, string fmt) if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_LabelText(selfPtr, label, fmt); } - + /// /// 箇条書きテキストを生成します。 /// @@ -15083,7 +15704,7 @@ public void BulletText(string fmt) if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_BulletText(selfPtr, fmt); } - + /// /// ボタンを生成します。 /// @@ -15096,7 +15717,7 @@ public bool Button(string label, Vector2F size) var ret = cbg_Tool_Button(selfPtr, label, size); return ret; } - + /// /// 小さなボタンを生成します。 /// @@ -15108,7 +15729,7 @@ public bool SmallButton(string label) var ret = cbg_Tool_SmallButton(selfPtr, label); return ret; } - + /// /// 見えないボタンを生成します。 /// @@ -15120,7 +15741,7 @@ public bool InvisibleButton(string str_id, Vector2F size, ToolButtonFlags flags) var ret = cbg_Tool_InvisibleButton(selfPtr, str_id, size, (int)flags); return ret; } - + /// /// 矢印ボタンを生成します。 /// @@ -15132,14 +15753,14 @@ public bool ArrowButton(string str_id, ToolDir dir) var ret = cbg_Tool_ArrowButton(selfPtr, str_id, (int)dir); return ret; } - + public bool Checkbox(string label, ref bool v) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_Checkbox(selfPtr, label, ref v); return ret; } - + /// /// ラジオボタンを生成します。 /// @@ -15152,7 +15773,7 @@ public bool RadioButton(string label, bool active) var ret = cbg_Tool_RadioButton_char16p_bool(selfPtr, label, active); return ret; } - + /// /// ラジオボタンを生成します。 /// @@ -15164,7 +15785,7 @@ public bool RadioButton(string label, ref int v, int v_button) var ret = cbg_Tool_RadioButton_char16p_intp_int(selfPtr, label, ref v, v_button); return ret; } - + /// /// プログレスバーを生成します。 /// @@ -15176,7 +15797,7 @@ public void ProgressBar(float fraction, Vector2F size_arg, string overlay) if (overlay == null) throw new ArgumentNullException(nameof(overlay), "引数がnullです"); cbg_Tool_ProgressBar(selfPtr, fraction, size_arg, overlay); } - + /// /// 点を生成します。 /// @@ -15184,7 +15805,7 @@ public void Bullet() { cbg_Tool_Bullet(selfPtr); } - + public bool BeginCombo(string label, string preview_value, ToolComboFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15192,12 +15813,12 @@ public bool BeginCombo(string label, string preview_value, ToolComboFlags flags) var ret = cbg_Tool_BeginCombo(selfPtr, label, preview_value, (int)flags); return ret; } - + public void EndCombo() { cbg_Tool_EndCombo(selfPtr); } - + /// /// 1つのドラッグで値が増減するバーを生成します。 /// @@ -15210,7 +15831,7 @@ public bool DragFloat(string label, ref float v, float v_speed, float v_min, flo var ret = cbg_Tool_DragFloat(selfPtr, label, ref v, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragFloat2(string label, FloatArray v, float v_speed, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15218,7 +15839,7 @@ internal bool DragFloat2(string label, FloatArray v, float v_speed, float v_min, var ret = cbg_Tool_DragFloat2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragFloat3(string label, FloatArray v, float v_speed, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15226,7 +15847,7 @@ internal bool DragFloat3(string label, FloatArray v, float v_speed, float v_min, var ret = cbg_Tool_DragFloat3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragFloat4(string label, FloatArray v, float v_speed, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15234,7 +15855,7 @@ internal bool DragFloat4(string label, FloatArray v, float v_speed, float v_min, var ret = cbg_Tool_DragFloat4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + /// /// 2つのドラッグで値が増減するバーを生成します /// @@ -15248,7 +15869,7 @@ public bool DragFloatRange2(string label, ref float v_current_min, ref float v_c var ret = cbg_Tool_DragFloatRange2(selfPtr, label, ref v_current_min, ref v_current_max, v_speed, v_min, v_max, format, format_max, (int)flags); return ret; } - + /// /// 1つのドラッグで値が増減するバーを生成します。 /// @@ -15261,7 +15882,7 @@ public bool DragInt(string label, ref int v, float v_speed, int v_min, int v_max var ret = cbg_Tool_DragInt(selfPtr, label, ref v, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragInt2(string label, Int32Array v, float v_speed, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15269,7 +15890,7 @@ internal bool DragInt2(string label, Int32Array v, float v_speed, int v_min, int var ret = cbg_Tool_DragInt2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragInt3(string label, Int32Array v, float v_speed, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15277,7 +15898,7 @@ internal bool DragInt3(string label, Int32Array v, float v_speed, int v_min, int var ret = cbg_Tool_DragInt3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragInt4(string label, Int32Array v, float v_speed, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15285,7 +15906,7 @@ internal bool DragInt4(string label, Int32Array v, float v_speed, int v_min, int var ret = cbg_Tool_DragInt4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + /// /// 2つのドラッグで値が増減するバーを生成します /// @@ -15299,7 +15920,7 @@ public bool DragIntRange2(string label, ref int v_current_min, ref int v_current var ret = cbg_Tool_DragIntRange2(selfPtr, label, ref v_current_min, ref v_current_max, v_speed, v_min, v_max, format, format_max, (int)flags); return ret; } - + /// /// 1つのスライドで値が増減するバーを生成します。 /// @@ -15312,7 +15933,7 @@ public bool SliderFloat(string label, ref float v, float v_min, float v_max, str var ret = cbg_Tool_SliderFloat(selfPtr, label, ref v, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderFloat2(string label, FloatArray v, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15320,7 +15941,7 @@ internal bool SliderFloat2(string label, FloatArray v, float v_min, float v_max, var ret = cbg_Tool_SliderFloat2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderFloat3(string label, FloatArray v, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15328,7 +15949,7 @@ internal bool SliderFloat3(string label, FloatArray v, float v_min, float v_max, var ret = cbg_Tool_SliderFloat3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderFloat4(string label, FloatArray v, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15336,7 +15957,7 @@ internal bool SliderFloat4(string label, FloatArray v, float v_min, float v_max, var ret = cbg_Tool_SliderFloat4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + /// /// スライドで値が増減する,角度を扱うバーを生成します。 /// @@ -15349,7 +15970,7 @@ public bool SliderAngle(string label, ref float v_rad, float v_degrees_min, floa var ret = cbg_Tool_SliderAngle(selfPtr, label, ref v_rad, v_degrees_min, v_degrees_max, format, (int)flags); return ret; } - + /// /// 1つのスライドで値が増減するバーを生成します。 /// @@ -15362,7 +15983,7 @@ public bool SliderInt(string label, ref int v, int v_min, int v_max, string form var ret = cbg_Tool_SliderInt(selfPtr, label, ref v, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderInt2(string label, Int32Array v, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15370,7 +15991,7 @@ internal bool SliderInt2(string label, Int32Array v, int v_min, int v_max, strin var ret = cbg_Tool_SliderInt2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderInt3(string label, Int32Array v, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15378,7 +15999,7 @@ internal bool SliderInt3(string label, Int32Array v, int v_min, int v_max, strin var ret = cbg_Tool_SliderInt3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderInt4(string label, Int32Array v, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15386,7 +16007,7 @@ internal bool SliderInt4(string label, Int32Array v, int v_min, int v_max, strin var ret = cbg_Tool_SliderInt4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + /// /// スライドで値が増減する縦バーを生成します。 /// @@ -15400,7 +16021,7 @@ public bool VSliderFloat(string label, Vector2F size, ref float v, float v_min, var ret = cbg_Tool_VSliderFloat(selfPtr, label, size, ref v, v_min, v_max, format, (int)flags); return ret; } - + /// /// スライドで値が増減する縦バーを生成します。 /// @@ -15414,7 +16035,7 @@ public bool VSliderInt(string label, Vector2F size, ref int v, int v_min, int v_ var ret = cbg_Tool_VSliderInt(selfPtr, label, size, ref v, v_min, v_max, format, (int)flags); return ret; } - + /// /// 1つの小数が入力可能なボックスを生成します。 /// @@ -15427,7 +16048,7 @@ public bool InputFloat(string label, ref float v, float step, float step_fast, s var ret = cbg_Tool_InputFloat(selfPtr, label, ref v, step, step_fast, format, (int)flags); return ret; } - + /// /// 2つの小数が入力可能なボックスを生成します。 /// @@ -15440,7 +16061,7 @@ internal bool InputFloat2(string label, FloatArray v, string format, ToolInputTe var ret = cbg_Tool_InputFloat2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, format, (int)flags); return ret; } - + /// /// 3つの小数が入力可能なボックスを生成します。 /// @@ -15453,7 +16074,7 @@ internal bool InputFloat3(string label, FloatArray v, string format, ToolInputTe var ret = cbg_Tool_InputFloat3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, format, (int)flags); return ret; } - + /// /// 4つの小数が入力可能なボックスを生成します。 /// @@ -15466,7 +16087,7 @@ internal bool InputFloat4(string label, FloatArray v, string format, ToolInputTe var ret = cbg_Tool_InputFloat4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, format, (int)flags); return ret; } - + /// /// 1つの整数が入力可能なボックスを生成します。 /// @@ -15478,7 +16099,7 @@ public bool InputInt(string label, ref int v, int step, int step_fast, ToolInput var ret = cbg_Tool_InputInt(selfPtr, label, ref v, step, step_fast, (int)flags); return ret; } - + /// /// 2つの整数が入力可能なボックスを生成します。 /// @@ -15490,7 +16111,7 @@ internal bool InputInt2(string label, Int32Array v, ToolInputTextFlags flags) var ret = cbg_Tool_InputInt2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + /// /// 3つの整数が入力可能なボックスを生成します。 /// @@ -15502,7 +16123,7 @@ internal bool InputInt3(string label, Int32Array v, ToolInputTextFlags flags) var ret = cbg_Tool_InputInt3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + /// /// 4つの整数が入力可能なボックスを生成します。 /// @@ -15514,26 +16135,26 @@ internal bool InputInt4(string label, Int32Array v, ToolInputTextFlags flags) var ret = cbg_Tool_InputInt4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + internal bool ColorPicker3(string label, FloatArray col, ToolColorEditFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_ColorPicker3(selfPtr, label, col != null ? col.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + internal bool ColorPicker4(string label, FloatArray col, ToolColorEditFlags flags, ref float ref_col) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_ColorPicker4(selfPtr, label, col != null ? col.selfPtr : IntPtr.Zero, (int)flags, ref ref_col); return ret; } - + public void SetColorEditOptions(ToolColorEditFlags flags) { cbg_Tool_SetColorEditOptions(selfPtr, (int)flags); } - + /// /// ツリーのノードを生成します。 /// @@ -15545,7 +16166,7 @@ public bool TreeNode(string label) var ret = cbg_Tool_TreeNode_char16p(selfPtr, label); return ret; } - + /// /// ツリーのノードを生成します。 /// @@ -15557,7 +16178,7 @@ public bool TreeNode(string str_id, string fmt) var ret = cbg_Tool_TreeNode_char16p_char16p(selfPtr, str_id, fmt); return ret; } - + /// /// ツリーのノードを生成します。 /// @@ -15570,7 +16191,7 @@ public bool TreeNodeEx(string label, ToolTreeNodeFlags flags) var ret = cbg_Tool_TreeNodeEx_char16p_ToolTreeNodeFlags(selfPtr, label, (int)flags); return ret; } - + /// /// ツリーのノードを生成します。 /// @@ -15583,13 +16204,13 @@ public bool TreeNodeEx(string str_id, ToolTreeNodeFlags flags, string fmt) var ret = cbg_Tool_TreeNodeEx_char16p_ToolTreeNodeFlags_char16p(selfPtr, str_id, (int)flags, fmt); return ret; } - + public void TreePush(string str_id) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); cbg_Tool_TreePush(selfPtr, str_id); } - + /// /// TreeNodeのツリーを開きます。 /// @@ -15597,13 +16218,13 @@ public void TreePop() { cbg_Tool_TreePop(selfPtr); } - + public float GetTreeNodeToLabelSpacing() { var ret = cbg_Tool_GetTreeNodeToLabelSpacing(selfPtr); return ret; } - + /// /// 折り畳み式のヘッダを生成します。 /// @@ -15616,7 +16237,7 @@ public bool CollapsingHeader(string label, ToolTreeNodeFlags flags) var ret = cbg_Tool_CollapsingHeader_char16p_ToolTreeNodeFlags(selfPtr, label, (int)flags); return ret; } - + /// /// 折り畳み式のヘッダを生成します。 /// @@ -15629,12 +16250,12 @@ public bool CollapsingHeader(string label, ref bool p_open, ToolTreeNodeFlags fl var ret = cbg_Tool_CollapsingHeader_char16p_boolp_ToolTreeNodeFlags(selfPtr, label, ref p_open, (int)flags); return ret; } - + public void SetNextItemOpen(bool is_open, ToolCond cond) { cbg_Tool_SetNextItemOpen(selfPtr, is_open, (int)cond); } - + /// /// 選択式のテキストを生成します。 /// @@ -15648,7 +16269,7 @@ public bool Selectable(string label, bool selected, ToolSelectableFlags flags, V var ret = cbg_Tool_Selectable_char16p_bool_ToolSelectableFlags_Vector2F_C(selfPtr, label, selected, (int)flags, size); return ret; } - + /// /// 選択式のテキストを生成します。 /// @@ -15661,45 +16282,45 @@ public bool Selectable(string label, ref bool p_selected, ToolSelectableFlags fl var ret = cbg_Tool_Selectable_char16p_boolp_ToolSelectableFlags_Vector2F_C(selfPtr, label, ref p_selected, (int)flags, size); return ret; } - + public bool ListBoxHeader(string label, Vector2F size) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_ListBoxHeader_char16p_Vector2F_C(selfPtr, label, size); return ret; } - + public bool ListBoxHeader(string label, int items_count, int height_in_items) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_ListBoxHeader_char16p_int_int(selfPtr, label, items_count, height_in_items); return ret; } - + public void ListBoxFooter() { cbg_Tool_ListBoxFooter(selfPtr); } - + public void Value(string prefix, bool b) { if (prefix == null) throw new ArgumentNullException(nameof(prefix), "引数がnullです"); cbg_Tool_Value_char16p_bool(selfPtr, prefix, b); } - + public void Value(string prefix, int v) { if (prefix == null) throw new ArgumentNullException(nameof(prefix), "引数がnullです"); cbg_Tool_Value_char16p_int(selfPtr, prefix, v); } - + public void Value(string prefix, float v, string float_format) { if (prefix == null) throw new ArgumentNullException(nameof(prefix), "引数がnullです"); if (float_format == null) throw new ArgumentNullException(nameof(float_format), "引数がnullです"); cbg_Tool_Value_char16p_float_char16p(selfPtr, prefix, v, float_format); } - + /// /// 'EndMenuBar()' を呼び出してください /// @@ -15708,23 +16329,23 @@ public bool BeginMenuBar() var ret = cbg_Tool_BeginMenuBar(selfPtr); return ret; } - + public void EndMenuBar() { cbg_Tool_EndMenuBar(selfPtr); } - + public bool BeginMainMenuBar() { var ret = cbg_Tool_BeginMainMenuBar(selfPtr); return ret; } - + public void EndMainMenuBar() { cbg_Tool_EndMainMenuBar(selfPtr); } - + /// /// 'EndMenu()' を呼び出してください /// @@ -15735,12 +16356,12 @@ public bool BeginMenu(string label, bool enabled) var ret = cbg_Tool_BeginMenu(selfPtr, label, enabled); return ret; } - + public void EndMenu() { cbg_Tool_EndMenu(selfPtr); } - + public bool MenuItem(string label, string shortcut, bool selected, bool enabled) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15748,7 +16369,7 @@ public bool MenuItem(string label, string shortcut, bool selected, bool enabled) var ret = cbg_Tool_MenuItem_char16p_char16p_bool_bool(selfPtr, label, shortcut, selected, enabled); return ret; } - + public bool MenuItem(string label, string shortcut, ref bool p_selected, bool enabled) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -15756,7 +16377,7 @@ public bool MenuItem(string label, string shortcut, ref bool p_selected, bool en var ret = cbg_Tool_MenuItem_char16p_char16p_boolp_bool(selfPtr, label, shortcut, ref p_selected, enabled); return ret; } - + /// /// 'EndTooltip()' を呼び出してください /// @@ -15764,18 +16385,18 @@ public void BeginTooltip() { cbg_Tool_BeginTooltip(selfPtr); } - + public void EndTooltip() { cbg_Tool_EndTooltip(selfPtr); } - + public void SetTooltip(string fmt) { if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_SetTooltip(selfPtr, fmt); } - + /// /// 'EndPopup()' を呼び出してください /// @@ -15786,102 +16407,102 @@ public bool BeginPopup(string str_id, ToolWindowFlags flags) var ret = cbg_Tool_BeginPopup(selfPtr, str_id, (int)flags); return ret; } - + public void EndPopup() { cbg_Tool_EndPopup(selfPtr); } - + public void OpenPopup(string str_id, ToolPopupFlags popup_flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); cbg_Tool_OpenPopup(selfPtr, str_id, (int)popup_flags); } - + public void OpenPopupOnItemClick(string str_id, ToolPopupFlags popup_flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); cbg_Tool_OpenPopupOnItemClick(selfPtr, str_id, (int)popup_flags); } - + public void CloseCurrentPopup() { cbg_Tool_CloseCurrentPopup(selfPtr); } - + public bool BeginPopupContextItem(string str_id, ToolPopupFlags popup_flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); var ret = cbg_Tool_BeginPopupContextItem(selfPtr, str_id, (int)popup_flags); return ret; } - + public bool BeginPopupContextWindow(string str_id, ToolPopupFlags popup_flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); var ret = cbg_Tool_BeginPopupContextWindow(selfPtr, str_id, (int)popup_flags); return ret; } - + public bool BeginPopupContextVoid(string str_id, ToolPopupFlags popup_flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); var ret = cbg_Tool_BeginPopupContextVoid(selfPtr, str_id, (int)popup_flags); return ret; } - + public bool IsPopupOpen(string str_id, ToolPopupFlags flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); var ret = cbg_Tool_IsPopupOpen(selfPtr, str_id, (int)flags); return ret; } - + public void Columns(int count, string id, bool border) { if (id == null) throw new ArgumentNullException(nameof(id), "引数がnullです"); cbg_Tool_Columns(selfPtr, count, id, border); } - + public void NextColumn() { cbg_Tool_NextColumn(selfPtr); } - + public int GetColumnIndex() { var ret = cbg_Tool_GetColumnIndex(selfPtr); return ret; } - + public float GetColumnWidth(int column_index) { var ret = cbg_Tool_GetColumnWidth(selfPtr, column_index); return ret; } - + public void SetColumnWidth(int column_index, float width) { cbg_Tool_SetColumnWidth(selfPtr, column_index, width); } - + public float GetColumnOffset(int column_index) { var ret = cbg_Tool_GetColumnOffset(selfPtr, column_index); return ret; } - + public void SetColumnOffset(int column_index, float offset_x) { cbg_Tool_SetColumnOffset(selfPtr, column_index, offset_x); } - + public int GetColumnsCount() { var ret = cbg_Tool_GetColumnsCount(selfPtr); return ret; } - + /// /// 'EndTabBar()' を呼び出してください /// @@ -15892,262 +16513,262 @@ public bool BeginTabBar(string str_id, ToolTabBarFlags flags) var ret = cbg_Tool_BeginTabBar(selfPtr, str_id, (int)flags); return ret; } - + public void EndTabBar() { cbg_Tool_EndTabBar(selfPtr); } - + public void EndTabItem() { cbg_Tool_EndTabItem(selfPtr); } - + public bool TabItemButton(string label, ToolTabItemFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_TabItemButton(selfPtr, label, (int)flags); return ret; } - + public void SetTabItemClosed(string tab_or_docked_window_label) { if (tab_or_docked_window_label == null) throw new ArgumentNullException(nameof(tab_or_docked_window_label), "引数がnullです"); cbg_Tool_SetTabItemClosed(selfPtr, tab_or_docked_window_label); } - + public void SetNextWindowDockID(int dock_id, ToolCond cond) { cbg_Tool_SetNextWindowDockID(selfPtr, dock_id, (int)cond); } - + public int GetWindowDockID() { var ret = cbg_Tool_GetWindowDockID(selfPtr); return ret; } - + public bool IsWindowDocked() { var ret = cbg_Tool_IsWindowDocked(selfPtr); return ret; } - + public void LogToTTY(int auto_open_depth) { cbg_Tool_LogToTTY(selfPtr, auto_open_depth); } - + public void LogToFile(int auto_open_depth, string filename) { if (filename == null) throw new ArgumentNullException(nameof(filename), "引数がnullです"); cbg_Tool_LogToFile(selfPtr, auto_open_depth, filename); } - + public void LogToClipboard(int auto_open_depth) { cbg_Tool_LogToClipboard(selfPtr, auto_open_depth); } - + public void LogFinish() { cbg_Tool_LogFinish(selfPtr); } - + public void LogButtons() { cbg_Tool_LogButtons(selfPtr); } - + public void LogText(string fmt) { if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_LogText(selfPtr, fmt); } - + public bool BeginDragDropSource(ToolDragDropFlags flags) { var ret = cbg_Tool_BeginDragDropSource(selfPtr, (int)flags); return ret; } - + public void EndDragDropSource() { cbg_Tool_EndDragDropSource(selfPtr); } - + public bool BeginDragDropTarget() { var ret = cbg_Tool_BeginDragDropTarget(selfPtr); return ret; } - + public void EndDragDropTarget() { cbg_Tool_EndDragDropTarget(selfPtr); } - + public void PushClipRect(Vector2F clip_rect_min, Vector2F clip_rect_max, bool intersect_with_current_clip_rect) { cbg_Tool_PushClipRect(selfPtr, clip_rect_min, clip_rect_max, intersect_with_current_clip_rect); } - + public void PopClipRect() { cbg_Tool_PopClipRect(selfPtr); } - + public void SetItemDefaultFocus() { cbg_Tool_SetItemDefaultFocus(selfPtr); } - + public void SetKeyboardFocusHere(int offset) { cbg_Tool_SetKeyboardFocusHere(selfPtr, offset); } - + public bool IsItemHovered(ToolHoveredFlags flags) { var ret = cbg_Tool_IsItemHovered(selfPtr, (int)flags); return ret; } - + public bool IsItemActive() { var ret = cbg_Tool_IsItemActive(selfPtr); return ret; } - + public bool IsItemFocused() { var ret = cbg_Tool_IsItemFocused(selfPtr); return ret; } - + public bool IsItemClicked(ToolMouseButton mouse_button) { var ret = cbg_Tool_IsItemClicked(selfPtr, (int)mouse_button); return ret; } - + public bool IsItemVisible() { var ret = cbg_Tool_IsItemVisible(selfPtr); return ret; } - + public bool IsItemEdited() { var ret = cbg_Tool_IsItemEdited(selfPtr); return ret; } - + public bool IsItemActivated() { var ret = cbg_Tool_IsItemActivated(selfPtr); return ret; } - + public bool IsItemDeactivated() { var ret = cbg_Tool_IsItemDeactivated(selfPtr); return ret; } - + public bool IsItemDeactivatedAfterEdit() { var ret = cbg_Tool_IsItemDeactivatedAfterEdit(selfPtr); return ret; } - + public bool IsItemToggledOpen() { var ret = cbg_Tool_IsItemToggledOpen(selfPtr); return ret; } - + public bool IsAnyItemHovered() { var ret = cbg_Tool_IsAnyItemHovered(selfPtr); return ret; } - + public bool IsAnyItemActive() { var ret = cbg_Tool_IsAnyItemActive(selfPtr); return ret; } - + public bool IsAnyItemFocused() { var ret = cbg_Tool_IsAnyItemFocused(selfPtr); return ret; } - + public Vector2F GetItemRectMin() { var ret = cbg_Tool_GetItemRectMin(selfPtr); return ret; } - + public Vector2F GetItemRectMax() { var ret = cbg_Tool_GetItemRectMax(selfPtr); return ret; } - + public Vector2F GetItemRectSize() { var ret = cbg_Tool_GetItemRectSize(selfPtr); return ret; } - + public void SetItemAllowOverlap() { cbg_Tool_SetItemAllowOverlap(selfPtr); } - + public bool IsRectVisible(Vector2F size) { var ret = cbg_Tool_IsRectVisible_Vector2F_C(selfPtr, size); return ret; } - + public bool IsRectVisible(Vector2F rect_min, Vector2F rect_max) { var ret = cbg_Tool_IsRectVisible_Vector2F_C_Vector2F_C(selfPtr, rect_min, rect_max); return ret; } - + public int GetFrameCount() { var ret = cbg_Tool_GetFrameCount(selfPtr); return ret; } - + public string GetStyleColorName(ToolCol idx) { var ret = cbg_Tool_GetStyleColorName(selfPtr, (int)idx); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + public void CalcListClipping(int items_count, float items_height, ref int out_items_display_start, ref int out_items_display_end) { cbg_Tool_CalcListClipping(selfPtr, items_count, items_height, ref out_items_display_start, ref out_items_display_end); } - + public bool BeginChildFrame(int id, Vector2F size, ToolWindowFlags flags) { var ret = cbg_Tool_BeginChildFrame(selfPtr, id, size, (int)flags); return ret; } - + public void EndChildFrame() { cbg_Tool_EndChildFrame(selfPtr); } - + public Vector2F CalcTextSize(string text, string text_end, bool hide_text_after_double_hash, float wrap_width) { if (text == null) throw new ArgumentNullException(nameof(text), "引数がnullです"); @@ -16155,169 +16776,169 @@ public Vector2F CalcTextSize(string text, string text_end, bool hide_text_after_ var ret = cbg_Tool_CalcTextSize(selfPtr, text, text_end, hide_text_after_double_hash, wrap_width); return ret; } - + public Vector4F ColorConvertU32ToFloat4(int in_) { var ret = cbg_Tool_ColorConvertU32ToFloat4(selfPtr, in_); return ret; } - + public int ColorConvertFloat4ToU32(Vector4F in_) { var ret = cbg_Tool_ColorConvertFloat4ToU32(selfPtr, in_); return ret; } - + public int GetKeyIndex(ToolKey imgui_key) { var ret = cbg_Tool_GetKeyIndex(selfPtr, (int)imgui_key); return ret; } - + public bool IsKeyDown(int user_key_index) { var ret = cbg_Tool_IsKeyDown(selfPtr, user_key_index); return ret; } - + public bool IsKeyPressed(int user_key_index, bool repeat) { var ret = cbg_Tool_IsKeyPressed(selfPtr, user_key_index, repeat); return ret; } - + public bool IsKeyReleased(int user_key_index) { var ret = cbg_Tool_IsKeyReleased(selfPtr, user_key_index); return ret; } - + public int GetKeyPressedAmount(int key_index, float repeat_delay, float rate) { var ret = cbg_Tool_GetKeyPressedAmount(selfPtr, key_index, repeat_delay, rate); return ret; } - + public void CaptureKeyboardFromApp(bool want_capture_keyboard_value) { cbg_Tool_CaptureKeyboardFromApp(selfPtr, want_capture_keyboard_value); } - + public bool IsMouseDown(ToolMouseButton button) { var ret = cbg_Tool_IsMouseDown(selfPtr, (int)button); return ret; } - + public bool IsMouseClicked(ToolMouseButton button, bool repeat) { var ret = cbg_Tool_IsMouseClicked(selfPtr, (int)button, repeat); return ret; } - + public bool IsMouseReleased(ToolMouseButton button) { var ret = cbg_Tool_IsMouseReleased(selfPtr, (int)button); return ret; } - + public bool IsMouseDoubleClicked(ToolMouseButton button) { var ret = cbg_Tool_IsMouseDoubleClicked(selfPtr, (int)button); return ret; } - + public bool IsMouseHoveringRect(Vector2F r_min, Vector2F r_max, bool clip) { var ret = cbg_Tool_IsMouseHoveringRect(selfPtr, r_min, r_max, clip); return ret; } - + public bool IsAnyMouseDown() { var ret = cbg_Tool_IsAnyMouseDown(selfPtr); return ret; } - + public Vector2F GetMousePos() { var ret = cbg_Tool_GetMousePos(selfPtr); return ret; } - + public Vector2F GetMousePosOnOpeningCurrentPopup() { var ret = cbg_Tool_GetMousePosOnOpeningCurrentPopup(selfPtr); return ret; } - + public bool IsMouseDragging(ToolMouseButton button, float lock_threshold) { var ret = cbg_Tool_IsMouseDragging(selfPtr, (int)button, lock_threshold); return ret; } - + public Vector2F GetMouseDragDelta(ToolMouseButton button, float lock_threshold) { var ret = cbg_Tool_GetMouseDragDelta(selfPtr, (int)button, lock_threshold); return ret; } - + public void ResetMouseDragDelta(ToolMouseButton button) { cbg_Tool_ResetMouseDragDelta(selfPtr, (int)button); } - + public void SetMouseCursor(ToolMouseCursor cursor_type) { cbg_Tool_SetMouseCursor(selfPtr, (int)cursor_type); } - + public void CaptureMouseFromApp(bool want_capture_mouse_value) { cbg_Tool_CaptureMouseFromApp(selfPtr, want_capture_mouse_value); } - + public string GetClipboardText() { var ret = cbg_Tool_GetClipboardText(selfPtr); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + public void SetClipboardText(string text) { if (text == null) throw new ArgumentNullException(nameof(text), "引数がnullです"); cbg_Tool_SetClipboardText(selfPtr, text); } - + public void LoadIniSettingsFromDisk(string ini_filename) { if (ini_filename == null) throw new ArgumentNullException(nameof(ini_filename), "引数がnullです"); cbg_Tool_LoadIniSettingsFromDisk(selfPtr, ini_filename); } - + public void SaveIniSettingsToDisk(string ini_filename) { if (ini_filename == null) throw new ArgumentNullException(nameof(ini_filename), "引数がnullです"); cbg_Tool_SaveIniSettingsToDisk(selfPtr, ini_filename); } - + public void UpdatePlatformWindows() { cbg_Tool_UpdatePlatformWindows(selfPtr); } - + public void DestroyPlatformWindows() { cbg_Tool_DestroyPlatformWindows(selfPtr); } - + /// /// のインスタンスを削除します。 /// ~Tool() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -16327,5 +16948,5 @@ public void DestroyPlatformWindows() } } } - + } diff --git a/Engine/CorePartial/Buffer.cs b/Engine/CorePartial/Buffer.cs new file mode 100644 index 00000000..dce829da --- /dev/null +++ b/Engine/CorePartial/Buffer.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Text; + +namespace Altseed2 +{ + /// + /// CPU/GPUバッファ + /// + /// + public class Buffer where T : struct + { + internal Buffer InternalBuffer { get; } + + /// + /// バッファ内の要素数 + /// + public int Count { get; } + + /// + /// バッファのサイズ + /// + public int Size => InternalBuffer.Size; + + /// + /// バッファの使途 + /// + public BufferUsageType BufferUsage => InternalBuffer.BufferUsage; + + Buffer(Buffer internalBuffer, int count) + { + InternalBuffer = internalBuffer; + Count = count; + } + + /// + /// バッファを生成します + /// + /// バッファの使途 + /// 要素数 + /// + public static Buffer Create(BufferUsageType usage, int count) + { + var internalBuffer = Buffer.Create(usage, Marshal.SizeOf() * count); + if (internalBuffer == null) + { + Engine.Log.Error(LogCategory.Engine, "Buffer::Create: can't create internal buffer."); + return null; + } + + return new Buffer(internalBuffer, count); + } + + /// + /// バッファへの書き込みを開始します + /// + /// + public Span Lock() + { + unsafe + { + return new Span(InternalBuffer.Lock().ToPointer(), Count); + } + } + + /// + /// バッファへの書き込みを終了します + /// + public void Unlock() + { + InternalBuffer.Unlock(); + } + + /// + /// バッファから値を取得します + /// + /// + public Span Read() + { + unsafe + { + var readback = new Span(InternalBuffer.Read().ToPointer(), Count); + return readback.ToArray(); + } + } + } +} diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs new file mode 100644 index 00000000..ae0fa434 --- /dev/null +++ b/Test/ComputeShader.cs @@ -0,0 +1,62 @@ +using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace Altseed2.Test +{ + [TestFixture] + class ComputeShader + { + [StructLayout(LayoutKind.Sequential)] + public struct Particle : IEquatable + { + public Vector2F Current; + public Vector2F Next; + public Vector2F Velocity; + + public readonly bool Equals(Particle other) => Current == other.Current && Next == other.Next && Velocity == other.Velocity; + + public readonly override bool Equals(object obj) => obj is Vertex v && Equals(v); + + public readonly override int GetHashCode() => HashCode.Combine(Current, Next, Velocity); + + public static bool operator ==(Particle v1, Particle v2) => v1.Equals(v2); + public static bool operator !=(Particle v1, Particle v2) => !v1.Equals(v2); + }; + + [Test, Apartment(ApartmentState.STA)] + public void SpriteNodeWithMaterial() + { + var tc = new TestCore(); + tc.Init(); + + var texture = Texture2D.Load(@"TestData/IO/AltseedPink.png"); + Assert.NotNull(texture); + + var buffer = Buffer.Create(BufferUsageType.Compute, 10000); + { + var data = buffer.Lock(); + for (int i = 0; i < buffer.Count; i++) + { + data[i] = new Particle() + { + Current = new Vector2F(i / 100 * 10, i % 100 * 10), + Velocity = new Vector2F(0, 0), + }; + } + buffer.Unlock(); + } + + var + + tc.LoopBody(null, null); + + tc.End(); + } + } +} From 99875827b43cc5067d36615fe739aeafe8c7f267 Mon Sep 17 00:00:00 2001 From: GON Date: Thu, 4 Nov 2021 01:52:00 +0900 Subject: [PATCH 02/49] update: LLGI --- Core | 2 +- Engine/AutoGeneratedCoreBindings.cs | 204 +++++++--------------------- Engine/CorePartial/Buffer.cs | 6 +- Engine/CorePartial/CommandList.cs | 88 ++++++++++++ Engine/Engine.cs | 14 ++ Engine/Node/CommandDrawnNode.cs | 85 ++++++++++++ 6 files changed, 240 insertions(+), 159 deletions(-) create mode 100644 Engine/CorePartial/CommandList.cs create mode 100644 Engine/Node/CommandDrawnNode.cs diff --git a/Core b/Core index 2e38f656..1e708dcd 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit 2e38f656f9169826b8c2975bfe453c56481aacb1 +Subproject commit 1e708dcd99f09477dc957a5d5895171007bdc697 diff --git a/Engine/AutoGeneratedCoreBindings.cs b/Engine/AutoGeneratedCoreBindings.cs index eb04b568..0a361cd9 100644 --- a/Engine/AutoGeneratedCoreBindings.cs +++ b/Engine/AutoGeneratedCoreBindings.cs @@ -168,10 +168,10 @@ public enum BlendFunction : int [Serializable] public enum BufferUsageType : int { - Index = 0, - Vertex = 1, - Constant = 2, - Compute = 3, + Index = 1, + Vertex = 2, + Constant = 4, + Compute = 8, } /// @@ -4766,7 +4766,7 @@ protected override void OnDeserialization(object sender) /// /// /// - public partial class Buffer + internal partial class Buffer { #region unmanaged @@ -5121,14 +5121,6 @@ public static CommandList TryGetFromCache(IntPtr native) [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_End(IntPtr selfPtr); - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_StartFrame(IntPtr selfPtr, RenderPassParameter renderPassParameter); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_EndFrame(IntPtr selfPtr); - [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_EndRenderPass(IntPtr selfPtr); @@ -5165,6 +5157,10 @@ public static CommandList TryGetFromCache(IntPtr native) [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_RenderToRenderTarget(IntPtr selfPtr, IntPtr material); + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_Draw(IntPtr selfPtr, int instanceCount); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SetVertexBuffer(IntPtr selfPtr, IntPtr vb, int stride, int offset); @@ -5181,6 +5177,10 @@ public static CommandList TryGetFromCache(IntPtr native) [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_EndComputePass(IntPtr selfPtr); + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_SetComputeBuffer(IntPtr selfPtr, IntPtr buffer, int stride, int unit); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_Dispatch(IntPtr selfPtr, int x, int y, int z); @@ -5189,6 +5189,14 @@ public static CommandList TryGetFromCache(IntPtr native) [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_CopyTexture(IntPtr selfPtr, IntPtr src, IntPtr dst); + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_ResetTextures(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_ResetComputeBuffers(IntPtr selfPtr); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SaveRenderTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path, IntPtr texture); @@ -5216,11 +5224,6 @@ public static CommandList TryGetFromCache(IntPtr native) private static extern void cbg_CommandList_SetMaterial(IntPtr selfPtr, IntPtr value); - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetComputeBuffer(IntPtr selfPtr, IntPtr value); - - [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SetComputePipelineState(IntPtr selfPtr, IntPtr value); @@ -5277,22 +5280,6 @@ public TextureFormat ScreenTextureFormat } private TextureFormat? _ScreenTextureFormat; - public Material Material - { - set - { - cbg_CommandList_SetMaterial(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); - } - } - - public Buffer ComputeBuffer - { - set - { - cbg_CommandList_SetComputeBuffer(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); - } - } - public ComputePipelineState ComputePipelineState { set @@ -5317,16 +5304,6 @@ public void End() cbg_CommandList_End(selfPtr); } - public void StartFrame(RenderPassParameter renderPassParameter) - { - cbg_CommandList_StartFrame(selfPtr, renderPassParameter); - } - - public void EndFrame() - { - cbg_CommandList_EndFrame(selfPtr); - } - public void EndRenderPass() { cbg_CommandList_EndRenderPass(selfPtr); @@ -5342,17 +5319,17 @@ public void ResumeRenderPass() cbg_CommandList_ResumeRenderPass(selfPtr); } - public void UploadBuffer(Buffer buffer) + internal void UploadBuffer(Buffer buffer) { cbg_CommandList_UploadBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero); } - public void ReadbackBuffer(Buffer buffer) + internal void ReadbackBuffer(Buffer buffer) { cbg_CommandList_ReadbackBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero); } - public void CopyBuffer(Buffer src, Buffer dst) + internal void CopyBuffer(Buffer src, Buffer dst) { cbg_CommandList_CopyBuffer(selfPtr, src != null ? src.selfPtr : IntPtr.Zero, dst != null ? dst.selfPtr : IntPtr.Zero); } @@ -5386,12 +5363,17 @@ public void RenderToRenderTarget(Material material) cbg_CommandList_RenderToRenderTarget(selfPtr, material != null ? material.selfPtr : IntPtr.Zero); } - public void SetVertexBuffer(Buffer vb, int stride, int offset) + public void Draw(int instanceCount) + { + cbg_CommandList_Draw(selfPtr, instanceCount); + } + + internal void SetVertexBuffer(Buffer vb, int stride, int offset) { cbg_CommandList_SetVertexBuffer(selfPtr, vb != null ? vb.selfPtr : IntPtr.Zero, stride, offset); } - public void SetIndexBuffer(Buffer ib, int stride, int offset) + internal void SetIndexBuffer(Buffer ib, int stride, int offset) { cbg_CommandList_SetIndexBuffer(selfPtr, ib != null ? ib.selfPtr : IntPtr.Zero, stride, offset); } @@ -5406,6 +5388,11 @@ public void EndComputePass() cbg_CommandList_EndComputePass(selfPtr); } + internal void SetComputeBuffer(Buffer buffer, int stride, int unit) + { + cbg_CommandList_SetComputeBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero, stride, unit); + } + public void Dispatch(int x, int y, int z) { cbg_CommandList_Dispatch(selfPtr, x, y, z); @@ -5424,6 +5411,16 @@ public void CopyTexture(RenderTexture src, RenderTexture dst) cbg_CommandList_CopyTexture(selfPtr, src != null ? src.selfPtr : IntPtr.Zero, dst != null ? dst.selfPtr : IntPtr.Zero); } + public void ResetTextures() + { + cbg_CommandList_ResetTextures(selfPtr); + } + + public void ResetComputeBuffers() + { + cbg_CommandList_ResetComputeBuffers(selfPtr); + } + public void SaveRenderTexture(string path, RenderTexture texture) { cbg_CommandList_SaveRenderTexture(selfPtr, path, texture != null ? texture.selfPtr : IntPtr.Zero); @@ -6772,7 +6769,7 @@ public static ComputePipelineState TryGetFromCache(IntPtr native) internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_ComputePipelineState_Create(IntPtr selfPtr); + private static extern IntPtr cbg_ComputePipelineState_Create(); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] @@ -6790,38 +6787,6 @@ public static ComputePipelineState TryGetFromCache(IntPtr native) [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ComputePipelineState_SetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Matrix44F value); - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_ComputePipelineState_GetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_ComputePipelineState_SetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, IntPtr value); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_ComputePipelineState_GetVertexLayoutName(IntPtr selfPtr, int index); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_ComputePipelineState_SetVertexLayoutName(IntPtr selfPtr, int index, [MarshalAs(UnmanagedType.LPWStr)] string name); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern int cbg_ComputePipelineState_GetVertexLayoutFormat(IntPtr selfPtr, int index); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_ComputePipelineState_SetVertexLayoutFormat(IntPtr selfPtr, int index, int format); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern int cbg_ComputePipelineState_GetVertexLayoutSemasntics(IntPtr selfPtr, int index); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_ComputePipelineState_SetVertexLayoutSemasntics(IntPtr selfPtr, int index, int semantics); - [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ComputePipelineState_GetShader(IntPtr selfPtr); @@ -6830,14 +6795,6 @@ public static ComputePipelineState TryGetFromCache(IntPtr native) private static extern void cbg_ComputePipelineState_SetShader(IntPtr selfPtr, IntPtr value); - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern int cbg_ComputePipelineState_GetVertexLayoutCount(IntPtr selfPtr); - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_ComputePipelineState_SetVertexLayoutCount(IntPtr selfPtr, int value); - - [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ComputePipelineState_GetPropertyBlock(IntPtr selfPtr); @@ -6874,25 +6831,6 @@ public Shader Shader } private Shader _Shader; - public int VertexLayoutCount - { - get - { - if (_VertexLayoutCount != null) - { - return _VertexLayoutCount.Value; - } - var ret = cbg_ComputePipelineState_GetVertexLayoutCount(selfPtr); - return ret; - } - set - { - _VertexLayoutCount = value; - cbg_ComputePipelineState_SetVertexLayoutCount(selfPtr, value); - } - } - private int? _VertexLayoutCount; - public MaterialPropertyBlock PropertyBlock { get @@ -6902,9 +6840,9 @@ public MaterialPropertyBlock PropertyBlock } } - public ComputePipelineState Create() + public static ComputePipelineState Create() { - var ret = cbg_ComputePipelineState_Create(selfPtr); + var ret = cbg_ComputePipelineState_Create(); return ComputePipelineState.TryGetFromCache(ret); } @@ -6930,50 +6868,6 @@ public void SetMatrix44F(string key, Matrix44F value) cbg_ComputePipelineState_SetMatrix44F(selfPtr, key, value); } - public TextureBase GetTexture(string key) - { - var ret = cbg_ComputePipelineState_GetTexture(selfPtr, key); - return TextureBase.TryGetFromCache(ret); - } - - public void SetTexture(string key, TextureBase value) - { - cbg_ComputePipelineState_SetTexture(selfPtr, key, value != null ? value.selfPtr : IntPtr.Zero); - } - - public string GetVertexLayoutName(int index) - { - var ret = cbg_ComputePipelineState_GetVertexLayoutName(selfPtr, index); - return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); - } - - public void SetVertexLayoutName(int index, string name) - { - cbg_ComputePipelineState_SetVertexLayoutName(selfPtr, index, name); - } - - public VertexLayoutFormat GetVertexLayoutFormat(int index) - { - var ret = cbg_ComputePipelineState_GetVertexLayoutFormat(selfPtr, index); - return (VertexLayoutFormat)ret; - } - - public void SetVertexLayoutFormat(int index, VertexLayoutFormat format) - { - cbg_ComputePipelineState_SetVertexLayoutFormat(selfPtr, index, (int)format); - } - - public int GetVertexLayoutSemasntics(int index) - { - var ret = cbg_ComputePipelineState_GetVertexLayoutSemasntics(selfPtr, index); - return ret; - } - - public void SetVertexLayoutSemasntics(int index, int semantics) - { - cbg_ComputePipelineState_SetVertexLayoutSemasntics(selfPtr, index, semantics); - } - /// /// のインスタンスを削除します。 /// diff --git a/Engine/CorePartial/Buffer.cs b/Engine/CorePartial/Buffer.cs index dce829da..52bb0baf 100644 --- a/Engine/CorePartial/Buffer.cs +++ b/Engine/CorePartial/Buffer.cs @@ -76,12 +76,12 @@ public void Unlock() /// バッファから値を取得します /// /// - public Span Read() + public ReadOnlySpan Read() { unsafe { - var readback = new Span(InternalBuffer.Read().ToPointer(), Count); - return readback.ToArray(); + var readback = new ReadOnlySpan(InternalBuffer.Read().ToPointer(), Count); + return readback; } } } diff --git a/Engine/CorePartial/CommandList.cs b/Engine/CorePartial/CommandList.cs new file mode 100644 index 00000000..abd1b263 --- /dev/null +++ b/Engine/CorePartial/CommandList.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Text; + +namespace Altseed2 +{ + public partial class CommandList + { + /// + /// GPUへデータをアップロードする + /// + /// + /// + public void UploadBuffer(Buffer buffer) where T : struct + { + UploadBuffer(buffer.InternalBuffer); + } + + /// + /// GPUからデータを読み込む + /// + /// + /// + public void ReadbackBuffer(Buffer buffer) where T : struct + { + ReadbackBuffer(buffer.InternalBuffer); + } + + /// + /// GPUのデータをコピーする + /// + /// + /// + /// + public void CopyBuffer(Buffer src, Buffer dst) where T : struct + { + CopyBuffer(src.InternalBuffer, dst.InternalBuffer); + } + + /// + /// + /// + /// + /// + /// + public void SetIndexBuffer(Buffer indexBuffer, int offset = 0) where T : struct + { + int stride = Marshal.SizeOf(); + SetIndexBuffer(indexBuffer.InternalBuffer, stride, offset); + } + + /// + /// + /// + /// + /// + /// + public void SetVertexBuffer(Buffer vertexBuffer, int offset = 0) where T : struct + { + int stride = Marshal.SizeOf(); + SetVertexBuffer(vertexBuffer.InternalBuffer, stride, offset); + } + + /// + /// + /// + /// + /// + /// + /// + public void SetComputeBuffer(Buffer computeBuffer, int unit) where T : struct + { + int stride = Marshal.SizeOf(); + SetComputeBuffer(computeBuffer.InternalBuffer, stride, unit); + } + + public Material Material + { + set + { + value.SetMatrix44F("matView", Engine.CurrentCamera.ViewMatrix); + value.SetMatrix44F("matProjection", Engine.CurrentCamera.ProjectionMatrix); + cbg_CommandList_SetMaterial(this.selfPtr, value != null ? value.selfPtr : IntPtr.Zero); + } + } + } +} diff --git a/Engine/Engine.cs b/Engine/Engine.cs index 93de5bb4..c813a4b0 100644 --- a/Engine/Engine.cs +++ b/Engine/Engine.cs @@ -208,6 +208,8 @@ internal static bool UpdateComponents(bool drawDefaultCameraGroup, bool drawCust _tool.Render(); } + _currentCamera = null; + // 描画を終了 if (!Graphics.EndFrame()) return false; return true; @@ -215,6 +217,7 @@ internal static bool UpdateComponents(bool drawDefaultCameraGroup, bool drawCust internal static void DrawCameraGroup(RenderedCamera camera, SortedDictionary> drawns) { + _currentCamera = camera; Renderer.Camera = camera; // カリングの結果 @@ -258,6 +261,11 @@ internal static void DrawCameraGroup(RenderedCamera camera, SortedDictionary _profiler ?? throw new InvalidOperationException("Profiler機能が初期化されていません。"); private static Profiler _profiler; + /// + /// 現在使用しているカメラ + /// + internal static RenderedCamera CurrentCamera => _currentCamera; + private static RenderedCamera _currentCamera; + #endregion #region Node diff --git a/Engine/Node/CommandDrawnNode.cs b/Engine/Node/CommandDrawnNode.cs new file mode 100644 index 00000000..ff832df6 --- /dev/null +++ b/Engine/Node/CommandDrawnNode.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Altseed2 +{ + /// + /// を呼び出すことで描画するノードを表します。 + /// + [Serializable] + public class CommandDrawnNode : Node, IDrawn + { + #region IDrawn + /// + /// カメラグループを取得または設定します。 + /// + public ulong CameraGroup + { + get => _CameraGroup; + set + { + if (_CameraGroup == value) return; + var old = _CameraGroup; + _CameraGroup = value; + + if (IsRegistered) + Engine.UpdateDrawnCameraGroup(this, old); + } + } + private ulong _CameraGroup; + + /// + /// 描画時の重ね順を取得または設定します。 + /// + public int ZOrder { + get => _ZOrder; + set + { + if (value == _ZOrder) return; + + var old = _ZOrder; + _ZOrder = value; + + if (IsRegistered) + Engine.UpdateDrawnZOrder(this, old); + } + } + private int _ZOrder; + + #endregion + #region Node + + internal override void Registered() + { + base.Registered(); + Engine.RegisterDrawn(this); + } + + internal override void Unregistered() + { + base.Unregistered(); + Engine.UnregisterDrawn(this); + } + + /// + public override void FlushQueue() + { + base.FlushQueue(); + this.UpdateIsDrawnActuallyOfDescendants(); + } + + #endregion + + /// + /// 描画時に実行されます. + /// + /// 現在の + protected virtual void Draw(CommandList commandList) { } + + void IDrawn.Draw() + { + Draw(Engine.Graphics.CommandList); + } + } +} From 9948a8c5289447f2ac3b94105d0679a59754c0c7 Mon Sep 17 00:00:00 2001 From: GON Date: Thu, 4 Nov 2021 01:52:21 +0900 Subject: [PATCH 03/49] add: compute shader test --- Test/ComputeShader.cs | 137 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 113 insertions(+), 24 deletions(-) diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs index ae0fa434..90528969 100644 --- a/Test/ComputeShader.cs +++ b/Test/ComputeShader.cs @@ -13,48 +13,137 @@ namespace Altseed2.Test class ComputeShader { [StructLayout(LayoutKind.Sequential)] - public struct Particle : IEquatable + public struct InputData { - public Vector2F Current; - public Vector2F Next; - public Vector2F Velocity; - - public readonly bool Equals(Particle other) => Current == other.Current && Next == other.Next && Velocity == other.Velocity; - - public readonly override bool Equals(object obj) => obj is Vertex v && Equals(v); - - public readonly override int GetHashCode() => HashCode.Combine(Current, Next, Velocity); + public float value1; + public float value2; + }; - public static bool operator ==(Particle v1, Particle v2) => v1.Equals(v2); - public static bool operator !=(Particle v1, Particle v2) => !v1.Equals(v2); + [StructLayout(LayoutKind.Sequential)] + public struct OutputData + { + public float value; }; [Test, Apartment(ApartmentState.STA)] - public void SpriteNodeWithMaterial() + public void ComputeShaderBasic() { var tc = new TestCore(); tc.Init(); - var texture = Texture2D.Load(@"TestData/IO/AltseedPink.png"); - Assert.NotNull(texture); + string csCode1 = @" +struct CS_INPUT{ + float value1; + float value2; +}; + +struct CS_OUTPUT{ + float value; +}; + +cbuffer CB : register(b0) +{ + float4 offset; +}; + +RWStructuredBuffer read : register(u0); +RWStructuredBuffer write : register(u1); + +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + write[dtid.x].value = read[dtid.x].value1 * read[dtid.x].value2 + offset.x; +} +"; + + string csCode2 = @" +struct CS_INPUT{ + float value1; + float value2; +}; + +struct CS_OUTPUT{ + float value; +}; + +cbuffer CB : register(b0) +{ + float4 offset; +}; + +RWStructuredBuffer read : register(u0); +RWStructuredBuffer write : register(u1); - var buffer = Buffer.Create(BufferUsageType.Compute, 10000); +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + write[dtid.x].value = read[dtid.x].value1 * read[dtid.x].value2 * offset.x; +} +"; + + var pip1 = ComputePipelineState.Create(); + pip1.Shader = Shader.Create("cs1", csCode1, ShaderStage.Compute); + int offset = 100; + pip1.SetVector4F("offset", new Vector4F(offset, 0, 0, 0)); + + var pip2 = ComputePipelineState.Create(); + pip2.Shader = Shader.Create("cs2", csCode2, ShaderStage.Compute); + pip2.SetVector4F("offset", new Vector4F(offset, 0, 0, 0)); + + int dataSize = 256; + + var read = Buffer.Create(BufferUsageType.Compute, dataSize); { - var data = buffer.Lock(); - for (int i = 0; i < buffer.Count; i++) + var data = read.Lock(); + for (int i = 0; i < read.Count; i++) { - data[i] = new Particle() + data[i] = new InputData() { - Current = new Vector2F(i / 100 * 10, i % 100 * 10), - Velocity = new Vector2F(0, 0), + value1 = i * 2, + value2 = i * 2 + 1, }; } - buffer.Unlock(); + read.Unlock(); } - var + var write1 = Buffer.Create(BufferUsageType.Compute, dataSize); + var write2 = Buffer.Create(BufferUsageType.Compute, dataSize); + + Engine.Graphics.CommandList.Begin(); + Engine.Graphics.CommandList.UploadBuffer(read); + + Engine.Graphics.CommandList.BeginComputePass(); + + Engine.Graphics.CommandList.SetComputeBuffer(read, 0); + Engine.Graphics.CommandList.SetComputeBuffer(write1, 1); + Engine.Graphics.CommandList.ComputePipelineState = pip1; + Engine.Graphics.CommandList.Dispatch(dataSize, 1, 1); - tc.LoopBody(null, null); + Engine.Graphics.CommandList.SetComputeBuffer(read, 0); + Engine.Graphics.CommandList.SetComputeBuffer(write2, 1); + Engine.Graphics.CommandList.ComputePipelineState = pip2; + Engine.Graphics.CommandList.Dispatch(dataSize, 1, 1); + + Engine.Graphics.CommandList.EndComputePass(); + + Engine.Graphics.CommandList.ReadbackBuffer(read); + Engine.Graphics.CommandList.ReadbackBuffer(write1); + Engine.Graphics.CommandList.ReadbackBuffer(write2); + + Engine.Graphics.CommandList.End(); + Engine.Graphics.ExecuteCommandList(); + Engine.Graphics.WaitFinish(); + + + var readValues = read.Read(); + var write1Values = write1.Read(); + var write2Values = write2.Read(); + + for (int i = 0; i < readValues.Length; i++) + { + Assert.AreEqual(write1Values[i].value, readValues[i].value1 * readValues[i].value2 + offset); + Assert.AreEqual(write2Values[i].value, readValues[i].value1 * readValues[i].value2 * offset); + } tc.End(); } From 34eb57aa26c3163816cded3895ef36dbf74afa0e Mon Sep 17 00:00:00 2001 From: GON Date: Thu, 4 Nov 2021 01:52:56 +0900 Subject: [PATCH 04/49] add: fluids simulation test --- Samples/ComputeShader/Fluid.cs | 850 +++++++++++++++++++++++++++++++++ Samples/Viewer.cs | 1 + 2 files changed, 851 insertions(+) create mode 100644 Samples/ComputeShader/Fluid.cs diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs new file mode 100644 index 00000000..05f8f7e1 --- /dev/null +++ b/Samples/ComputeShader/Fluid.cs @@ -0,0 +1,850 @@ +using Altseed2; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace Sample +{ + public class Fluid + { + const float EffectiveRadius = 6; + const float ParticleRadius = 2; + + [StructLayout(LayoutKind.Sequential, Size = 32)] + public struct Particle + { + public Vector2F Current; + public Vector2F Next; + public Vector2F Velocity; + [MarshalAs(UnmanagedType.R4)] + public float Pscl; + [MarshalAs(UnmanagedType.U1)] + public bool IsFix; + }; + + public static float CalcRestDensity(float h) + { + var a = 4f / (MathF.PI * MathF.Pow(h, 8f)); + var r0 = 0.0f; + var l = 2 * ParticleRadius; + int n = (int)MathF.Ceiling(h / l) + 1; + for (int x = -n; x <= n; ++x) + { + for (int y = -n; y <= n; ++y) + { + Vector2F rij = new Vector2F(x * l, y * l); + var r = rij.Length; + if (r >= 0.0 && r <= h) + { + var q = h * h - r * r; + r0 += a * q * q * q; + } + } + } + return r0; + } + + class ParticleNode : CommandDrawnNode + { + public Material Material { get; set; } + public Buffer IndexBuffer { get; set; } + public Buffer VertexBuffer { get; set; } + + protected override void Draw(CommandList commandList) + { + commandList.Material = Material; + commandList.SetIndexBuffer(IndexBuffer); + commandList.SetVertexBuffer(VertexBuffer); + commandList.Draw(IndexBuffer.Count / 3); + } + } + + public static void Main(string[] args) + { + Engine.Initialize("Fluids Sim", 640, 480); + Engine.FramerateMode = FramerateMode.Variable; + Engine.TargetFPS = 240; + var density = CalcRestDensity(EffectiveRadius); + + var particles = Buffer.Create(BufferUsageType.Compute, 2048); + { + var data = particles.Lock(); + + int ind = 0; + for (int y = 0; y < 300 / (ParticleRadius * 2); y++) + { + for (int x = 0; x < 300 / (ParticleRadius * 2); x++) + { + if (x * (ParticleRadius * 2) + ParticleRadius < 8 || + x * (ParticleRadius * 2) + ParticleRadius > 300 - 8 || + y * (ParticleRadius * 2) + ParticleRadius < 8 || + y * (ParticleRadius * 2) + ParticleRadius > 300 - 8) + { + data[ind++] = new Particle() + { + Current = new Vector2F(x * (ParticleRadius * 2) + ParticleRadius, y * (ParticleRadius * 2) + ParticleRadius), + Next = new Vector2F(x * (ParticleRadius * 2) + ParticleRadius, y * (ParticleRadius * 2) + ParticleRadius), + Velocity = new Vector2F(0, 0), + Pscl = 0, + IsFix = true, + }; + } + } + } + for (int i = ind; i < particles.Count; i++) + { + data[i] = new Particle() + { + Current = new Vector2F(i % 50 * 4 + 10, i / 50 * 4 + 20), + Velocity = new Vector2F(0, 0), + Pscl = 0, + }; + } + particles.Unlock(); + } + + var gridTable = Buffer.Create(BufferUsageType.Compute, 2048); + var gridIndicesTable = Buffer.Create(BufferUsageType.Compute, 60 * 60); + var particleComputeVertex = Buffer.Create(BufferUsageType.Compute, particles.Count * 4); + var particleVertex = Buffer.Create(BufferUsageType.Vertex, particles.Count * 4); + var particleComputeIndex = Buffer.Create(BufferUsageType.Compute, particles.Count * 6); + var particleIndex = Buffer.Create(BufferUsageType.Index, particles.Count * 6); + + var csCalcExternalForces = @" +struct Particle +{ + float2 Current; + float2 Next; + float2 Velocity; + float Pscl; + bool IsFix; +}; + +cbuffer CB : register(b0) +{ + float4 Force; + float4 Gravity; + float4 GridNum; + float4 GridSize; +}; + +RWStructuredBuffer particles : register(u0); + +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + if (particles[dtid.x].IsFix) + return; + particles[dtid.x].Velocity += (Gravity.xy + Force.xy) * (1.0 / 60); + particles[dtid.x].Next = particles[dtid.x].Current + particles[dtid.x].Velocity * (1.0 / 60); + particles[dtid.x].Next.x = clamp(particles[dtid.x].Next.x, 8, GridNum.x * GridSize.x - 8); + particles[dtid.x].Next.y = clamp(particles[dtid.x].Next.y, 8, GridNum.y * GridSize.y - 8); +} +"; + + var calcExternalPipeline = ComputePipelineState.Create(); + calcExternalPipeline.Shader = Shader.Create("csCalcExternalForces", csCalcExternalForces, ShaderStage.Compute); + calcExternalPipeline.SetVector4F("Force", new Vector4F(0, 0, 0, 0)); + calcExternalPipeline.SetVector4F("Gravity", new Vector4F(0, 100, 0, 0)); + calcExternalPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); + calcExternalPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + + var csBuildGrid = @" +struct Particle +{ + float2 Current; + float2 Next; + float2 Velocity; + float Pscl; + bool IsFix; +}; + +cbuffer CB : register(b0) +{ + float4 GridNum; + float4 GridSize; + float4 ParticleNum; +}; + +RWStructuredBuffer particles : register(u0); +RWStructuredBuffer gridTable : register(u1); + +int GetGridHash(float2 pos) +{ + return (int)(pos.x / GridSize.x) + (int)(pos.y / GridSize.y) * (int)GridNum.x; +} + +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + if (dtid.x < ParticleNum.x) + { + gridTable[dtid.x].x = GetGridHash(particles[dtid.x].Next); + gridTable[dtid.x].y = dtid.x; + } + else + { + gridTable[dtid.x].x = 0xffffffff; + gridTable[dtid.x].y = dtid.x; + } +} +"; + + var buildGridPipeline = ComputePipelineState.Create(); + buildGridPipeline.Shader = Shader.Create("csBuildGrid", csBuildGrid, ShaderStage.Compute); + buildGridPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); + buildGridPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + buildGridPipeline.SetVector4F("ParticleNum", new Vector4F(particles.Count, 0, 0, 0)); + + var csBitonicSort = @" +cbuffer CB : register(b0) +{ + float4 Inc; + float4 Dir; +}; + +RWStructuredBuffer gridTable : register(u0); + +[numthreads(64, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + int inc = (int)Inc.x; + int dir = (int)Dir.x; + int t = dtid.x; // thread index + int low = t & (inc - 1); // low order bits (below INC) + int i = (t << 1) - low; // insert 0 at position INC + bool reverse = ((dir & i) == 0); + + // Load + int2 x0 = gridTable[i]; + int2 x1 = gridTable[inc + i]; + + // Sort + int2 auxa = x0; + int2 auxb = x1; + if ((x0.x < x1.x) ^ reverse) { x0 = auxb; x1 = auxa; } + + // Store + gridTable[i] = x0; + gridTable[inc + i] = x1; +} +"; + + var bitonicSortPipeline = ComputePipelineState.Create(); + bitonicSortPipeline.Shader = Shader.Create("csBitonicSort", csBitonicSort, ShaderStage.Compute); + + var csClearGridIndices = @" +RWStructuredBuffer gridIndicesTable : register(u0); + +[numthreads(64, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + gridIndicesTable[dtid.x] = int2(0xffffffff, 0xffffffff); +} +"; + + var clearGridIndicesPipeline = ComputePipelineState.Create(); + clearGridIndicesPipeline.Shader = Shader.Create("clearGridIndicesPipeline", csClearGridIndices, ShaderStage.Compute); + + var csBuildGridIndices = @" +cbuffer CB : register(b0) +{ + float4 ParticleNum; +}; + +RWStructuredBuffer gridTable : register(u0); +RWStructuredBuffer gridIndicesTable : register(u1); + +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + int id = dtid.x; + int idPrev = (id == 0) ? (int)ParticleNum : id; + idPrev--; + int idNext = id + 1; + if (idNext == (int)ParticleNum) { idNext = 0; } + + int cell = gridTable[id].x; + int cellPrev = gridTable[idPrev].x; + int cellNext = gridTable[idNext].x; + + if (cell != cellPrev) + { + gridIndicesTable[cell].x = id; + } + + if (cell != cellNext) + { + gridIndicesTable[cell].y = id + 1; + } +} +"; + + var buildGridIndicesPipeline = ComputePipelineState.Create(); + buildGridIndicesPipeline.Shader = Shader.Create("csBuildGridIndices", csBuildGridIndices, ShaderStage.Compute); + buildGridIndicesPipeline.SetVector4F("ParticleNum", new Vector4F(particles.Count, 0, 0, 0)); + + var csCalcScalingFactor = @" +struct Particle +{ + float2 Current; + float2 Next; + float2 Velocity; + float Pscl; + bool IsFix; +}; + +cbuffer CB : register(b0) +{ + float4 GridNum; + float4 GridSize; + float4 EffectiveRadius; + float4 Density; + float4 Eps; + float4 Dt; + float4 Wpoly6; + float4 GWspiky; +}; + +RWStructuredBuffer particles : register(u0); +RWStructuredBuffer gridTable : register(u1); +RWStructuredBuffer gridIndicesTable : register(u2); + +int GetGridHash(float2 pos) +{ + return (int)(pos.x / GridSize.x) + (int)(pos.y / GridSize.y) * (int)GridNum.x; +} + +int2 GetGridPos(float2 pos) +{ + return int2((int)(pos.x / GridSize.x), (int)(pos.y / GridSize.x)); +} + +float2 CalcDensityCellPB(int2 gridPos, int i, float2 pos0) +{ + int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; + int startIndex = gridIndicesTable[gridHash].x; + + float h = EffectiveRadius.x; + float dens = 0.0f; + if(startIndex != 0xffffffff){ // セルが空でないかのチェック + // セル内のパーティクルで反復 + int endIndex = gridIndicesTable[gridHash].y; + for(int j = startIndex; j < endIndex; ++j){ + //if(j == i) continue; + + float2 pos1 = particles[gridTable[j].y].Next; + + float2 rij = pos0 - pos1; + float r = length(rij); + + if(r <= h){ + float q = h * h - r * r; + dens += Wpoly6.x * q * q * q; + } + } + } + + return dens; +} + +float CalcScalingFactorCell(int2 gridPos, int i, float2 pos0) +{ + int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; + int startIndex = gridIndicesTable[gridHash].x; + + float h = EffectiveRadius.x; + float r0 = Density.x; + float sd = 0.0f; + float sd2 = 0.0f; + if(startIndex != 0xffffffff){ // セルが空でないかのチェック + // セル内のパーティクルで反復 + uint endIndex = gridIndicesTable[gridHash].y; + for(uint j = startIndex; j < endIndex; ++j){ + + float2 pos1 = particles[gridTable[j].y].Next; + + float2 rij = pos0-pos1; + float r = length(rij); + + if(r <= h && r > 0.0){ + float q = h - r; + + // Spikyカーネルで位置変動を計算 + float2 dp = -(GWspiky.x * q * q * rij / r) / r0; + sd2 -= dp; + + if(gridTable[j].y != i) + sd += dot(dp, dp); + } + } + } + return sd + dot(sd2, sd2); +} + +void CalcScalingFactor(int id) +{ + float2 pos = particles[id].Next; // パーティクル位置 + float h = EffectiveRadius.x; + float r0 = Density.x; + + // パーティクル周囲のグリッド + int2 grid_pos0, grid_pos1; + grid_pos0 = GetGridPos(pos-h); + grid_pos1 = GetGridPos(pos+h); + + // 周囲のグリッドも含めて近傍探索,密度計算 + float dens = 0.0f; + for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ + for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ + int2 n_grid_pos = int2(x, y); + dens += CalcDensityCellPB(n_grid_pos, id, pos); + } + } + + // 密度拘束条件(式(1)) + float C = dens/r0-1.0; + + // 周囲のグリッドも含めて近傍探索,スケーリングファクタの分母項計算 + float sd = 0.0f; + for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ + for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ + int2 n_grid_pos = int2(x, y); + sd += CalcScalingFactorCell(n_grid_pos, id, pos); + } + } + + // スケーリングファクタの計算(式(11)) + particles[id].Pscl = -C/(sd+Eps); +} + +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + int id = dtid.x; + CalcScalingFactor(id); +} +"; + + var calcScalingFactorPipeline = ComputePipelineState.Create(); + calcScalingFactorPipeline.Shader = Shader.Create("csCalcScalingFactor", csCalcScalingFactor, ShaderStage.Compute); + calcScalingFactorPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); + calcScalingFactorPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + calcScalingFactorPipeline.SetVector4F("EffectiveRadius", new Vector4F(EffectiveRadius, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Density", new Vector4F(density, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Eps", new Vector4F(0.1f, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Wpoly6", new Vector4F(4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)), 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("GWspiky", new Vector4F(-30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)), 0, 0, 0)); + + var csCalcCorrectPosition = @" +struct Particle +{ + float2 Current; + float2 Next; + float2 Velocity; + float Pscl; + bool IsFix; +}; + +cbuffer CB : register(b0) +{ + float4 GridNum; + float4 GridSize; + float4 EffectiveRadius; + float4 Density; + float4 Eps; + float4 Dt; + float4 Wpoly6; + float4 GWspiky; +}; + +RWStructuredBuffer particles : register(u0); +RWStructuredBuffer gridTable : register(u1); +RWStructuredBuffer gridIndicesTable : register(u2); + +int GetGridHash(float2 pos) +{ + return (int)(pos.x / GridSize.x) + (int)(pos.y / GridSize.y) * (int)GridNum.x; +} + +int2 GetGridPos(float2 pos) +{ + return int2((int)(pos.x / GridSize.x), (int)(pos.y / GridSize.x)); +} + +float2 CalcPositionCorrectionCell(int2 gridPos, int i, float2 pos0) +{ + int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; + int startIndex = gridIndicesTable[gridHash].x; + + float h = EffectiveRadius.x; + float r0 = Density.x; + float2 dp = float2(0.0); + + float dt = Dt.x; + + float si = particles[i].Pscl; + + if(startIndex != 0xffffffff){ // セルが空でないかのチェック + // セル内のパーティクルで反復 + uint endIndex = gridIndicesTable[gridHash].y; + for(uint j = startIndex; j < endIndex; ++j){ + if(gridTable[j].y == i) continue; + + float2 pos1 = particles[gridTable[j].y].Next; + + float2 rij = pos0 - pos1; + float r = length(rij); + + if(r <= h && r > 0.0){ + float scorr = 0; + { + float q = h * h - r * r; + float q2 = h * h - 0.04 * h * h; + + float ww = Wpoly6.x * q * q * q / (Wpoly6.x * q2 * q2 * q2); + scorr = -0.1 * pow(ww, 4) * dt * dt; + } + + { + float q = h - r; + float sj = particles[gridTable[j].y].Pscl; + + // Spikyカーネルで位置修正量を計算 + dp += (si + sj + scorr) * (GWspiky.x * q * q * rij / r) / r0; + } + } + } + } + + return dp; +} + +float2 CalcPositionCorrection(int id) +{ + float2 pos = particles[id].Next; // パーティクル位置 + float h = EffectiveRadius.x; + + // パーティクル周囲のグリッド + int2 grid_pos0, grid_pos1; + grid_pos0 = GetGridPos(pos - h); + grid_pos1 = GetGridPos(pos + h); + + // 周囲のグリッドも含めて近傍探索,位置修正量を計算 + float2 dpij = float2(0.0f); + for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ + for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ + int2 n_grid_pos = int2(x, y); + dpij += CalcPositionCorrectionCell(n_grid_pos, id, pos); + } + } + + return dpij; +} + +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + if (particles[dtid.x].IsFix) + return; + int id = dtid.x; + particles[id].Next += CalcPositionCorrection(id); +} +"; + + var calcCorrectPositionPipeline = ComputePipelineState.Create(); + calcCorrectPositionPipeline.Shader = Shader.Create("csCalcCorrectPosition", csCalcCorrectPosition, ShaderStage.Compute); + calcCorrectPositionPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("EffectiveRadius", new Vector4F(EffectiveRadius, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Density", new Vector4F(density, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Eps", new Vector4F(0.1f, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Wpoly6", new Vector4F(4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)), 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("GWspiky", new Vector4F(-30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)), 0, 0, 0)); + + var csIntegrate = @" +struct Particle +{ + float2 Current; + float2 Next; + float2 Velocity; + float Pscl; + bool IsFix; +}; + +cbuffer CB : register(b0) +{ + float4 Dt; +}; + +RWStructuredBuffer particles : register(u0); + +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + particles[dtid.x].Velocity = (particles[dtid.x].Next - particles[dtid.x].Current) * (1.0 / Dt.x); + particles[dtid.x].Current = particles[dtid.x].Next; +} +"; + + var integratePipeline = ComputePipelineState.Create(); + integratePipeline.Shader = Shader.Create("csIntegrate", csIntegrate, ShaderStage.Compute); + integratePipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); + + var csBuildVBIB = @" +struct Particle +{ + float2 Current; + float2 Next; + float2 Velocity; + float Pscl; + bool IsFix; +}; + +struct Vertex{ + float3 Position; + int Color; + float2 UV1; + float2 UV2; +}; + +cbuffer CB : register(b0) +{ + float4 ParticleRadius; + float4 Color; +}; + +RWStructuredBuffer particles : register(u0); +RWStructuredBuffer vertex : register(u1); +RWStructuredBuffer index : register(u2); + +int DecodeFloatRGBA(float4 rgba) { + int res = 0; + res += (int)(rgba.a * 255); + res = res << 8; + res += (int)(rgba.b * 255); + res = res << 8; + res += (int)(rgba.g * 255); + res = res << 8; + res += (int)(rgba.r * 255); + return res; +} + +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + for (int i = 0; i < 4; i++) + { + float4 c = Color; + if (particles[dtid.x].IsFix) + c.a = 0; + vertex[dtid.x * 4 + i].Color = DecodeFloatRGBA(c); + } + + vertex[dtid.x * 4].Position = float3(particles[dtid.x].Current, 0.5) + float3(-1, -1, 0) * ParticleRadius.x * 3; + vertex[dtid.x * 4 + 1].Position = float3(particles[dtid.x].Current, 0.5) + float3(1, -1, 0) * ParticleRadius.x * 3; + vertex[dtid.x * 4 + 2].Position = float3(particles[dtid.x].Current, 0.5) + float3(1, 1, 0) * ParticleRadius.x * 3; + vertex[dtid.x * 4 + 3].Position = float3(particles[dtid.x].Current, 0.5) + float3(-1, 1, 0) * ParticleRadius.x * 3; + vertex[dtid.x * 4].UV1 = float2(0, 0); + vertex[dtid.x * 4 + 1].UV1 = float2(1, 0); + vertex[dtid.x * 4 + 2].UV1 = float2(1, 1); + vertex[dtid.x * 4 + 3].UV1 = float2(0, 1); + + index[dtid.x * 6] = dtid.x * 4; + index[dtid.x * 6 + 1] = dtid.x * 4 + 1; + index[dtid.x * 6 + 2] = dtid.x * 4 + 2; + index[dtid.x * 6 + 3] = dtid.x * 4; + index[dtid.x * 6 + 4] = dtid.x * 4 + 2; + index[dtid.x * 6 + 5] = dtid.x * 4 + 3; +} +"; + + var buildVBIB = ComputePipelineState.Create(); + buildVBIB.Shader = Shader.Create("csIntegrate", csBuildVBIB, ShaderStage.Compute); + buildVBIB.SetVector4F("ParticleRadius", new Vector4F(ParticleRadius, 0, 0, 0)); + buildVBIB.SetVector4F("Color", new Vector4F(0.2f, 0.2f, 1f, 1f)); + + var renderTexture = RenderTexture.Create(new Vector2I(300, 300), TextureFormat.R8G8B8A8_UNORM); + + var camera = new CameraNode() + { + Group = 1, + IsColorCleared = true, + ClearColor = new Color(0, 0, 0, 0), + TargetTexture = renderTexture, + }; + Engine.AddNode(camera); + + var camera2 = new CameraNode() + { + IsColorCleared = true, + Group = 2, + }; + Engine.AddNode(camera2); + + var particlesNode = new ParticleNode(); + particlesNode.Material = Material.Create(); + var blend = AlphaBlend.Add; + blend.BlendEquationRGB = BlendEquation.Max; + particlesNode.Material.AlphaBlend = blend; + particlesNode.CameraGroup = 1; + + var psCode = @" +struct PS_INPUT +{ + float4 Position : SV_POSITION; + float4 Color : COLOR0; + float2 UV1 : UV0; + float2 UV2 : UV1; +}; +float4 main(PS_INPUT input) : SV_TARGET +{ + float4 c; + float r = length((input.UV1 - 0.5) * 2); + float a = r > 1 ? 0 : (-4 / 9 * pow(r, 6) + 17 / 9 * pow(r, 4) - 22 / 9 * pow(r, 2) + 1); + c = float4(input.Color.rgb, input.Color.a * a); + return c; +}"; + particlesNode.Material.SetShader(Shader.Create("ps", psCode, ShaderStage.Pixel)); + particlesNode.VertexBuffer = particleVertex; + particlesNode.IndexBuffer = particleIndex; + Engine.AddNode(particlesNode); + + var finalizeNode = new SpriteNode() + { + Texture = renderTexture, + Position = Engine.WindowSize / 2 - renderTexture.Size / 2, + CameraGroup = 2, + }; + finalizeNode.Material = Material.Create(); + var psCode2 = @" +Texture2D mainTex : register(t0); +SamplerState mainSamp : register(s0); +struct PS_INPUT +{ + float4 Position : SV_POSITION; + float4 Color : COLOR0; + float2 UV1 : UV0; + float2 UV2 : UV1; +}; +float4 main(PS_INPUT input) : SV_TARGET +{ + float4 c; + if (mainTex.Sample(mainSamp, input.UV1).a < 0.5) + discard; + c = float4(mainTex.Sample(mainSamp, input.UV1).rgb, 1); + return c; +}"; + finalizeNode.Material.SetShader(Shader.Create("ps2", psCode2, ShaderStage.Pixel)); + finalizeNode.Material.SetTexture("mainTex", renderTexture); + Engine.AddNode(finalizeNode); + + var font = Font.LoadDynamicFont("TestData/Font/mplus-1m-regular.ttf", 64); + var text = new TextNode() { Font = font, FontSize = 30, Text = "", ZOrder = 10, CameraGroup = 2 }; + Engine.AddNode(text); + + Engine.Graphics.CommandList.Begin(); + Engine.Graphics.CommandList.UploadBuffer(particles); + Engine.Graphics.CommandList.End(); + Engine.Graphics.ExecuteCommandList(); + Engine.Graphics.WaitFinish(); + + bool step = false; + while (Engine.DoEvents()) + { + Engine.Graphics.CommandList.Begin(); + + Engine.Graphics.CommandList.BeginComputePass(); + + if (step) + { + Engine.Graphics.CommandList.ComputePipelineState = calcExternalPipeline; + Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); + Engine.Graphics.CommandList.Dispatch(particles.Count, 1, 1); + + for (int l = 0; l < 8; l++) + { + Engine.Graphics.CommandList.ComputePipelineState = buildGridPipeline; + Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); + Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); + Engine.Graphics.CommandList.Dispatch(gridTable.Count, 1, 1); + + Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 0); + + int nlog = (int)MathF.Log(gridTable.Count, 2); + int inc; + + for (int i = 0; i < nlog; i++) + { + inc = 1 << i; + for (int j = 0; j < i + 1; j++) + { + bitonicSortPipeline.SetVector4F("Dir", new Vector4F(2 << i, 0, 0, 0)); + bitonicSortPipeline.SetVector4F("Inc", new Vector4F(inc, 0, 0, 0)); + Engine.Graphics.CommandList.ComputePipelineState = bitonicSortPipeline; + Engine.Graphics.CommandList.Dispatch(gridTable.Count / 2 / 64, 1, 1); + inc /= 2; + } + } + + Engine.Graphics.CommandList.ComputePipelineState = clearGridIndicesPipeline; + Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 0); + Engine.Graphics.CommandList.Dispatch(gridIndicesTable.Count, 1, 1); + + Engine.Graphics.CommandList.ComputePipelineState = buildGridIndicesPipeline; + Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 0); + Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 1); + Engine.Graphics.CommandList.Dispatch(gridTable.Count, 1, 1); + + Engine.Graphics.CommandList.ComputePipelineState = calcScalingFactorPipeline; + Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); + Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); + Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); + Engine.Graphics.CommandList.Dispatch(particles.Count, 1, 1); + + Engine.Graphics.CommandList.ComputePipelineState = calcCorrectPositionPipeline; + Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); + Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); + Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); + Engine.Graphics.CommandList.Dispatch(particles.Count, 1, 1); + } + + Engine.Graphics.CommandList.ComputePipelineState = integratePipeline; + Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); + Engine.Graphics.CommandList.Dispatch(particles.Count, 1, 1); + } + + Engine.Graphics.CommandList.ComputePipelineState = buildVBIB; + Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); + Engine.Graphics.CommandList.SetComputeBuffer(particleComputeVertex, 1); + Engine.Graphics.CommandList.SetComputeBuffer(particleComputeIndex, 2); + Engine.Graphics.CommandList.Dispatch(particles.Count, 1, 1); + + Engine.Graphics.CommandList.EndComputePass(); + + Engine.Graphics.CommandList.CopyBuffer(particleComputeIndex, particleIndex); + Engine.Graphics.CommandList.CopyBuffer(particleComputeVertex, particleVertex); + + Engine.Graphics.CommandList.End(); + Engine.Graphics.ExecuteCommandList(); + Engine.Graphics.WaitFinish(); + + text.Text = Engine.CurrentFPS.ToString(); + + if (Engine.Keyboard.GetKeyState(Key.Space) == ButtonState.Push) + { + step = !step; + } + + Engine.Update(); + } + + Engine.Terminate(); + } + } +} diff --git a/Samples/Viewer.cs b/Samples/Viewer.cs index 53e28f55..e1b08564 100644 --- a/Samples/Viewer.cs +++ b/Samples/Viewer.cs @@ -47,6 +47,7 @@ static void Main(string[] args) Samples.Add(new Sample("PostEffect/LightBloom", "ライトブルームのポストエフェクトを適用します。", typeof(PostEffectLightBloom))); Samples.Add(new Sample("CustomPostEffect", "自作のポストエフェクトを適用します。", typeof(CustomPostEffect))); Samples.Add(new Sample("Movie", "映像を再生します。", typeof(Movie))); + Samples.Add(new Sample("Fluid", "2D流体シミュレーションを行います.", typeof(Fluid))); SamplesString = string.Join('\t', Samples.Select(s => s.Name)); From fb181ace5d0d16a382646ee7cb7c42d5eed1fb27 Mon Sep 17 00:00:00 2001 From: GON Date: Thu, 4 Nov 2021 01:53:48 +0900 Subject: [PATCH 05/49] update: LLGI --- Core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core b/Core index 1e708dcd..624b3806 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit 1e708dcd99f09477dc957a5d5895171007bdc697 +Subproject commit 624b3806db998f839ccacfbce3990928ef1a7a82 From cf7aa2ac762f0637c42047c3b9b54b8d3d8011f2 Mon Sep 17 00:00:00 2001 From: GON Date: Thu, 4 Nov 2021 02:40:18 +0900 Subject: [PATCH 06/49] update: submodule --- Core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core b/Core index 624b3806..4da8aa27 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit 624b3806db998f839ccacfbce3990928ef1a7a82 +Subproject commit 4da8aa2768ef1963901a02bbdfe8b6d6d3da589d From 52cc4e8aec20f6a6a05a8b107621264199bce324 Mon Sep 17 00:00:00 2001 From: GON Date: Sun, 7 Nov 2021 02:10:31 +0900 Subject: [PATCH 07/49] update: Core --- Core | 2 +- Engine/AutoGeneratedCoreBindings.cs | 302 +++++++++++++++------------- 2 files changed, 159 insertions(+), 145 deletions(-) diff --git a/Core b/Core index 4da8aa27..0beb9548 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit 4da8aa2768ef1963901a02bbdfe8b6d6d3da589d +Subproject commit 0beb95484119fec3733f1ddf1d46b988d4e62c83 diff --git a/Engine/AutoGeneratedCoreBindings.cs b/Engine/AutoGeneratedCoreBindings.cs index 0a361cd9..32ac0573 100644 --- a/Engine/AutoGeneratedCoreBindings.cs +++ b/Engine/AutoGeneratedCoreBindings.cs @@ -69,6 +69,18 @@ public enum LogCategory : int User = 3, } + /// + /// + /// + [Serializable] + public enum BufferUsageType : int + { + Index = 1, + Vertex = 2, + Constant = 4, + Compute = 8, + } + /// /// /// @@ -162,18 +174,6 @@ public enum BlendFunction : int OneMinusDstColor = 9, } - /// - /// - /// - [Serializable] - public enum BufferUsageType : int - { - Index = 1, - Vertex = 2, - Constant = 4, - Compute = 8, - } - /// /// 描画方法を表します。 /// @@ -3170,6 +3170,138 @@ public bool DoEvent() } } + /// + /// + /// + internal partial class Buffer + { + #region unmanaged + + [EditorBrowsable(EditorBrowsableState.Never)] + private static Dictionary> cacheRepo = new Dictionary>(); + + [EditorBrowsable(EditorBrowsableState.Never)] + public static Buffer TryGetFromCache(IntPtr native) + { + if(native == IntPtr.Zero) return null; + + if(cacheRepo.ContainsKey(native)) + { + Buffer cacheRet; + cacheRepo[native].TryGetTarget(out cacheRet); + if(cacheRet != null) + { + cbg_Buffer_Release(native); + return cacheRet; + } + else + { + cacheRepo.Remove(native); + } + } + + var newObject = new Buffer(new MemoryHandle(native)); + cacheRepo[native] = new WeakReference(newObject); + return newObject; + } + + [EditorBrowsable(EditorBrowsableState.Never)] + internal IntPtr selfPtr = IntPtr.Zero; + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_Buffer_Create(int usage, int size); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_Buffer_Lock(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_Buffer_Unlock(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern IntPtr cbg_Buffer_Read(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern int cbg_Buffer_GetSize(IntPtr selfPtr); + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern int cbg_Buffer_GetBufferUsage(IntPtr selfPtr); + + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_Buffer_Release(IntPtr selfPtr); + + #endregion + + [EditorBrowsable(EditorBrowsableState.Never)] + internal Buffer(MemoryHandle handle) + { + selfPtr = handle.selfPtr; + } + + public int Size + { + get + { + var ret = cbg_Buffer_GetSize(selfPtr); + return ret; + } + } + + public BufferUsageType BufferUsage + { + get + { + var ret = cbg_Buffer_GetBufferUsage(selfPtr); + return (BufferUsageType)ret; + } + } + + public static Buffer Create(BufferUsageType usage, int size) + { + var ret = cbg_Buffer_Create((int)usage, size); + return Buffer.TryGetFromCache(ret); + } + + public IntPtr Lock() + { + var ret = cbg_Buffer_Lock(selfPtr); + return ret; + } + + public void Unlock() + { + cbg_Buffer_Unlock(selfPtr); + } + + public IntPtr Read() + { + var ret = cbg_Buffer_Read(selfPtr); + return ret; + } + + /// + /// のインスタンスを削除します。 + /// + ~Buffer() + { + lock (this) + { + if (selfPtr != IntPtr.Zero) + { + cbg_Buffer_Release(selfPtr); + selfPtr = IntPtr.Zero; + } + } + } + } + /// /// シェーダのコンパイル結果を表すクラス /// @@ -3320,6 +3452,11 @@ public static Shader TryGetFromCache(IntPtr native) private static extern int cbg_Shader_GetUniformSize(IntPtr selfPtr); + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern Vector3I cbg_Shader_GetNumThreads(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Shader_GetCode(IntPtr selfPtr); @@ -3356,6 +3493,15 @@ public int UniformSize } } + public Vector3I NumThreads + { + get + { + var ret = cbg_Shader_GetNumThreads(selfPtr); + return ret; + } + } + /// /// インスタンス生成に使用したコードを取得します。 /// @@ -4763,138 +4909,6 @@ protected override void OnDeserialization(object sender) } } - /// - /// - /// - internal partial class Buffer - { - #region unmanaged - - [EditorBrowsable(EditorBrowsableState.Never)] - private static Dictionary> cacheRepo = new Dictionary>(); - - [EditorBrowsable(EditorBrowsableState.Never)] - public static Buffer TryGetFromCache(IntPtr native) - { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) - { - Buffer cacheRet; - cacheRepo[native].TryGetTarget(out cacheRet); - if(cacheRet != null) - { - cbg_Buffer_Release(native); - return cacheRet; - } - else - { - cacheRepo.Remove(native); - } - } - - var newObject = new Buffer(new MemoryHandle(native)); - cacheRepo[native] = new WeakReference(newObject); - return newObject; - } - - [EditorBrowsable(EditorBrowsableState.Never)] - internal IntPtr selfPtr = IntPtr.Zero; - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_Buffer_Create(int usage, int size); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_Buffer_Lock(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Buffer_Unlock(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_Buffer_Read(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern int cbg_Buffer_GetSize(IntPtr selfPtr); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern int cbg_Buffer_GetBufferUsage(IntPtr selfPtr); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Buffer_Release(IntPtr selfPtr); - - #endregion - - [EditorBrowsable(EditorBrowsableState.Never)] - internal Buffer(MemoryHandle handle) - { - selfPtr = handle.selfPtr; - } - - public int Size - { - get - { - var ret = cbg_Buffer_GetSize(selfPtr); - return ret; - } - } - - public BufferUsageType BufferUsage - { - get - { - var ret = cbg_Buffer_GetBufferUsage(selfPtr); - return (BufferUsageType)ret; - } - } - - public static Buffer Create(BufferUsageType usage, int size) - { - var ret = cbg_Buffer_Create((int)usage, size); - return Buffer.TryGetFromCache(ret); - } - - public IntPtr Lock() - { - var ret = cbg_Buffer_Lock(selfPtr); - return ret; - } - - public void Unlock() - { - cbg_Buffer_Unlock(selfPtr); - } - - public IntPtr Read() - { - var ret = cbg_Buffer_Read(selfPtr); - return ret; - } - - /// - /// のインスタンスを削除します。 - /// - ~Buffer() - { - lock (this) - { - if (selfPtr != IntPtr.Zero) - { - cbg_Buffer_Release(selfPtr); - selfPtr = IntPtr.Zero; - } - } - } - } - /// /// 組み込みシェーダの取得を行うクラス /// From 6208d757c6458b97d50f2c1624c4aa1f3678dc95 Mon Sep 17 00:00:00 2001 From: GON Date: Tue, 15 Feb 2022 21:31:39 +0900 Subject: [PATCH 08/49] update: Core --- Core | 2 +- Engine/AutoGeneratedCoreBindings.cs | 83 ++++++++++++++++++++++++++--- Engine/CorePartial/CommandList.cs | 22 ++++++-- 3 files changed, 96 insertions(+), 11 deletions(-) diff --git a/Core b/Core index 0beb9548..8acf0c4e 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit 0beb95484119fec3733f1ddf1d46b988d4e62c83 +Subproject commit 8acf0c4e66f960e2b70577da37639cbb3b0604e7 diff --git a/Engine/AutoGeneratedCoreBindings.cs b/Engine/AutoGeneratedCoreBindings.cs index 32ac0573..efac09a1 100644 --- a/Engine/AutoGeneratedCoreBindings.cs +++ b/Engine/AutoGeneratedCoreBindings.cs @@ -5183,6 +5183,10 @@ public static CommandList TryGetFromCache(IntPtr native) [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SetIndexBuffer(IntPtr selfPtr, IntPtr ib, int stride, int offset); + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_SetMaterialWithConstantBuffer(IntPtr selfPtr, IntPtr material, IntPtr constantBuffer); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_BeginComputePass(IntPtr selfPtr); @@ -5193,7 +5197,11 @@ public static CommandList TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetComputeBuffer(IntPtr selfPtr, IntPtr buffer, int stride, int unit); + private static extern void cbg_CommandList_SetComputeBuffer(IntPtr selfPtr, IntPtr buffer, int stride, int unit, int shaderStage); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_CommandList_SetComputePipelineStateWithConstantBuffer(IntPtr selfPtr, IntPtr computePipelineState, IntPtr constantBuffer); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] @@ -5392,6 +5400,11 @@ internal void SetIndexBuffer(Buffer ib, int stride, int offset) cbg_CommandList_SetIndexBuffer(selfPtr, ib != null ? ib.selfPtr : IntPtr.Zero, stride, offset); } + internal void SetMaterialWithConstantBuffer(Material material, Buffer constantBuffer) + { + cbg_CommandList_SetMaterialWithConstantBuffer(selfPtr, material != null ? material.selfPtr : IntPtr.Zero, constantBuffer != null ? constantBuffer.selfPtr : IntPtr.Zero); + } + public void BeginComputePass() { cbg_CommandList_BeginComputePass(selfPtr); @@ -5402,9 +5415,14 @@ public void EndComputePass() cbg_CommandList_EndComputePass(selfPtr); } - internal void SetComputeBuffer(Buffer buffer, int stride, int unit) + internal void SetComputeBuffer(Buffer buffer, int stride, int unit, ShaderStage shaderStage) + { + cbg_CommandList_SetComputeBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero, stride, unit, (int)shaderStage); + } + + internal void SetComputePipelineStateWithConstantBuffer(ComputePipelineState computePipelineState, Buffer constantBuffer) { - cbg_CommandList_SetComputeBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero, stride, unit); + cbg_CommandList_SetComputePipelineStateWithConstantBuffer(selfPtr, computePipelineState != null ? computePipelineState.selfPtr : IntPtr.Zero, constantBuffer != null ? constantBuffer.selfPtr : IntPtr.Zero); } public void Dispatch(int x, int y, int z) @@ -5518,11 +5536,19 @@ public static Graphics TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Graphics_ExecuteCommandList(IntPtr selfPtr); + private static extern void cbg_Graphics_ExecuteCommandList_(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Graphics_WaitFinish(IntPtr selfPtr); + private static extern void cbg_Graphics_ExecuteCommandList_CommandList(IntPtr selfPtr, IntPtr commandList); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_Graphics_WaitFinish_(IntPtr selfPtr); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_Graphics_WaitFinish_CommandList(IntPtr selfPtr, IntPtr commandList); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] @@ -5617,12 +5643,22 @@ public static void Terminate() public void ExecuteCommandList() { - cbg_Graphics_ExecuteCommandList(selfPtr); + cbg_Graphics_ExecuteCommandList_(selfPtr); + } + + public void ExecuteCommandList(CommandList commandList) + { + cbg_Graphics_ExecuteCommandList_CommandList(selfPtr, commandList != null ? commandList.selfPtr : IntPtr.Zero); } public void WaitFinish() { - cbg_Graphics_WaitFinish(selfPtr); + cbg_Graphics_WaitFinish_(selfPtr); + } + + public void WaitFinish(CommandList commandList) + { + cbg_Graphics_WaitFinish_CommandList(selfPtr, commandList != null ? commandList.selfPtr : IntPtr.Zero); } /// @@ -11158,6 +11194,10 @@ public static Mouse TryGetFromCache(IntPtr native) [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Mouse_GetMouseButtonState(IntPtr selfPtr, int button); + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + private static extern void cbg_Mouse_SetMouseButtonState(IntPtr selfPtr, int button, int state); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Mouse_GetPosition(IntPtr selfPtr); @@ -11284,6 +11324,11 @@ public ButtonState GetMouseButtonState(MouseButton button) return (ButtonState)ret; } + public void SetMouseButtonState(MouseButton button, ButtonState state) + { + cbg_Mouse_SetMouseButtonState(selfPtr, (int)button, (int)state); + } + /// /// のインスタンスを削除します。 /// @@ -13385,6 +13430,16 @@ public static Tool TryGetFromCache(IntPtr native) [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_PickFolder(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + [return: MarshalAs(UnmanagedType.U1)] + private static extern bool cbg_Tool_SetDragDropPayload(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string type, IntPtr data, int cond); + + [DllImport("Altseed2_Core")] + [EditorBrowsable(EditorBrowsableState.Never)] + [return: MarshalAs(UnmanagedType.U1)] + private static extern bool cbg_Tool_AcceptDragDropPayload(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string type, int dragDropFlags, IntPtr result); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowDemoWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open); @@ -14966,6 +15021,20 @@ public string PickFolder(string defaultPath) return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } + internal bool SetDragDropPayload(string type, Int8Array data, ToolCond cond) + { + if (type == null) throw new ArgumentNullException(nameof(type), "引数がnullです"); + var ret = cbg_Tool_SetDragDropPayload(selfPtr, type, data != null ? data.selfPtr : IntPtr.Zero, (int)cond); + return ret; + } + + internal bool AcceptDragDropPayload(string type, ToolDragDropFlags dragDropFlags, Int8Array result) + { + if (type == null) throw new ArgumentNullException(nameof(type), "引数がnullです"); + var ret = cbg_Tool_AcceptDragDropPayload(selfPtr, type, (int)dragDropFlags, result != null ? result.selfPtr : IntPtr.Zero); + return ret; + } + public void ShowDemoWindow(ref bool p_open) { cbg_Tool_ShowDemoWindow(selfPtr, ref p_open); diff --git a/Engine/CorePartial/CommandList.cs b/Engine/CorePartial/CommandList.cs index abd1b263..04281435 100644 --- a/Engine/CorePartial/CommandList.cs +++ b/Engine/CorePartial/CommandList.cs @@ -67,12 +67,12 @@ public void SetVertexBuffer(Buffer vertexBuffer, int offset = 0) where T : /// /// /// - /// /// - public void SetComputeBuffer(Buffer computeBuffer, int unit) where T : struct + /// + public void SetComputeBuffer(Buffer computeBuffer, int unit, ShaderStage shaderStage = ShaderStage.Compute) where T : struct { int stride = Marshal.SizeOf(); - SetComputeBuffer(computeBuffer.InternalBuffer, stride, unit); + SetComputeBuffer(computeBuffer.InternalBuffer, stride, unit, shaderStage); } public Material Material @@ -84,5 +84,21 @@ public Material Material cbg_CommandList_SetMaterial(this.selfPtr, value != null ? value.selfPtr : IntPtr.Zero); } } + + public void SetMaterialWithConstantBuffer(Material material, Buffer constantBuffer) where T : struct + { + cbg_CommandList_SetMaterialWithConstantBuffer( + this.selfPtr, + material != null ? material.selfPtr : IntPtr.Zero, + constantBuffer != null ? constantBuffer.InternalBuffer.selfPtr : IntPtr.Zero); + } + + public void SetComputePipelineStateWithConstantBuffer(ComputePipelineState computePipelineState, Buffer constantBuffer) where T : struct + { + cbg_CommandList_SetComputePipelineStateWithConstantBuffer( + this.selfPtr, + computePipelineState != null ? computePipelineState.selfPtr : IntPtr.Zero, + constantBuffer != null ? constantBuffer.InternalBuffer.selfPtr : IntPtr.Zero); + } } } From d0800e1b200f58e1ef2788ddba8098d4a68f2078 Mon Sep 17 00:00:00 2001 From: wraikny Date: Sat, 3 Jun 2023 22:25:28 +0900 Subject: [PATCH 09/49] update core --- Core | 2 +- Engine/AutoGeneratedCoreBindings.cs | 5948 +++++++++++++-------------- 2 files changed, 2777 insertions(+), 3173 deletions(-) diff --git a/Core b/Core index 8acf0c4e..913b5008 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit 8acf0c4e66f960e2b70577da37639cbb3b0604e7 +Subproject commit 913b5008076724da77d14581b5d233b439f34715 diff --git a/Engine/AutoGeneratedCoreBindings.cs b/Engine/AutoGeneratedCoreBindings.cs index 13585b2d..dd72f52d 100644 --- a/Engine/AutoGeneratedCoreBindings.cs +++ b/Engine/AutoGeneratedCoreBindings.cs @@ -27,7 +27,7 @@ public MemoryHandle(IntPtr p) this.selfPtr = p; } } - + /// /// 音のスペクトル解析に使用する窓関数 /// @@ -41,7 +41,7 @@ public enum FFTWindow : int Blackman, BlackmanHarris, } - + /// /// ログレベルを表します。 /// @@ -56,7 +56,7 @@ public enum LogLevel : int Critical = 5, Off = 6, } - + /// /// ログの範囲を表します。 /// @@ -68,7 +68,7 @@ public enum LogCategory : int Engine = 2, User = 3, } - + /// /// /// @@ -79,8 +79,12 @@ public enum BufferUsageType : int Vertex = 2, Constant = 4, Compute = 8, + MapRead = 16, + MapWrite = 32, + CopySrc = 64, + CopyDst = 128, } - + /// /// /// @@ -91,7 +95,7 @@ public enum ShaderStage : int Pixel = 1, Compute = 2, } - + /// /// リソースの種類を表します。 /// @@ -105,7 +109,7 @@ public enum ResourceType : int Sound = 4, MAX = 5, } - + /// /// テクスチャをサンプリングする方法を表します。 /// @@ -115,7 +119,7 @@ public enum TextureWrapMode : int Clamp = 0, Repeat = 1, } - + /// /// テクスチャをフィルタリングする方法を表します。 /// @@ -125,7 +129,7 @@ public enum TextureFilter : int Nearest = 0, Linear = 1, } - + /// /// /// @@ -142,7 +146,7 @@ public enum TextureFormat : int D32S8 = 13, D24S8 = 14, } - + /// /// /// @@ -155,7 +159,7 @@ public enum BlendEquation : int Min = 3, Max = 4, } - + /// /// /// @@ -173,7 +177,7 @@ public enum BlendFunction : int DstColor = 8, OneMinusDstColor = 9, } - + /// /// 描画方法を表します。 /// @@ -185,7 +189,7 @@ public enum GraphicsDevice : int Metal = 2, Vulkan = 3, } - + /// /// /// @@ -206,7 +210,7 @@ public enum CoreModules : int Default = 191, RequireFile = 226, } - + /// /// フレームレートモード /// @@ -216,7 +220,7 @@ public enum FramerateMode : int Variable = 0, Constant = 1, } - + /// /// ビルド済みシェーダの種類を表します /// @@ -227,7 +231,7 @@ public enum BuiltinShaderType : int SpriteUnlitPS = 1, FontUnlitPS = 2, } - + /// /// /// @@ -241,7 +245,7 @@ public enum VertexLayoutFormat : int R32G32_FLOAT = 4, R32_FLOAT = 5, } - + /// /// /// @@ -251,7 +255,7 @@ public enum RenderTargetCareType : int DontCare = 0, Clear = 1, } - + /// /// テキストの描画方向 /// @@ -261,7 +265,7 @@ public enum WritingDirection : int Vertical = 0, Horizontal = 1, } - + /// /// ボタンの押下状態を表します。 /// @@ -273,7 +277,7 @@ public enum ButtonState : int Release = 2, Hold = 3, } - + /// /// ジョイスティックの種類を表します。 /// @@ -289,7 +293,7 @@ public enum JoystickType : int JoyconR = 8199, ProController = 8201, } - + /// /// ジョイスティックのボタンの種類を表します。 /// @@ -312,7 +316,7 @@ public enum JoystickButton : int DPadDown = 13, DPadLeft = 14, } - + /// /// ジョイスティックの軸の種類を表します。 /// @@ -326,7 +330,7 @@ public enum JoystickAxis : int LeftTrigger = 4, RightTrigger = 5, } - + /// /// キーボードのキーの種類を表します。 /// @@ -457,7 +461,7 @@ public enum Key : int Last = 121, MAX = 122, } - + /// /// マウスのボタンの種類を表します。 /// @@ -473,7 +477,7 @@ public enum MouseButton : int SubButton4 = 6, SubButton5 = 7, } - + /// /// カーソルの状態を表します。 /// @@ -484,7 +488,7 @@ public enum CursorMode : int Hidden = 212994, Disable = 212995, } - + /// /// ツール機能を使ってフォントを読み込む際の範囲を指定します。ビット演算は行わないでください。 /// @@ -499,7 +503,7 @@ public enum ToolGlyphRange : int Korean = 5, Thai = 6, } - + /// /// ツール機能の使用方法(描画位置) /// @@ -509,7 +513,7 @@ public enum ToolUsage : int Overwrapped = 0, Main = 1, } - + /// /// ツール機能のウィンドウにおける設定を表します /// @@ -549,7 +553,7 @@ public enum ToolWindowFlags : int ChildMenu = 268435456, DockNodeHost = 536870912, } - + /// /// ツール機能においてインプットされるテキストの設定を表します /// @@ -580,7 +584,7 @@ public enum ToolInputTextFlags : int Multiline = 1048576, NoMarkEdited = 2097152, } - + /// /// ツール機能のTreeNodeに適用する設定を表します。 /// @@ -604,7 +608,7 @@ public enum ToolTreeNodeFlags : int SpanFullWidth = 4096, NavLeftJumpsBackHere = 8192, } - + /// /// /// @@ -621,7 +625,7 @@ public enum ToolPopupFlags : int AnyPopupLevel = 256, AnyPopup = 384, } - + /// /// ツール機能のSelectableに適用する設定を表します。 /// @@ -635,7 +639,7 @@ public enum ToolSelectableFlags : int Disabled = 8, AllowItemOverlap = 16, } - + /// /// ツール機能のBeginComboに適用する設定を表します。 /// @@ -651,7 +655,7 @@ public enum ToolComboFlags : int NoArrowButton = 32, NoPreview = 64, } - + /// /// ツール機能のタブバーにおける設定を表します /// @@ -668,7 +672,7 @@ public enum ToolTabBarFlags : int FittingPolicyResizeDown = 64, FittingPolicyScroll = 128, } - + /// /// /// @@ -685,7 +689,7 @@ public enum ToolTabItemFlags : int Leading = 64, Trailing = 128, } - + /// /// /// @@ -698,7 +702,7 @@ public enum ToolFocusedFlags : int RootAndChildWindows = 3, AnyWindow = 4, } - + /// /// /// @@ -716,7 +720,7 @@ public enum ToolHoveredFlags : int RectOnly = 104, AllowWhenDisabled = 128, } - + /// /// /// @@ -731,7 +735,7 @@ public enum ToolDockNodeFlags : int NoResize = 32, AutoHideTabBar = 64, } - + /// /// /// @@ -750,7 +754,7 @@ public enum ToolDragDropFlags : int AcceptPeekOnly = 3072, AcceptNoPreviewTooltip = 4096, } - + /// /// /// @@ -769,7 +773,7 @@ public enum ToolDataType : int Double = 9, COUNT = 10, } - + /// /// ツール機能で使用する方向 /// @@ -783,7 +787,7 @@ public enum ToolDir : int Down = 3, COUNT = 5, } - + /// /// /// @@ -814,7 +818,7 @@ public enum ToolKey : int Z = 21, COUNT = 22, } - + /// /// /// @@ -827,7 +831,7 @@ public enum ToolKeyModFlags : int Alt = 4, Super = 8, } - + /// /// /// @@ -852,7 +856,7 @@ public enum ToolNavInput : int TweakFast = 15, COUNT = 16, } - + /// /// /// @@ -873,7 +877,7 @@ public enum ToolConfigFlags : int IsSRGB = 1048576, IsTouchScreen = 2097152, } - + /// /// /// @@ -889,7 +893,7 @@ public enum ToolBackendFlags : int HasMouseHoveredViewport = 2048, RendererHasViewports = 4096, } - + /// /// /// @@ -948,7 +952,7 @@ public enum ToolCol : int ModalWindowDimBg = 49, COUNT = 50, } - + /// /// /// @@ -980,7 +984,7 @@ public enum ToolStyleVar : int SelectableTextAlign = 22, COUNT = 23, } - + /// /// /// @@ -992,7 +996,7 @@ public enum ToolButtonFlags : int MouseButtonRight = 2, MouseButtonMiddle = 4, } - + /// /// ツール機能における色の設定を表します /// @@ -1029,7 +1033,7 @@ public enum ToolColorEditFlags : int InputHSV = 268435456, InputMask = 402653184, } - + /// /// /// @@ -1042,7 +1046,7 @@ public enum ToolSliderFlags : int NoRoundToFormat = 64, NoInput = 128, } - + /// /// /// @@ -1054,7 +1058,7 @@ public enum ToolMouseButton : int Middle = 2, COUNT = 5, } - + /// /// /// @@ -1073,7 +1077,7 @@ public enum ToolMouseCursor : int NotAllowed = 9, COUNT = 10, } - + /// /// バイナリ演算子を使用して複数の値を結合しないでください /// @@ -1086,7 +1090,7 @@ public enum ToolCond : int FirstUseEver = 4, Appearing = 8, } - + /// /// /// @@ -1104,7 +1108,7 @@ public enum ToolDrawCornerFlags : int Bot = 12, All = 15, } - + /// /// /// @@ -1117,7 +1121,7 @@ public enum ToolDrawListFlags : int AntiAliasedFill = 4, AllowVtxOffset = 8, } - + /// /// /// @@ -1129,7 +1133,7 @@ public enum ToolFontAtlasFlags : int NoMouseCursors = 2, NoBakedLines = 4, } - + /// /// /// @@ -1148,7 +1152,7 @@ public enum ToolViewportFlags : int NoAutoMerge = 256, CanHostOtherWindows = 512, } - + /// /// 8ビット整数の配列のクラスを表します。 /// @@ -1156,16 +1160,16 @@ public enum ToolViewportFlags : int internal sealed partial class Int8Array : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Int8Array TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Int8Array cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -1179,63 +1183,63 @@ public static Int8Array TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Int8Array(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_Resize(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Int8Array_GetData(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_Assign(IntPtr selfPtr, IntPtr ptr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_CopyTo(IntPtr selfPtr, IntPtr ptr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern byte cbg_Int8Array_GetAt(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_SetAt(IntPtr selfPtr, int index, byte value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Int8Array_Create(int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Int8Array_GetCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int8Array_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Int8Array(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 格納されている要素の数を取得します。 /// @@ -1247,7 +1251,7 @@ public int Count return ret; } } - + /// /// データをクリアします。 /// @@ -1255,7 +1259,7 @@ internal void Clear() { cbg_Int8Array_Clear(selfPtr); } - + /// /// サイズを変更します。 /// @@ -1264,18 +1268,18 @@ public void Resize(int size) { cbg_Int8Array_Resize(selfPtr, size); } - + internal IntPtr GetData() { var ret = cbg_Int8Array_GetData(selfPtr); return ret; } - + public void Assign(IntPtr ptr, int size) { cbg_Int8Array_Assign(selfPtr, ptr, size); } - + /// /// データを指定したポインタにコピーします。 /// @@ -1284,7 +1288,7 @@ public void CopyTo(IntPtr ptr) { cbg_Int8Array_CopyTo(selfPtr, ptr); } - + /// /// インデックスアクセス /// @@ -1294,7 +1298,7 @@ internal byte GetAt(int index) var ret = cbg_Int8Array_GetAt(selfPtr, index); return ret; } - + /// /// インデックスアクセス /// @@ -1304,7 +1308,7 @@ internal void SetAt(int index, byte value) { cbg_Int8Array_SetAt(selfPtr, index, value); } - + /// /// インスタンスを作成します。 /// @@ -1314,15 +1318,15 @@ internal static Int8Array Create(int size) var ret = cbg_Int8Array_Create(size); return Int8Array.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Count = "S_Count"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -1332,14 +1336,14 @@ internal static Int8Array Create(int size) private Int8Array(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -1349,12 +1353,12 @@ private Int8Array(SerializationInfo info, StreamingContext context) : this(new M void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Count, Count); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -1362,7 +1366,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -1370,7 +1374,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -1379,7 +1383,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -1390,7 +1394,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -1401,12 +1405,12 @@ private void Int8Array_Unsetter_Deserialize(SerializationInfo info, out int Coun { Count = info.GetInt32(S_Count); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -1416,20 +1420,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Int8Array_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Int8Array() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -1439,7 +1443,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 32ビット整数の配列のクラスを表します。 /// @@ -1447,16 +1451,16 @@ IntPtr ICacheKeeper.Self internal sealed partial class Int32Array : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Int32Array TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Int32Array cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -1470,63 +1474,63 @@ public static Int32Array TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Int32Array(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_Resize(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Int32Array_GetData(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_Assign(IntPtr selfPtr, IntPtr ptr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_CopyTo(IntPtr selfPtr, IntPtr ptr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Int32Array_GetAt(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_SetAt(IntPtr selfPtr, int index, int value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Int32Array_Create(int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Int32Array_GetCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Int32Array_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Int32Array(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 格納されている要素の数を取得します。 /// @@ -1538,7 +1542,7 @@ public int Count return ret; } } - + /// /// データをクリアします。 /// @@ -1546,7 +1550,7 @@ internal void Clear() { cbg_Int32Array_Clear(selfPtr); } - + /// /// サイズを変更します。 /// @@ -1555,18 +1559,18 @@ public void Resize(int size) { cbg_Int32Array_Resize(selfPtr, size); } - + internal IntPtr GetData() { var ret = cbg_Int32Array_GetData(selfPtr); return ret; } - + public void Assign(IntPtr ptr, int size) { cbg_Int32Array_Assign(selfPtr, ptr, size); } - + /// /// データを指定したポインタにコピーします。 /// @@ -1575,7 +1579,7 @@ public void CopyTo(IntPtr ptr) { cbg_Int32Array_CopyTo(selfPtr, ptr); } - + /// /// インデックスアクセス /// @@ -1585,7 +1589,7 @@ internal int GetAt(int index) var ret = cbg_Int32Array_GetAt(selfPtr, index); return ret; } - + /// /// インデックスアクセス /// @@ -1595,7 +1599,7 @@ internal void SetAt(int index, int value) { cbg_Int32Array_SetAt(selfPtr, index, value); } - + /// /// インスタンスを作成します。 /// @@ -1605,15 +1609,15 @@ internal static Int32Array Create(int size) var ret = cbg_Int32Array_Create(size); return Int32Array.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Count = "S_Count"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -1623,14 +1627,14 @@ internal static Int32Array Create(int size) private Int32Array(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -1640,12 +1644,12 @@ private Int32Array(SerializationInfo info, StreamingContext context) : this(new void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Count, Count); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -1653,7 +1657,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -1661,7 +1665,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -1670,7 +1674,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -1681,7 +1685,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -1692,12 +1696,12 @@ private void Int32Array_Unsetter_Deserialize(SerializationInfo info, out int Cou { Count = info.GetInt32(S_Count); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -1707,20 +1711,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Int32Array_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Int32Array() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -1730,7 +1734,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 頂点データの配列のクラスを表します。 /// @@ -1738,16 +1742,16 @@ IntPtr ICacheKeeper.Self internal sealed partial class VertexArray : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static VertexArray TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { VertexArray cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -1761,63 +1765,63 @@ public static VertexArray TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new VertexArray(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_Resize(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_VertexArray_GetData(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_Assign(IntPtr selfPtr, IntPtr ptr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_CopyTo(IntPtr selfPtr, IntPtr ptr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vertex cbg_VertexArray_GetAt(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_SetAt(IntPtr selfPtr, int index, Vertex value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_VertexArray_Create(int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_VertexArray_GetCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_VertexArray_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal VertexArray(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 格納されている要素の数を取得します。 /// @@ -1829,7 +1833,7 @@ public int Count return ret; } } - + /// /// データをクリアします。 /// @@ -1837,7 +1841,7 @@ internal void Clear() { cbg_VertexArray_Clear(selfPtr); } - + /// /// サイズを変更します。 /// @@ -1846,18 +1850,18 @@ public void Resize(int size) { cbg_VertexArray_Resize(selfPtr, size); } - + internal IntPtr GetData() { var ret = cbg_VertexArray_GetData(selfPtr); return ret; } - + public void Assign(IntPtr ptr, int size) { cbg_VertexArray_Assign(selfPtr, ptr, size); } - + /// /// データを指定したポインタにコピーします。 /// @@ -1866,7 +1870,7 @@ public void CopyTo(IntPtr ptr) { cbg_VertexArray_CopyTo(selfPtr, ptr); } - + /// /// インデックスアクセス /// @@ -1876,7 +1880,7 @@ internal Vertex GetAt(int index) var ret = cbg_VertexArray_GetAt(selfPtr, index); return ret; } - + /// /// インデックスアクセス /// @@ -1886,7 +1890,7 @@ internal void SetAt(int index, Vertex value) { cbg_VertexArray_SetAt(selfPtr, index, value); } - + /// /// インスタンスを作成します。 /// @@ -1896,15 +1900,15 @@ internal static VertexArray Create(int size) var ret = cbg_VertexArray_Create(size); return VertexArray.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Count = "S_Count"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -1914,14 +1918,14 @@ internal static VertexArray Create(int size) private VertexArray(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -1931,12 +1935,12 @@ private VertexArray(SerializationInfo info, StreamingContext context) : this(new void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Count, Count); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -1944,7 +1948,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -1952,7 +1956,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -1961,7 +1965,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -1972,7 +1976,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -1983,12 +1987,12 @@ private void VertexArray_Unsetter_Deserialize(SerializationInfo info, out int Co { Count = info.GetInt32(S_Count); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -1998,20 +2002,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_VertexArray_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~VertexArray() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -2021,7 +2025,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 浮動小数点数の配列のクラスを表します。 /// @@ -2029,16 +2033,16 @@ IntPtr ICacheKeeper.Self internal sealed partial class FloatArray : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static FloatArray TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { FloatArray cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -2052,63 +2056,63 @@ public static FloatArray TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new FloatArray(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_Resize(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_FloatArray_GetData(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_Assign(IntPtr selfPtr, IntPtr ptr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_CopyTo(IntPtr selfPtr, IntPtr ptr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_FloatArray_GetAt(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_SetAt(IntPtr selfPtr, int index, float value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_FloatArray_Create(int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_FloatArray_GetCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_FloatArray_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal FloatArray(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 格納されている要素の数を取得します。 /// @@ -2120,7 +2124,7 @@ public int Count return ret; } } - + /// /// データをクリアします。 /// @@ -2128,7 +2132,7 @@ internal void Clear() { cbg_FloatArray_Clear(selfPtr); } - + /// /// サイズを変更します。 /// @@ -2137,18 +2141,18 @@ public void Resize(int size) { cbg_FloatArray_Resize(selfPtr, size); } - + internal IntPtr GetData() { var ret = cbg_FloatArray_GetData(selfPtr); return ret; } - + public void Assign(IntPtr ptr, int size) { cbg_FloatArray_Assign(selfPtr, ptr, size); } - + /// /// データを指定したポインタにコピーします。 /// @@ -2157,7 +2161,7 @@ public void CopyTo(IntPtr ptr) { cbg_FloatArray_CopyTo(selfPtr, ptr); } - + /// /// インデックスアクセス /// @@ -2167,7 +2171,7 @@ internal float GetAt(int index) var ret = cbg_FloatArray_GetAt(selfPtr, index); return ret; } - + /// /// インデックスアクセス /// @@ -2177,7 +2181,7 @@ internal void SetAt(int index, float value) { cbg_FloatArray_SetAt(selfPtr, index, value); } - + /// /// インスタンスを作成します。 /// @@ -2187,15 +2191,15 @@ internal static FloatArray Create(int size) var ret = cbg_FloatArray_Create(size); return FloatArray.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Count = "S_Count"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -2205,14 +2209,14 @@ internal static FloatArray Create(int size) private FloatArray(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -2222,12 +2226,12 @@ private FloatArray(SerializationInfo info, StreamingContext context) : this(new void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Count, Count); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -2235,7 +2239,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -2243,7 +2247,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -2252,7 +2256,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -2263,7 +2267,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -2274,12 +2278,12 @@ private void FloatArray_Unsetter_Deserialize(SerializationInfo info, out int Cou { Count = info.GetInt32(S_Count); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -2289,20 +2293,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_FloatArray_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~FloatArray() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -2312,7 +2316,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 2次元ベクトルの配列のクラスを表します。 /// @@ -2320,16 +2324,16 @@ IntPtr ICacheKeeper.Self internal sealed partial class Vector2FArray : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Vector2FArray TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Vector2FArray cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -2343,63 +2347,63 @@ public static Vector2FArray TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Vector2FArray(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_Resize(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Vector2FArray_GetData(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_Assign(IntPtr selfPtr, IntPtr ptr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_CopyTo(IntPtr selfPtr, IntPtr ptr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Vector2FArray_GetAt(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_SetAt(IntPtr selfPtr, int index, Vector2F value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Vector2FArray_Create(int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Vector2FArray_GetCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Vector2FArray_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Vector2FArray(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 格納されている要素の数を取得します。 /// @@ -2411,7 +2415,7 @@ public int Count return ret; } } - + /// /// データをクリアします。 /// @@ -2419,7 +2423,7 @@ internal void Clear() { cbg_Vector2FArray_Clear(selfPtr); } - + /// /// サイズを変更します。 /// @@ -2428,18 +2432,18 @@ public void Resize(int size) { cbg_Vector2FArray_Resize(selfPtr, size); } - + internal IntPtr GetData() { var ret = cbg_Vector2FArray_GetData(selfPtr); return ret; } - + public void Assign(IntPtr ptr, int size) { cbg_Vector2FArray_Assign(selfPtr, ptr, size); } - + /// /// データを指定したポインタにコピーします。 /// @@ -2448,7 +2452,7 @@ public void CopyTo(IntPtr ptr) { cbg_Vector2FArray_CopyTo(selfPtr, ptr); } - + /// /// インデックスアクセス /// @@ -2458,7 +2462,7 @@ internal Vector2F GetAt(int index) var ret = cbg_Vector2FArray_GetAt(selfPtr, index); return ret; } - + /// /// インデックスアクセス /// @@ -2468,7 +2472,7 @@ internal void SetAt(int index, Vector2F value) { cbg_Vector2FArray_SetAt(selfPtr, index, value); } - + /// /// インスタンスを作成します。 /// @@ -2478,15 +2482,15 @@ internal static Vector2FArray Create(int size) var ret = cbg_Vector2FArray_Create(size); return Vector2FArray.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Count = "S_Count"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -2496,14 +2500,14 @@ internal static Vector2FArray Create(int size) private Vector2FArray(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -2513,12 +2517,12 @@ private Vector2FArray(SerializationInfo info, StreamingContext context) : this(n void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Count, Count); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -2526,7 +2530,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -2534,7 +2538,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -2543,7 +2547,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -2554,7 +2558,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -2565,12 +2569,12 @@ private void Vector2FArray_Unsetter_Deserialize(SerializationInfo info, out int { Count = info.GetInt32(S_Count); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -2580,20 +2584,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Vector2FArray_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Vector2FArray() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -2603,23 +2607,23 @@ IntPtr ICacheKeeper.Self } } } - + /// /// ログを出力するクラス /// public sealed partial class Log { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Log TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Log cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -2633,62 +2637,62 @@ public static Log TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Log(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Log_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Write(IntPtr selfPtr, int category, int level, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Trace(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Debug(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Info(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Warn(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Error(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Critical(IntPtr selfPtr, int category, [MarshalAs(UnmanagedType.LPWStr)] string message); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_SetLevel(IntPtr selfPtr, int category, int level); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Log_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Log(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// インスタンスを取得します。 /// @@ -2697,7 +2701,7 @@ internal static Log GetInstance() var ret = cbg_Log_GetInstance(); return Log.TryGetFromCache(ret); } - + /// /// ログを出力します。 /// @@ -2705,7 +2709,7 @@ public void Write(LogCategory category, LogLevel level, string message) { cbg_Log_Write(selfPtr, (int)category, (int)level, message); } - + /// /// でログを出力します。 /// @@ -2713,7 +2717,7 @@ public void Trace(LogCategory category, string message) { cbg_Log_Trace(selfPtr, (int)category, message); } - + /// /// でログを出力します。 /// @@ -2721,7 +2725,7 @@ public void Debug(LogCategory category, string message) { cbg_Log_Debug(selfPtr, (int)category, message); } - + /// /// でログを出力します。 /// @@ -2729,7 +2733,7 @@ public void Info(LogCategory category, string message) { cbg_Log_Info(selfPtr, (int)category, message); } - + /// /// でログを出力します。 /// @@ -2737,7 +2741,7 @@ public void Warn(LogCategory category, string message) { cbg_Log_Warn(selfPtr, (int)category, message); } - + /// /// でログを出力します。 /// @@ -2745,7 +2749,7 @@ public void Error(LogCategory category, string message) { cbg_Log_Error(selfPtr, (int)category, message); } - + /// /// でログを出力します。 /// @@ -2753,7 +2757,7 @@ public void Critical(LogCategory category, string message) { cbg_Log_Critical(selfPtr, (int)category, message); } - + /// /// ログレベルを設定します。 /// @@ -2761,13 +2765,13 @@ public void SetLevel(LogCategory category, LogLevel level) { cbg_Log_SetLevel(selfPtr, (int)category, (int)level); } - + /// /// のインスタンスを削除します。 /// ~Log() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -2777,23 +2781,23 @@ public void SetLevel(LogCategory category, LogLevel level) } } } - + /// /// C++のCoreとの仲介を担うクラス /// internal sealed partial class Core { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Core TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Core cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -2807,79 +2811,79 @@ public static Core TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Core(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Core_PrintAllBaseObjectName(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Core_Initialize([MarshalAs(UnmanagedType.LPWStr)] string title, int width, int height, IntPtr config); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Core_Terminate(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Core_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Core_DoEvent(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Core_GetBaseObjectCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Core_GetDeltaSecond(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Core_GetCurrentFPS(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Core_GetTargetFPS(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Core_SetTargetFPS(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Core_GetFramerateMode(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Core_SetFramerateMode(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Core_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Core(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + internal int BaseObjectCount { get @@ -2888,7 +2892,7 @@ internal int BaseObjectCount return ret; } } - + /// /// 前のフレームからの経過時間(秒)を取得します。 /// @@ -2900,7 +2904,7 @@ internal float DeltaSecond return ret; } } - + /// /// 現在のFPSを取得します。 /// @@ -2912,7 +2916,7 @@ internal float CurrentFPS return ret; } } - + /// /// 目標のFPSを取得または設定します。 /// @@ -2934,7 +2938,7 @@ internal int TargetFPS } } private int? _TargetFPS; - + /// /// フレームレートモードを取得または設定します。デフォルトでは可変フレームレートです。 /// @@ -2956,7 +2960,7 @@ internal FramerateMode FramerateMode } } private FramerateMode? _FramerateMode; - + /// /// 全ての内部オブジェクトの名前を出力します。 /// @@ -2964,7 +2968,7 @@ internal void PrintAllBaseObjectName() { cbg_Core_PrintAllBaseObjectName(selfPtr); } - + /// /// 初期化処理を行います。 /// @@ -2977,7 +2981,7 @@ internal static bool Initialize(string title, int width, int height, Configurati var ret = cbg_Core_Initialize(title, width, height, config != null ? config.selfPtr : IntPtr.Zero); return ret; } - + /// /// 終了処理を行います。 /// @@ -2985,7 +2989,7 @@ internal static void Terminate() { cbg_Core_Terminate(); } - + /// /// インスタンスを取得します。 /// @@ -2994,7 +2998,7 @@ internal static Core GetInstance() var ret = cbg_Core_GetInstance(); return Core.TryGetFromCache(ret); } - + /// /// イベントを実行します。 /// @@ -3003,13 +3007,13 @@ internal bool DoEvent() var ret = cbg_Core_DoEvent(selfPtr); return ret; } - + /// /// のインスタンスを削除します。 /// ~Core() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -3019,23 +3023,23 @@ internal bool DoEvent() } } } - + /// /// /// internal sealed partial class Window { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Window TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Window cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -3049,51 +3053,51 @@ public static Window TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Window(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Window_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Window_DoEvent(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Window_GetTitle(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Window_SetTitle(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_Window_GetSize(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Window_SetSize(IntPtr selfPtr, Vector2I value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Window_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Window(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// ウィンドウに表示するタイトルを取得または設定します /// @@ -3116,7 +3120,7 @@ internal string Title } } private string _Title; - + /// /// ウィンドウサイズを取得します /// @@ -3138,7 +3142,7 @@ internal Vector2I Size } } private Vector2I? _Size; - + /// /// インスタンスを取得します。 /// @@ -3147,19 +3151,19 @@ internal static Window GetInstance() var ret = cbg_Window_GetInstance(); return Window.TryGetFromCache(ret); } - + public bool DoEvent() { var ret = cbg_Window_DoEvent(selfPtr); return ret; } - + /// /// のインスタンスを削除します。 /// ~Window() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -3169,27 +3173,27 @@ public bool DoEvent() } } } - + /// /// /// internal partial class Buffer { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] - public static Buffer TryGetFromCache(IntPtr native) + public static Buffer TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Buffer cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); - if(cacheRet != null) + if (cacheRet != null) { cbg_Buffer_Release(native); return cacheRet; @@ -3199,52 +3203,48 @@ public static Buffer TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Buffer(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Buffer_Create(int usage, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Buffer_Lock(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Buffer_Unlock(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_Buffer_Read(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Buffer_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Buffer_GetBufferUsage(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Buffer_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Buffer(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public int Size { get @@ -3253,7 +3253,7 @@ public int Size return ret; } } - + public BufferUsageType BufferUsage { get @@ -3262,36 +3262,30 @@ public BufferUsageType BufferUsage return (BufferUsageType)ret; } } - + public static Buffer Create(BufferUsageType usage, int size) { var ret = cbg_Buffer_Create((int)usage, size); return Buffer.TryGetFromCache(ret); } - + public IntPtr Lock() { var ret = cbg_Buffer_Lock(selfPtr); return ret; } - + public void Unlock() { cbg_Buffer_Unlock(selfPtr); } - - public IntPtr Read() - { - var ret = cbg_Buffer_Read(selfPtr); - return ret; - } - + /// /// のインスタンスを削除します。 /// ~Buffer() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -3301,29 +3295,29 @@ public IntPtr Read() } } } - + /// - /// + /// シェーダのコンパイル結果を表すクラス /// - internal partial class Buffer + internal sealed partial class ShaderCompileResult { #region unmanaged [EditorBrowsable(EditorBrowsableState.Never)] - private static Dictionary> cacheRepo = new Dictionary>(); + private static Dictionary> cacheRepo = new Dictionary>(); [EditorBrowsable(EditorBrowsableState.Never)] - public static Buffer TryGetFromCache(IntPtr native) + public static ShaderCompileResult TryGetFromCache(IntPtr native) { if (native == IntPtr.Zero) return null; if (cacheRepo.ContainsKey(native)) { - Buffer cacheRet; + ShaderCompileResult cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); if (cacheRet != null) { - cbg_Buffer_Release(native); + cbg_ShaderCompileResult_Release(native); return cacheRet; } else @@ -3332,8 +3326,8 @@ public static Buffer TryGetFromCache(IntPtr native) } } - var newObject = new Buffer(new MemoryHandle(native)); - cacheRepo[native] = new WeakReference(newObject); + var newObject = new ShaderCompileResult(new MemoryHandle(native)); + cacheRepo[native] = new WeakReference(newObject); return newObject; } @@ -3341,188 +3335,66 @@ public static Buffer TryGetFromCache(IntPtr native) internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_Buffer_Create(int usage, int size); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_Buffer_Lock(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Buffer_Unlock(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern int cbg_Buffer_GetSize(IntPtr selfPtr); + private static extern IntPtr cbg_ShaderCompileResult_GetValue(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern int cbg_Buffer_GetBufferUsage(IntPtr selfPtr); + private static extern IntPtr cbg_ShaderCompileResult_GetMessage(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Buffer_Release(IntPtr selfPtr); + private static extern void cbg_ShaderCompileResult_Release(IntPtr selfPtr); #endregion [EditorBrowsable(EditorBrowsableState.Never)] - internal Buffer(MemoryHandle handle) + internal ShaderCompileResult(MemoryHandle handle) { selfPtr = handle.selfPtr; } - public int Size + /// + /// コンパイルに失敗した場合はnull + /// + internal Shader Value { get { - var ret = cbg_Buffer_GetSize(selfPtr); - return ret; + var ret = cbg_ShaderCompileResult_GetValue(selfPtr); + return Shader.TryGetFromCache(ret); } } - public BufferUsageType BufferUsage + /// + /// コンパイル結果のメッセージ + /// + internal string Message { get { - var ret = cbg_Buffer_GetBufferUsage(selfPtr); - return (BufferUsageType)ret; + var ret = cbg_ShaderCompileResult_GetMessage(selfPtr); + return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - public static Buffer Create(BufferUsageType usage, int size) + /// + /// のインスタンスを削除します。 + /// + ~ShaderCompileResult() { - var ret = cbg_Buffer_Create((int)usage, size); - return Buffer.TryGetFromCache(ret); + lock (this) + { + if (selfPtr != IntPtr.Zero) + { + cbg_ShaderCompileResult_Release(selfPtr); + selfPtr = IntPtr.Zero; + } + } } + } - public IntPtr Lock() - { - var ret = cbg_Buffer_Lock(selfPtr); - return ret; - } - - public void Unlock() - { - cbg_Buffer_Unlock(selfPtr); - } - - /// - /// のインスタンスを削除します。 - /// - ~Buffer() - { - lock (this) - { - if (selfPtr != IntPtr.Zero) - { - cbg_Buffer_Release(selfPtr); - selfPtr = IntPtr.Zero; - } - } - } - } - - /// - /// シェーダのコンパイル結果を表すクラス - /// - internal sealed partial class ShaderCompileResult - { - #region unmanaged - - [EditorBrowsable(EditorBrowsableState.Never)] - private static Dictionary> cacheRepo = new Dictionary>(); - - [EditorBrowsable(EditorBrowsableState.Never)] - public static ShaderCompileResult TryGetFromCache(IntPtr native) - { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) - { - ShaderCompileResult cacheRet; - cacheRepo[native].TryGetTarget(out cacheRet); - if (cacheRet != null) - { - cbg_ShaderCompileResult_Release(native); - return cacheRet; - } - else - { - cacheRepo.Remove(native); - } - } - - var newObject = new ShaderCompileResult(new MemoryHandle(native)); - cacheRepo[native] = new WeakReference(newObject); - return newObject; - } - - [EditorBrowsable(EditorBrowsableState.Never)] - internal IntPtr selfPtr = IntPtr.Zero; - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_ShaderCompileResult_GetValue(IntPtr selfPtr); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_ShaderCompileResult_GetMessage(IntPtr selfPtr); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_ShaderCompileResult_Release(IntPtr selfPtr); - - #endregion - - [EditorBrowsable(EditorBrowsableState.Never)] - internal ShaderCompileResult(MemoryHandle handle) - { - selfPtr = handle.selfPtr; - } - - /// - /// コンパイルに失敗した場合はnull - /// - internal Shader Value - { - get - { - var ret = cbg_ShaderCompileResult_GetValue(selfPtr); - return Shader.TryGetFromCache(ret); - } - } - - /// - /// コンパイル結果のメッセージ - /// - internal string Message - { - get - { - var ret = cbg_ShaderCompileResult_GetMessage(selfPtr); - return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); - } - } - - /// - /// のインスタンスを削除します。 - /// - ~ShaderCompileResult() - { - lock (this) - { - if (selfPtr != IntPtr.Zero) - { - cbg_ShaderCompileResult_Release(selfPtr); - selfPtr = IntPtr.Zero; - } - } - } - } - /// /// シェーダ /// @@ -3530,16 +3402,16 @@ internal string Message public sealed partial class Shader : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Shader TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Shader cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -3553,32 +3425,27 @@ public static Shader TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Shader(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Shader_Compile([MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.LPWStr)] string code, int shaderStage); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Shader_CompileFromFile([MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.LPWStr)] string path, int shaderStage); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Shader_GetUniformSize(IntPtr selfPtr); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern Vector3I cbg_Shader_GetNumThreads(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector3I cbg_Shader_GetNumThreads(IntPtr selfPtr); @@ -3587,30 +3454,30 @@ public static Shader TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Shader_GetCode(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Shader_GetName(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Shader_GetStageType(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Shader_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Shader(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public int UniformSize { get @@ -3619,7 +3486,7 @@ public int UniformSize return ret; } } - + public Vector3I NumThreads { get @@ -3628,7 +3495,7 @@ public Vector3I NumThreads return ret; } } - + /// /// インスタンス生成に使用したコードを取得します。 /// @@ -3640,7 +3507,7 @@ public string Code return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 名前を取得します。 /// @@ -3652,7 +3519,7 @@ public string Name return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// シェーダの種類を取得します。 /// @@ -3664,7 +3531,7 @@ public ShaderStage StageType return (ShaderStage)ret; } } - + /// /// コードをコンパイルしてシェーダを生成します。 /// @@ -3678,7 +3545,7 @@ internal static ShaderCompileResult Compile(string name, string code, ShaderStag var ret = cbg_Shader_Compile(name, code, (int)shaderStage); return ShaderCompileResult.TryGetFromCache(ret); } - + /// /// ファイルからコードをコンパイルしてシェーダを生成します。 /// @@ -3692,10 +3559,10 @@ internal static ShaderCompileResult CompileFromFile(string name, string path, Sh var ret = cbg_Shader_CompileFromFile(name, path, (int)shaderStage); return ShaderCompileResult.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Code = "S_Code"; @@ -3704,7 +3571,7 @@ internal static ShaderCompileResult CompileFromFile(string name, string path, Sh [EditorBrowsable(EditorBrowsableState.Never)] private const string S_StageType = "S_StageType"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -3714,14 +3581,14 @@ internal static ShaderCompileResult CompileFromFile(string name, string path, Sh private Shader(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -3731,14 +3598,14 @@ private Shader(SerializationInfo info, StreamingContext context) : this(new Memo void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Code, Code); info.AddValue(S_Name, Name); info.AddValue(S_StageType, StageType); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -3746,7 +3613,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -3754,7 +3621,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -3763,7 +3630,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -3774,7 +3641,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -3789,12 +3656,12 @@ private void Shader_Unsetter_Deserialize(SerializationInfo info, out string Code Name = info.GetString(S_Name); StageType = info.GetValue(S_StageType); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -3804,20 +3671,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Shader_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Shader() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -3827,23 +3694,23 @@ IntPtr ICacheKeeper.Self } } } - + /// /// リソースのクラスを表します。 /// internal sealed partial class Resources { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Resources TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Resources cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -3857,42 +3724,42 @@ public static Resources TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Resources(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Resources_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Resources_GetResourcesCount(IntPtr selfPtr, int type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Resources_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Resources_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Resources_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Resources(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// インスタンスを取得します。 /// @@ -3901,7 +3768,7 @@ internal static Resources GetInstance() var ret = cbg_Resources_GetInstance(); return Resources.TryGetFromCache(ret); } - + /// /// 指定した種類のリソースの個数を返します。 /// @@ -3911,7 +3778,7 @@ internal int GetResourcesCount(ResourceType type) var ret = cbg_Resources_GetResourcesCount(selfPtr, (int)type); return ret; } - + /// /// 登録されたリソースをすべて削除します。 /// @@ -3919,7 +3786,7 @@ internal void Clear() { cbg_Resources_Clear(selfPtr); } - + /// /// リソースの再読み込みを行います。 /// @@ -3927,13 +3794,13 @@ internal void Reload() { cbg_Resources_Reload(selfPtr); } - + /// /// のインスタンスを削除します。 /// ~Resources() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -3943,7 +3810,7 @@ internal void Reload() } } } - + /// /// テクスチャのベースクラス /// @@ -3951,16 +3818,16 @@ internal void Reload() public partial class TextureBase : ISerializable, ICacheKeeper, IDeserializationCallback { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static TextureBase TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { TextureBase cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -3974,57 +3841,57 @@ public static TextureBase TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new TextureBase(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_TextureBase_Save(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_TextureBase_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_TextureBase_GetWrapMode(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_TextureBase_SetWrapMode(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_TextureBase_GetFilterType(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_TextureBase_SetFilterType(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_TextureBase_GetFormat(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_TextureBase_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal TextureBase(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// テクスチャの大きさ(ピクセル)を取得します。 /// @@ -4036,7 +3903,7 @@ public Vector2I Size return ret; } } - + /// /// テクスチャをサンプリングする方法を取得または設定します。 /// @@ -4058,7 +3925,7 @@ public TextureWrapMode WrapMode } } private TextureWrapMode? _WrapMode; - + /// /// テクスチャをフィルタリングする方法を取得または設定します。 /// @@ -4080,7 +3947,7 @@ public TextureFilter FilterType } } private TextureFilter? _FilterType; - + /// /// テクスチャのフォーマットを取得します。 /// @@ -4092,7 +3959,7 @@ public TextureFormat Format return (TextureFormat)ret; } } - + /// /// png画像として保存します。 /// @@ -4104,10 +3971,10 @@ public bool Save(string path) var ret = cbg_TextureBase_Save(selfPtr, path); return ret; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Size = "S_Size"; @@ -4118,10 +3985,10 @@ public bool Save(string path) [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Format = "S_Format"; #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] private SerializationInfo seInfo; - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -4131,10 +3998,10 @@ public bool Save(string path) protected TextureBase(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { seInfo = info; - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -4144,17 +4011,17 @@ protected TextureBase(SerializationInfo info, StreamingContext context) : this(n protected virtual void GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Size, Size); info.AddValue(S_WrapMode, WrapMode); info.AddValue(S_FilterType, FilterType); info.AddValue(S_Format, Format); - + OnGetObjectData(info, context); } [EditorBrowsable(EditorBrowsableState.Never)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) => GetObjectData(info, context); - + /// /// 内で実行されます。 /// @@ -4162,7 +4029,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -4170,7 +4037,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出されます。 /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -4179,7 +4046,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -4190,7 +4057,7 @@ protected private virtual IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -4203,12 +4070,12 @@ protected private void TextureBase_Unsetter_Deserialize(SerializationInfo info, Size = info.GetValue(S_Size); Format = info.GetValue(S_Format); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -4218,14 +4085,14 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_TextureBase_Release(native); - + #endregion - + #endregion - + /// /// デシリアライズ時に実行 /// @@ -4234,17 +4101,17 @@ IntPtr ICacheKeeper.Self protected virtual void OnDeserialization(object sender) { if (seInfo == null) return; - + var ptr = Call_GetPtr(seInfo); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + WrapMode = seInfo.GetValue(S_WrapMode); FilterType = seInfo.GetValue(S_FilterType); - + OnDeserialize_Method(sender); - + seInfo = null; } [EditorBrowsable(EditorBrowsableState.Never)] @@ -4255,13 +4122,13 @@ protected virtual void OnDeserialization(object sender) /// 現在はサポートされていない 常にnullを返す [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Method(object sender); - + /// /// のインスタンスを削除します。 /// ~TextureBase() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -4271,23 +4138,23 @@ protected virtual void OnDeserialization(object sender) } } } - + /// /// /// public partial class MaterialPropertyBlock { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static MaterialPropertyBlock TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { MaterialPropertyBlock cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -4301,95 +4168,95 @@ public static MaterialPropertyBlock TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new MaterialPropertyBlock(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector4F cbg_MaterialPropertyBlock_GetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlock_SetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Vector4F value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_MaterialPropertyBlock_GetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlock_SetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Matrix44F value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_MaterialPropertyBlock_GetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlock_SetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, IntPtr value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlock_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal MaterialPropertyBlock(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public Vector4F GetVector4F(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlock_GetVector4F(selfPtr, key); return ret; } - + public void SetVector4F(string key, Vector4F value) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); cbg_MaterialPropertyBlock_SetVector4F(selfPtr, key, value); } - + public Matrix44F GetMatrix44F(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlock_GetMatrix44F(selfPtr, key); return ret; } - + public void SetMatrix44F(string key, Matrix44F value) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); cbg_MaterialPropertyBlock_SetMatrix44F(selfPtr, key, value); } - + public TextureBase GetTexture(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlock_GetTexture(selfPtr, key); return TextureBase.TryGetFromCache(ret); } - + public void SetTexture(string key, TextureBase value) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); cbg_MaterialPropertyBlock_SetTexture(selfPtr, key, value != null ? value.selfPtr : IntPtr.Zero); } - + /// /// のインスタンスを削除します。 /// ~MaterialPropertyBlock() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -4399,23 +4266,23 @@ public void SetTexture(string key, TextureBase value) } } } - + /// /// /// public partial class MaterialPropertyBlockCollection { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static MaterialPropertyBlockCollection TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { MaterialPropertyBlockCollection cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -4429,83 +4296,83 @@ public static MaterialPropertyBlockCollection TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new MaterialPropertyBlockCollection(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlockCollection_Add(IntPtr selfPtr, IntPtr block); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlockCollection_Clear(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector4F cbg_MaterialPropertyBlockCollection_GetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_MaterialPropertyBlockCollection_GetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_MaterialPropertyBlockCollection_GetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MaterialPropertyBlockCollection_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal MaterialPropertyBlockCollection(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public void Add(MaterialPropertyBlock block) { cbg_MaterialPropertyBlockCollection_Add(selfPtr, block != null ? block.selfPtr : IntPtr.Zero); } - + public void Clear() { cbg_MaterialPropertyBlockCollection_Clear(selfPtr); } - + public Vector4F GetVector4F(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlockCollection_GetVector4F(selfPtr, key); return ret; } - + public Matrix44F GetMatrix44F(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlockCollection_GetMatrix44F(selfPtr, key); return ret; } - + public TextureBase GetTexture(string key) { if (key == null) throw new ArgumentNullException(nameof(key), "引数がnullです"); var ret = cbg_MaterialPropertyBlockCollection_GetTexture(selfPtr, key); return TextureBase.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~MaterialPropertyBlockCollection() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -4515,7 +4382,7 @@ public TextureBase GetTexture(string key) } } } - + /// /// マテリアル /// @@ -4523,16 +4390,16 @@ public TextureBase GetTexture(string key) public sealed partial class Material : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Material TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Material cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -4546,76 +4413,76 @@ public static Material TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Material(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Material_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector4F cbg_Material_GetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_SetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Vector4F value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_Material_GetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_SetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Matrix44F value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Material_GetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_SetTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, IntPtr value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Material_GetShader(IntPtr selfPtr, int shaderStage); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_SetShader(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern AlphaBlend cbg_Material_GetAlphaBlend(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_SetAlphaBlend(IntPtr selfPtr, AlphaBlend value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Material_GetPropertyBlock(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Material_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Material(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public Shader Shader { set @@ -4623,7 +4490,7 @@ public Shader Shader cbg_Material_SetShader(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); } } - + /// /// 描画時のアルファブレンドを取得または設定します。 /// @@ -4645,7 +4512,7 @@ public AlphaBlend AlphaBlend } } private AlphaBlend? _AlphaBlend; - + public MaterialPropertyBlock PropertyBlock { get @@ -4654,7 +4521,7 @@ public MaterialPropertyBlock PropertyBlock return MaterialPropertyBlock.TryGetFromCache(ret); } } - + /// /// マテリアルを生成する /// @@ -4663,15 +4530,15 @@ public static Material Create() var ret = cbg_Material_Create(); return Material.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_AlphaBlend = "S_AlphaBlend"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -4681,15 +4548,15 @@ public static Material Create() private Material(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + AlphaBlend = info.GetValue(S_AlphaBlend); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -4699,12 +4566,12 @@ private Material(SerializationInfo info, StreamingContext context) : this(new Me void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_AlphaBlend, AlphaBlend); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -4712,7 +4579,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -4720,7 +4587,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -4729,7 +4596,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -4740,12 +4607,12 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -4755,20 +4622,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Material_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Material() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -4778,7 +4645,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// テクスチャのクラス /// @@ -4786,16 +4653,16 @@ IntPtr ICacheKeeper.Self public sealed partial class Texture2D : TextureBase, ISerializable, ICacheKeeper, IDeserializationCallback { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new Texture2D TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Texture2D cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -4809,42 +4676,42 @@ public sealed partial class Texture2D : TextureBase, ISerializable, ICacheKeeper cacheRepo.Remove(native); } } - + var newObject = new Texture2D(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Texture2D_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Texture2D_Load([MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Texture2D_Create(Vector2I size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Texture2D_GetPath(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Texture2D_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Texture2D(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 読み込んだファイルのパスを取得します。 /// @@ -4856,7 +4723,7 @@ internal string Path return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 再読み込みを行います。 /// @@ -4865,7 +4732,7 @@ public bool Reload() var ret = cbg_Texture2D_Reload(selfPtr); return ret; } - + /// /// 指定したファイルからテクスチャを読み込みます。 /// @@ -4877,24 +4744,24 @@ public static Texture2D Load(string path) var ret = cbg_Texture2D_Load(path); return Texture2D.TryGetFromCache(ret); } - + public static Texture2D Create(Vector2I size) { var ret = cbg_Texture2D_Create(size); return Texture2D.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Path = "S_Path"; #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] private SerializationInfo seInfo; - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -4904,10 +4771,10 @@ public static Texture2D Create(Vector2I size) private Texture2D(SerializationInfo info, StreamingContext context) : base(info, context) { seInfo = info; - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -4917,12 +4784,12 @@ private Texture2D(SerializationInfo info, StreamingContext context) : base(info, protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_Path, Path); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -4930,7 +4797,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -4938,7 +4805,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出されます。 /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -4947,7 +4814,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -4958,7 +4825,7 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -4969,12 +4836,12 @@ private void Texture2D_Unsetter_Deserialize(SerializationInfo info, out string P { Path = info.GetString(S_Path) ?? throw new SerializationException("デシリアライズに失敗しました"); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -4984,14 +4851,14 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Texture2D_Release(native); - + #endregion - + #endregion - + /// /// デシリアライズ時に実行 /// @@ -5000,17 +4867,17 @@ IntPtr ICacheKeeper.Self protected override void OnDeserialization(object sender) { if (seInfo == null) return; - + var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(seInfo); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + base.OnDeserialization(sender); - + OnDeserialize_Method(sender); - + seInfo = null; } /// @@ -5019,13 +4886,13 @@ protected override void OnDeserialization(object sender) /// 現在はサポートされていない 常にnullを返す [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Method(object sender); - + /// /// のインスタンスを削除します。 /// ~Texture2D() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -5035,23 +4902,23 @@ protected override void OnDeserialization(object sender) } } } - + /// /// 組み込みシェーダの取得を行うクラス /// public sealed partial class BuiltinShader { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static BuiltinShader TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { BuiltinShader cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -5065,65 +4932,65 @@ public static BuiltinShader TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new BuiltinShader(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_Create(IntPtr selfPtr, int type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetDownsampleShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetSepiaShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetGrayScaleShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetGaussianBlurShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetHighLuminanceShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetLightBloomShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_BuiltinShader_GetTextureMixShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_BuiltinShader_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal BuiltinShader(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + internal string DownsampleShader { get @@ -5132,7 +4999,7 @@ internal string DownsampleShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string SepiaShader { get @@ -5141,7 +5008,7 @@ internal string SepiaShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string GrayScaleShader { get @@ -5150,7 +5017,7 @@ internal string GrayScaleShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string GaussianBlurShader { get @@ -5159,7 +5026,7 @@ internal string GaussianBlurShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string HighLuminanceShader { get @@ -5168,7 +5035,7 @@ internal string HighLuminanceShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string LightBloomShader { get @@ -5177,7 +5044,7 @@ internal string LightBloomShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + internal string TextureMixShader { get @@ -5186,7 +5053,7 @@ internal string TextureMixShader return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// シェーダを取得します。 /// @@ -5196,13 +5063,13 @@ public Shader Create(BuiltinShaderType type) var ret = cbg_BuiltinShader_Create(selfPtr, (int)type); return Shader.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~BuiltinShader() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -5212,23 +5079,23 @@ public Shader Create(BuiltinShaderType type) } } } - + /// /// コマンドリストのクラス /// public sealed partial class CommandList { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static CommandList TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { CommandList cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -5242,50 +5109,18 @@ public static CommandList TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new CommandList(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_CommandList_Create(); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_Begin(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_End(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_EndRenderPass(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_PauseRenderPass(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_ResumeRenderPass(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_UploadBuffer(IntPtr selfPtr, IntPtr buffer); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_ReadbackBuffer(IntPtr selfPtr, IntPtr buffer); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_CopyBuffer(IntPtr selfPtr, IntPtr src, IntPtr dst); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_Begin(IntPtr selfPtr); @@ -5321,74 +5156,46 @@ public static CommandList TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SetRenderTarget(IntPtr selfPtr, IntPtr target, RenderPassParameter renderPassParameter); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_RenderToRenderTexture(IntPtr selfPtr, IntPtr material, IntPtr target, RenderPassParameter renderPassParameter); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_RenderToRenderTarget(IntPtr selfPtr, IntPtr material); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_Draw(IntPtr selfPtr, int instanceCount); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SetVertexBuffer(IntPtr selfPtr, IntPtr vb, int stride, int offset); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SetIndexBuffer(IntPtr selfPtr, IntPtr ib, int stride, int offset); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetMaterialWithConstantBuffer(IntPtr selfPtr, IntPtr material, IntPtr constantBuffer); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_BeginComputePass(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_EndComputePass(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetComputeBuffer(IntPtr selfPtr, IntPtr buffer, int stride, int unit, int shaderStage); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetComputePipelineStateWithConstantBuffer(IntPtr selfPtr, IntPtr computePipelineState, IntPtr constantBuffer); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_Dispatch(IntPtr selfPtr, int x, int y, int z); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_Draw(IntPtr selfPtr, int instanceCount); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetVertexBuffer(IntPtr selfPtr, IntPtr vb, int stride, int offset); + private static extern void cbg_CommandList_SetMaterialWithConstantBuffer(IntPtr selfPtr, IntPtr material, IntPtr constantBuffer); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetIndexBuffer(IntPtr selfPtr, IntPtr ib, int stride, int offset); + private static extern void cbg_CommandList_BeginComputePass(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_BeginComputePass(IntPtr selfPtr); + private static extern void cbg_CommandList_EndComputePass(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_EndComputePass(IntPtr selfPtr); + private static extern void cbg_CommandList_SetComputeBuffer(IntPtr selfPtr, IntPtr buffer, int stride, int unit, int shaderStage); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetComputeBuffer(IntPtr selfPtr, IntPtr buffer, int stride, int unit); + private static extern void cbg_CommandList_SetComputePipelineStateWithConstantBuffer(IntPtr selfPtr, IntPtr computePipelineState, IntPtr constantBuffer); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] @@ -5397,15 +5204,7 @@ public static CommandList TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_CopyTexture(IntPtr selfPtr, IntPtr src, IntPtr dst); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_ResetTextures(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_ResetComputeBuffers(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_ResetTextures(IntPtr selfPtr); @@ -5417,17 +5216,12 @@ public static CommandList TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SaveRenderTexture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path, IntPtr texture); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_CommandList_GetScreenTexture(IntPtr selfPtr); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetScissor(IntPtr selfPtr, RectI value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SetScissor(IntPtr selfPtr, RectI value); @@ -5439,18 +5233,8 @@ public static CommandList TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SetScreenTextureFormat(IntPtr selfPtr, int value); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetMaterial(IntPtr selfPtr, IntPtr value); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_SetComputePipelineState(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_SetMaterial(IntPtr selfPtr, IntPtr value); @@ -5464,15 +5248,15 @@ public static CommandList TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal CommandList(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public RenderTexture ScreenTexture { get @@ -5481,7 +5265,7 @@ public RenderTexture ScreenTexture return RenderTexture.TryGetFromCache(ret); } } - + public RectI Scissor { set @@ -5489,7 +5273,7 @@ public RectI Scissor cbg_CommandList_SetScissor(selfPtr, value); } } - + /// /// GetScreenTextureで取得するテクスチャのフォーマットを取得または設定します。 /// @@ -5511,7 +5295,7 @@ public TextureFormat ScreenTextureFormat } } private TextureFormat? _ScreenTextureFormat; - + public ComputePipelineState ComputePipelineState { set @@ -5519,53 +5303,53 @@ public ComputePipelineState ComputePipelineState cbg_CommandList_SetComputePipelineState(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); } } - + public static CommandList Create() { var ret = cbg_CommandList_Create(); return CommandList.TryGetFromCache(ret); } - + public void Begin() { cbg_CommandList_Begin(selfPtr); } - + public void End() { cbg_CommandList_End(selfPtr); } - + public void EndRenderPass() { cbg_CommandList_EndRenderPass(selfPtr); } - + public void PauseRenderPass() { cbg_CommandList_PauseRenderPass(selfPtr); } - + public void ResumeRenderPass() { cbg_CommandList_ResumeRenderPass(selfPtr); } - + internal void UploadBuffer(Buffer buffer) { cbg_CommandList_UploadBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero); } - + internal void ReadbackBuffer(Buffer buffer) { cbg_CommandList_ReadbackBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero); } - + internal void CopyBuffer(Buffer src, Buffer dst) { cbg_CommandList_CopyBuffer(selfPtr, src != null ? src.selfPtr : IntPtr.Zero, dst != null ? dst.selfPtr : IntPtr.Zero); } - + /// /// 描画する対象のテクスチャを設定します。 /// @@ -5575,7 +5359,7 @@ public void SetRenderTarget(RenderTexture target, RenderPassParameter renderPass { cbg_CommandList_SetRenderTarget(selfPtr, target != null ? target.selfPtr : IntPtr.Zero, renderPassParameter); } - + /// /// 指定したテクスチャに描画を行います。 /// @@ -5585,7 +5369,7 @@ public void RenderToRenderTexture(Material material, RenderTexture target, Rende { cbg_CommandList_RenderToRenderTexture(selfPtr, material != null ? material.selfPtr : IntPtr.Zero, target != null ? target.selfPtr : IntPtr.Zero, renderPassParameter); } - + /// /// 設定されたターゲットに描画を行います。 /// @@ -5594,52 +5378,52 @@ public void RenderToRenderTarget(Material material) { cbg_CommandList_RenderToRenderTarget(selfPtr, material != null ? material.selfPtr : IntPtr.Zero); } - + public void Draw(int instanceCount) { cbg_CommandList_Draw(selfPtr, instanceCount); } - + internal void SetVertexBuffer(Buffer vb, int stride, int offset) { cbg_CommandList_SetVertexBuffer(selfPtr, vb != null ? vb.selfPtr : IntPtr.Zero, stride, offset); } - + internal void SetIndexBuffer(Buffer ib, int stride, int offset) { cbg_CommandList_SetIndexBuffer(selfPtr, ib != null ? ib.selfPtr : IntPtr.Zero, stride, offset); } - + internal void SetMaterialWithConstantBuffer(Material material, Buffer constantBuffer) { cbg_CommandList_SetMaterialWithConstantBuffer(selfPtr, material != null ? material.selfPtr : IntPtr.Zero, constantBuffer != null ? constantBuffer.selfPtr : IntPtr.Zero); } - + public void BeginComputePass() { cbg_CommandList_BeginComputePass(selfPtr); } - + public void EndComputePass() { cbg_CommandList_EndComputePass(selfPtr); } - + internal void SetComputeBuffer(Buffer buffer, int stride, int unit, ShaderStage shaderStage) { cbg_CommandList_SetComputeBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero, stride, unit, (int)shaderStage); } - + internal void SetComputePipelineStateWithConstantBuffer(ComputePipelineState computePipelineState, Buffer constantBuffer) { cbg_CommandList_SetComputePipelineStateWithConstantBuffer(selfPtr, computePipelineState != null ? computePipelineState.selfPtr : IntPtr.Zero, constantBuffer != null ? constantBuffer.selfPtr : IntPtr.Zero); } - + public void Dispatch(int x, int y, int z) { cbg_CommandList_Dispatch(selfPtr, x, y, z); } - + /// /// テクスチャの内容をコピーします。 /// @@ -5652,28 +5436,28 @@ public void CopyTexture(RenderTexture src, RenderTexture dst) if (dst == null) throw new ArgumentNullException(nameof(dst), "引数がnullです"); cbg_CommandList_CopyTexture(selfPtr, src != null ? src.selfPtr : IntPtr.Zero, dst != null ? dst.selfPtr : IntPtr.Zero); } - + public void ResetTextures() { cbg_CommandList_ResetTextures(selfPtr); } - + public void ResetComputeBuffers() { cbg_CommandList_ResetComputeBuffers(selfPtr); } - + public void SaveRenderTexture(string path, RenderTexture texture) { cbg_CommandList_SaveRenderTexture(selfPtr, path, texture != null ? texture.selfPtr : IntPtr.Zero); } - + /// /// のインスタンスを削除します。 /// ~CommandList() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -5683,23 +5467,23 @@ public void SaveRenderTexture(string path, RenderTexture texture) } } } - + /// /// グラフィックの制御を行うクラス /// public sealed partial class Graphics { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Graphics TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Graphics cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -5713,87 +5497,79 @@ public static Graphics TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Graphics(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Graphics_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Graphics_BeginFrame(IntPtr selfPtr, RenderPassParameter renderPassParameter); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Graphics_EndFrame(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Graphics_DoEvents(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Graphics_Terminate(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Graphics_ExecuteCommandList_(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Graphics_ExecuteCommandList_CommandList(IntPtr selfPtr, IntPtr commandList); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Graphics_WaitFinish_(IntPtr selfPtr); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Graphics_WaitFinish_CommandList(IntPtr selfPtr, IntPtr commandList); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Graphics_ExecuteCommandList(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Graphics_WaitFinish(IntPtr selfPtr); + private static extern void cbg_Graphics_WaitFinish_CommandList(IntPtr selfPtr, IntPtr commandList); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Graphics_SaveScreenshot(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Graphics_GetCommandList(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Graphics_GetBuiltinShader(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Graphics_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Graphics(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// コマンドリストを取得します。 /// @@ -5805,7 +5581,7 @@ public CommandList CommandList return CommandList.TryGetFromCache(ret); } } - + /// /// 組み込みのシェーダを取得します。 /// @@ -5817,7 +5593,7 @@ internal BuiltinShader BuiltinShader return BuiltinShader.TryGetFromCache(ret); } } - + /// /// インスタンスを取得します。 /// @@ -5826,7 +5602,7 @@ internal static Graphics GetInstance() var ret = cbg_Graphics_GetInstance(); return Graphics.TryGetFromCache(ret); } - + /// /// 描画を開始します。 /// @@ -5835,7 +5611,7 @@ internal bool BeginFrame(RenderPassParameter renderPassParameter) var ret = cbg_Graphics_BeginFrame(selfPtr, renderPassParameter); return ret; } - + /// /// 描画を終了します。 /// @@ -5844,7 +5620,7 @@ internal bool EndFrame() var ret = cbg_Graphics_EndFrame(selfPtr); return ret; } - + /// /// イベントを処理します。 /// @@ -5853,32 +5629,32 @@ internal bool DoEvents() var ret = cbg_Graphics_DoEvents(selfPtr); return ret; } - + public static void Terminate() { cbg_Graphics_Terminate(); } - + public void ExecuteCommandList() { cbg_Graphics_ExecuteCommandList_(selfPtr); } - + public void ExecuteCommandList(CommandList commandList) { cbg_Graphics_ExecuteCommandList_CommandList(selfPtr, commandList != null ? commandList.selfPtr : IntPtr.Zero); } - + public void WaitFinish() { cbg_Graphics_WaitFinish_(selfPtr); } - + public void WaitFinish(CommandList commandList) { cbg_Graphics_WaitFinish_CommandList(selfPtr, commandList != null ? commandList.selfPtr : IntPtr.Zero); } - + /// /// スクリーンショットを保存します。 /// @@ -5889,13 +5665,13 @@ public void SaveScreenshot(string path) if (path == null) throw new ArgumentNullException(nameof(path), "引数がnullです"); cbg_Graphics_SaveScreenshot(selfPtr, path); } - + /// /// のインスタンスを削除します。 /// ~Graphics() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -5905,7 +5681,7 @@ public void SaveScreenshot(string path) } } } - + /// /// Altseed2 の設定を表すクラス /// @@ -5913,16 +5689,16 @@ public void SaveScreenshot(string path) public sealed partial class Configuration : ISerializable { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Configuration TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Configuration cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -5936,18 +5712,18 @@ public static Configuration TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Configuration(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Configuration_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -5955,8 +5731,8 @@ public static Configuration TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetIsFullscreen(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -5964,16 +5740,16 @@ public static Configuration TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetIsResizable(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Configuration_GetDeviceType(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetDeviceType(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -5981,16 +5757,16 @@ public static Configuration TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetWaitVSync(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Configuration_GetEnabledCoreModules(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetEnabledCoreModules(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -5998,8 +5774,8 @@ public static Configuration TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetConsoleLoggingEnabled(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -6007,36 +5783,36 @@ public static Configuration TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetFileLoggingEnabled(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Configuration_GetLogFileName(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetLogFileName(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Configuration_GetToolSettingFileName(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_SetToolSettingFileName(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Configuration_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Configuration(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 全画面モードかどうかを取得または設定します。 /// @@ -6058,7 +5834,7 @@ public bool IsFullscreen } } private bool? _IsFullscreen; - + /// /// 画面サイズ可変かどうかを取得または設定します。 /// @@ -6080,7 +5856,7 @@ public bool IsResizable } } private bool? _IsResizable; - + /// /// 描画方法を取得または設定します。 /// @@ -6102,7 +5878,7 @@ public GraphicsDevice DeviceType } } private GraphicsDevice? _DeviceType; - + /// /// 垂直同期信号を待つかどうかを取得または設定します。 /// @@ -6124,7 +5900,7 @@ public bool WaitVSync } } private bool? _WaitVSync; - + /// /// 初期化するモジュールを指定します。 /// @@ -6146,7 +5922,7 @@ public CoreModules EnabledCoreModules } } private CoreModules? _EnabledCoreModules; - + /// /// ログをコンソールに出力するかどうかを取得または設定します。 /// @@ -6168,7 +5944,7 @@ public bool ConsoleLoggingEnabled } } private bool? _ConsoleLoggingEnabled; - + /// /// ログをファイルに出力するかどうかを取得または設定します。 /// @@ -6190,7 +5966,7 @@ public bool FileLoggingEnabled } } private bool? _FileLoggingEnabled; - + /// /// ログファイル名を取得または設定します。 /// @@ -6212,7 +5988,7 @@ public string LogFileName } } private string _LogFileName; - + public string ToolSettingFileName { get @@ -6231,10 +6007,10 @@ public string ToolSettingFileName } } private string _ToolSettingFileName; - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_IsFullscreen = "S_IsFullscreen"; @@ -6255,7 +6031,7 @@ public string ToolSettingFileName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_ToolSettingFileName = "S_ToolSettingFileName"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -6266,7 +6042,7 @@ private Configuration(SerializationInfo info, StreamingContext context) : this(n { selfPtr = Call_GetPtr(info); if (selfPtr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); - + IsFullscreen = info.GetBoolean(S_IsFullscreen); IsResizable = info.GetBoolean(S_IsResizable); DeviceType = info.GetValue(S_DeviceType); @@ -6276,10 +6052,10 @@ private Configuration(SerializationInfo info, StreamingContext context) : this(n FileLoggingEnabled = info.GetBoolean(S_FileLoggingEnabled); LogFileName = info.GetString(S_LogFileName); ToolSettingFileName = info.GetString(S_ToolSettingFileName); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -6289,7 +6065,7 @@ private Configuration(SerializationInfo info, StreamingContext context) : this(n void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_IsFullscreen, IsFullscreen); info.AddValue(S_IsResizable, IsResizable); info.AddValue(S_DeviceType, DeviceType); @@ -6299,10 +6075,10 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex info.AddValue(S_FileLoggingEnabled, FileLoggingEnabled); info.AddValue(S_LogFileName, LogFileName); info.AddValue(S_ToolSettingFileName, ToolSettingFileName); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -6310,7 +6086,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -6318,7 +6094,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -6327,7 +6103,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -6338,16 +6114,16 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - - + + #endregion - + /// /// のインスタンスを削除します。 /// ~Configuration() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -6357,23 +6133,23 @@ private IntPtr Call_GetPtr(SerializationInfo info) } } } - + /// /// ファイル制御を行うクラス /// public sealed partial class File { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static File TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { File cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -6387,64 +6163,64 @@ public static File TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new File(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_File_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_AddRootDirectory(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_AddRootPackageWithPassword(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path, [MarshalAs(UnmanagedType.LPWStr)] string password); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_AddRootPackage(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_File_ClearRootDirectories(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_Exists(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_Pack(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string srcPath, [MarshalAs(UnmanagedType.LPWStr)] string dstPath); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_File_PackWithPassword(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string srcPath, [MarshalAs(UnmanagedType.LPWStr)] string dstPath, [MarshalAs(UnmanagedType.LPWStr)] string password); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_File_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal File(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// インスタンスを取得します。 /// @@ -6453,7 +6229,7 @@ internal static File GetInstance() var ret = cbg_File_GetInstance(); return File.TryGetFromCache(ret); } - + /// /// ファイル読み込み時に自動的に保管されるディレクトリを追加します。 /// @@ -6465,7 +6241,7 @@ public bool AddRootDirectory(string path) var ret = cbg_File_AddRootDirectory(selfPtr, path); return ret; } - + /// /// ファイルパッケージをパスワード有りで読み込みます。 /// @@ -6479,7 +6255,7 @@ public bool AddRootPackageWithPassword(string path, string password) var ret = cbg_File_AddRootPackageWithPassword(selfPtr, path, password); return ret; } - + /// /// ファイルパッケージをパスワード無しで読み込みます。 /// @@ -6491,7 +6267,7 @@ public bool AddRootPackage(string path) var ret = cbg_File_AddRootPackage(selfPtr, path); return ret; } - + /// /// 追加されたディレクトリやファイルパッケージをすべて削除します。 /// @@ -6499,7 +6275,7 @@ public void ClearRootDirectories() { cbg_File_ClearRootDirectories(selfPtr); } - + /// /// 指定したファイルが存在するかどうかを検索します。 /// @@ -6509,7 +6285,7 @@ public bool Exists(string path) var ret = cbg_File_Exists(selfPtr, path); return ret; } - + /// /// 指定したディレクトリのファイルをパックします。 /// @@ -6523,7 +6299,7 @@ public bool Pack(string srcPath, string dstPath) var ret = cbg_File_Pack(selfPtr, srcPath, dstPath); return ret; } - + /// /// 指定したディレクトリのファイルをパスワード付きでパックします。 /// @@ -6539,13 +6315,13 @@ public bool PackWithPassword(string srcPath, string dstPath, string password) var ret = cbg_File_PackWithPassword(selfPtr, srcPath, dstPath, password); return ret; } - + /// /// のインスタンスを削除します。 /// ~File() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -6555,7 +6331,7 @@ public bool PackWithPassword(string srcPath, string dstPath, string password) } } } - + /// /// 一度でファイルを読み取るクラス /// @@ -6563,16 +6339,16 @@ public bool PackWithPassword(string srcPath, string dstPath, string password) public sealed partial class StaticFile : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static ConcurrentDictionary> cacheRepo = new ConcurrentDictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] internal static StaticFile TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { StaticFile cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -6586,56 +6362,56 @@ internal static StaticFile TryGetFromCache(IntPtr native) cacheRepo.TryRemove(native, out _); } } - + var newObject = new StaticFile(new MemoryHandle(native)); cacheRepo.TryAdd(native, new WeakReference(newObject)); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StaticFile_Create([MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_StaticFile_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StaticFile_GetInt8ArrayBuffer(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StaticFile_GetPath(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_StaticFile_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_StaticFile_GetIsInPackage(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_StaticFile_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal StaticFile(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + internal Int8Array Int8ArrayBuffer { get @@ -6644,7 +6420,7 @@ internal Int8Array Int8ArrayBuffer return Int8Array.TryGetFromCache(ret); } } - + /// /// 読み込んだファイルのパスを取得します。 /// @@ -6656,7 +6432,7 @@ public string Path return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 読み込んだファイルのデータサイズを取得します。 /// @@ -6668,7 +6444,7 @@ public int Size return ret; } } - + /// /// 読み込んだファイルがファイルパッケージ内に格納されているかどうかを取得します。 /// @@ -6680,7 +6456,7 @@ public bool IsInPackage return ret; } } - + /// /// 指定ファイルを読み込んだの新しいインスタンスを生成します。 /// @@ -6692,7 +6468,7 @@ public static StaticFile Create(string path) var ret = cbg_StaticFile_Create(path); return StaticFile.TryGetFromCache(ret); } - + /// /// 再読み込みを行います。 /// @@ -6701,15 +6477,15 @@ public bool Reload() var ret = cbg_StaticFile_Reload(selfPtr); return ret; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Path = "S_Path"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -6719,14 +6495,14 @@ public bool Reload() private StaticFile(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserializationConcurrent(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -6736,12 +6512,12 @@ private StaticFile(SerializationInfo info, StreamingContext context) : this(new void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Path, Path); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -6749,7 +6525,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -6757,7 +6533,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -6766,7 +6542,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -6777,7 +6553,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -6788,12 +6564,12 @@ private void StaticFile_Unsetter_Deserialize(SerializationInfo info, out string { Path = info.GetString(S_Path); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -6803,20 +6579,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_StaticFile_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~StaticFile() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -6826,23 +6602,23 @@ IntPtr ICacheKeeper.Self } } } - + /// /// プロファイラのクラス /// public sealed partial class Profiler { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Profiler TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Profiler cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -6856,302 +6632,148 @@ public static Profiler TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Profiler(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Profiler_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_BeginBlock(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.LPWStr)] string _filename, int _line, Color color); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_EndBlock(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_StartCapture(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_StopCapture(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_StartListen(IntPtr selfPtr, int port); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_DumpToFileAndStopCapture(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Profiler_GetIsProfilerRunning(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Profiler_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Profiler(MemoryHandle handle) { selfPtr = handle.selfPtr; } - - public bool IsProfilerRunning - { - get - { - var ret = cbg_Profiler_GetIsProfilerRunning(selfPtr); - return ret; - } - } - - /// - /// インスタンスを取得します。 - /// - internal static Profiler GetInstance() - { - var ret = cbg_Profiler_GetInstance(); - return Profiler.TryGetFromCache(ret); - } - - /// - /// 測定するブロックを開始します。 - /// - /// ブロックの名称 - /// ブロックが位置するファイル名 - /// ブロックが位置する行数 - /// ブロックの色 - public void BeginBlock(string name, string _filename, int _line, Color color) - { - cbg_Profiler_BeginBlock(selfPtr, name, _filename, _line, color); - } - - /// - /// 測定するブロックを終了します。 - /// - public void EndBlock() - { - cbg_Profiler_EndBlock(selfPtr); - } - - /// - /// 測定を開始します。 - /// - public void StartCapture() - { - cbg_Profiler_StartCapture(selfPtr); - } - - /// - /// 測定を終了します。 - /// - public void StopCapture() - { - cbg_Profiler_StopCapture(selfPtr); - } - - /// - /// リモートから状態を監視します。 - /// - /// 通信に使用するポート - public void StartListen(int port) - { - cbg_Profiler_StartListen(selfPtr, port); - } - - /// - /// 測定を終了し、結果を出力します。 - /// - /// 出力先 - public void DumpToFileAndStopCapture(string path) - { - cbg_Profiler_DumpToFileAndStopCapture(selfPtr, path); - } - - /// - /// のインスタンスを削除します。 - /// - ~Profiler() - { - lock (this) - { - if (selfPtr != IntPtr.Zero) - { - cbg_Profiler_Release(selfPtr); - selfPtr = IntPtr.Zero; - } - } - } - } - - /// - /// - /// - public partial class ComputePipelineState - { - #region unmanaged - - [EditorBrowsable(EditorBrowsableState.Never)] - private static Dictionary> cacheRepo = new Dictionary>(); - - [EditorBrowsable(EditorBrowsableState.Never)] - public static ComputePipelineState TryGetFromCache(IntPtr native) - { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) - { - ComputePipelineState cacheRet; - cacheRepo[native].TryGetTarget(out cacheRet); - if(cacheRet != null) - { - cbg_ComputePipelineState_Release(native); - return cacheRet; - } - else - { - cacheRepo.Remove(native); - } - } - - var newObject = new ComputePipelineState(new MemoryHandle(native)); - cacheRepo[native] = new WeakReference(newObject); - return newObject; - } - - [EditorBrowsable(EditorBrowsableState.Never)] - internal IntPtr selfPtr = IntPtr.Zero; - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_ComputePipelineState_Create(); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern Vector4F cbg_ComputePipelineState_GetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_ComputePipelineState_SetVector4F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Vector4F value); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern Matrix44F cbg_ComputePipelineState_GetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_ComputePipelineState_SetMatrix44F(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string key, Matrix44F value); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_ComputePipelineState_GetShader(IntPtr selfPtr); - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_ComputePipelineState_SetShader(IntPtr selfPtr, IntPtr value); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern IntPtr cbg_ComputePipelineState_GetPropertyBlock(IntPtr selfPtr); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_ComputePipelineState_Release(IntPtr selfPtr); - - #endregion - - [EditorBrowsable(EditorBrowsableState.Never)] - internal ComputePipelineState(MemoryHandle handle) - { - selfPtr = handle.selfPtr; - } - - public Shader Shader + + public bool IsProfilerRunning { get { - if (_Shader != null) - { - return _Shader; - } - var ret = cbg_ComputePipelineState_GetShader(selfPtr); - return Shader.TryGetFromCache(ret); - } - set - { - _Shader = value; - cbg_ComputePipelineState_SetShader(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); + var ret = cbg_Profiler_GetIsProfilerRunning(selfPtr); + return ret; } } - private Shader _Shader; - - public MaterialPropertyBlock PropertyBlock + + /// + /// インスタンスを取得します。 + /// + internal static Profiler GetInstance() { - get - { - var ret = cbg_ComputePipelineState_GetPropertyBlock(selfPtr); - return MaterialPropertyBlock.TryGetFromCache(ret); - } + var ret = cbg_Profiler_GetInstance(); + return Profiler.TryGetFromCache(ret); } - - public static ComputePipelineState Create() + + /// + /// 測定するブロックを開始します。 + /// + /// ブロックの名称 + /// ブロックが位置するファイル名 + /// ブロックが位置する行数 + /// ブロックの色 + public void BeginBlock(string name, string _filename, int _line, Color color) { - var ret = cbg_ComputePipelineState_Create(); - return ComputePipelineState.TryGetFromCache(ret); + cbg_Profiler_BeginBlock(selfPtr, name, _filename, _line, color); } - - public Vector4F GetVector4F(string key) + + /// + /// 測定するブロックを終了します。 + /// + public void EndBlock() { - var ret = cbg_ComputePipelineState_GetVector4F(selfPtr, key); - return ret; + cbg_Profiler_EndBlock(selfPtr); } - - public void SetVector4F(string key, Vector4F value) + + /// + /// 測定を開始します。 + /// + public void StartCapture() { - cbg_ComputePipelineState_SetVector4F(selfPtr, key, value); + cbg_Profiler_StartCapture(selfPtr); } - - public Matrix44F GetMatrix44F(string key) + + /// + /// 測定を終了します。 + /// + public void StopCapture() { - var ret = cbg_ComputePipelineState_GetMatrix44F(selfPtr, key); - return ret; + cbg_Profiler_StopCapture(selfPtr); } - - public void SetMatrix44F(string key, Matrix44F value) + + /// + /// リモートから状態を監視します。 + /// + /// 通信に使用するポート + public void StartListen(int port) { - cbg_ComputePipelineState_SetMatrix44F(selfPtr, key, value); + cbg_Profiler_StartListen(selfPtr, port); } - + /// - /// のインスタンスを削除します。 + /// 測定を終了し、結果を出力します。 /// - ~ComputePipelineState() + /// 出力先 + public void DumpToFileAndStopCapture(string path) + { + cbg_Profiler_DumpToFileAndStopCapture(selfPtr, path); + } + + /// + /// のインスタンスを削除します。 + /// + ~Profiler() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { - cbg_ComputePipelineState_Release(selfPtr); + cbg_Profiler_Release(selfPtr); selfPtr = IntPtr.Zero; } } } } - + /// /// /// @@ -7313,16 +6935,16 @@ public void SetMatrix44F(string key, Matrix44F value) public sealed partial class RenderTexture : TextureBase, ISerializable, ICacheKeeper, IDeserializationCallback { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new RenderTexture TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { RenderTexture cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -7336,38 +6958,38 @@ public sealed partial class RenderTexture : TextureBase, ISerializable, ICacheKe cacheRepo.Remove(native); } } - + var newObject = new RenderTexture(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderTexture_Create(Vector2I size, int format); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_RenderTexture_Save(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_RenderTexture_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderTexture_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal RenderTexture(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 指定したサイズとフォーマットを持つRenderTextureの新しいインスタンスを生成します。 /// @@ -7378,28 +7000,28 @@ public static RenderTexture Create(Vector2I size, TextureFormat format) var ret = cbg_RenderTexture_Create(size, (int)format); return RenderTexture.TryGetFromCache(ret); } - + public bool Save(string path) { var ret = cbg_RenderTexture_Save(selfPtr, path); return ret; } - + public bool Reload() { var ret = cbg_RenderTexture_Reload(selfPtr); return ret; } - - + + #region ISerialiable - + #region SerializeName #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] private SerializationInfo seInfo; - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -7409,10 +7031,10 @@ public bool Reload() private RenderTexture(SerializationInfo info, StreamingContext context) : base(info, context) { seInfo = info; - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -7422,11 +7044,11 @@ private RenderTexture(SerializationInfo info, StreamingContext context) : base(i protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - - + + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -7434,7 +7056,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -7442,7 +7064,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出されます。 /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -7451,7 +7073,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -7462,12 +7084,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -7477,14 +7099,14 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_RenderTexture_Release(native); - + #endregion - + #endregion - + /// /// デシリアライズ時に実行 /// @@ -7493,17 +7115,17 @@ IntPtr ICacheKeeper.Self protected override void OnDeserialization(object sender) { if (seInfo == null) return; - + var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(seInfo); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + base.OnDeserialization(sender); - + OnDeserialize_Method(sender); - + seInfo = null; } /// @@ -7512,13 +7134,13 @@ protected override void OnDeserialization(object sender) /// 現在はサポートされていない 常にnullを返す [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Method(object sender); - + /// /// のインスタンスを削除します。 /// ~RenderTexture() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -7528,23 +7150,23 @@ protected override void OnDeserialization(object sender) } } } - + /// /// 文字情報 /// public sealed partial class Glyph { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static ConcurrentDictionary> cacheRepo = new ConcurrentDictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] internal static Glyph TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Glyph cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -7558,61 +7180,56 @@ internal static Glyph TryGetFromCache(IntPtr native) cacheRepo.TryRemove(native, out _); } } - + var newObject = new Glyph(new MemoryHandle(native)); cacheRepo.TryAdd(native, new WeakReference(newObject)); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_Glyph_GetTextureSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Glyph_GetTextureIndex(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_Glyph_GetPosition(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_Glyph_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Glyph_GetOffset(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Glyph_GetAdvance(IntPtr selfPtr); - - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern float cbg_Glyph_GetScale(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Glyph_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Glyph(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 文字テクスチャのサイズを取得します。 /// @@ -7624,7 +7241,7 @@ public Vector2I TextureSize return ret; } } - + /// /// 文字テクスチャのインデックスを取得します。 /// @@ -7636,7 +7253,7 @@ public int TextureIndex return ret; } } - + /// /// 文字の座標を取得します。 /// @@ -7648,7 +7265,7 @@ public Vector2I Position return ret; } } - + /// /// 文字のサイズを取得します。 /// @@ -7660,7 +7277,7 @@ public Vector2I Size return ret; } } - + /// /// 文字のオフセットを取得します。 /// @@ -7672,7 +7289,7 @@ public Vector2F Offset return ret; } } - + public float Advance { get @@ -7681,22 +7298,13 @@ public float Advance return ret; } } - - public float Scale - { - get - { - var ret = cbg_Glyph_GetScale(selfPtr); - return ret; - } - } - + /// /// のインスタンスを削除します。 /// ~Glyph() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -7706,7 +7314,7 @@ public float Scale } } } - + /// /// フォント /// @@ -7714,16 +7322,16 @@ public float Scale public sealed partial class Font : ISerializable, ICacheKeeper, IDeserializationCallback { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static ConcurrentDictionary> cacheRepo = new ConcurrentDictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] internal static Font TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Font cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -7737,104 +7345,104 @@ internal static Font TryGetFromCache(IntPtr native) cacheRepo.TryRemove(native, out _); } } - + var newObject = new Font(new MemoryHandle(native)); cacheRepo.TryAdd(native, new WeakReference(newObject)); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_GetGlyph(IntPtr selfPtr, int character); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_GetFontTexture(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Font_GetKerning(IntPtr selfPtr, int c1, int c2); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_LoadDynamicFont([MarshalAs(UnmanagedType.LPWStr)] string path, int samplingSize); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_LoadStaticFont([MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_CreateImageFont(IntPtr baseFont); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Font_GenerateFontFile([MarshalAs(UnmanagedType.LPWStr)] string dynamicFontPath, [MarshalAs(UnmanagedType.LPWStr)] string staticFontPath, int samplingSize, [MarshalAs(UnmanagedType.LPWStr)] string characters); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Font_AddImageGlyph(IntPtr selfPtr, int character, IntPtr texture); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_GetImageGlyph(IntPtr selfPtr, int character); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Font_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Font_GetSamplingSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Font_GetAscent(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Font_GetDescent(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Font_GetLineGap(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Font_GetEmSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Font_GetIsStaticFont(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Font_GetPath(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Font_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Font(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public int SamplingSize { get @@ -7843,7 +7451,7 @@ public int SamplingSize return ret; } } - + /// /// フォントのベースラインからトップラインまでの距離を取得します。 /// @@ -7855,7 +7463,7 @@ public float Ascent return ret; } } - + /// /// フォントのベースラインからボトムラインまでの距離を取得します。 /// @@ -7867,7 +7475,7 @@ public float Descent return ret; } } - + /// /// フォントの行間の距離を取得します。 /// @@ -7879,7 +7487,7 @@ public float LineGap return ret; } } - + public float EmSize { get @@ -7888,7 +7496,7 @@ public float EmSize return ret; } } - + /// /// StaticFontかどうかを取得します。 /// @@ -7900,7 +7508,7 @@ public bool IsStaticFont return ret; } } - + /// /// 読み込んだファイルのパスを取得します。 /// @@ -7912,7 +7520,7 @@ public string Path return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 文字情報を取得します。 /// @@ -7922,7 +7530,7 @@ public Glyph GetGlyph(int character) var ret = cbg_Font_GetGlyph(selfPtr, character); return Glyph.TryGetFromCache(ret); } - + /// /// 指定した文字のテクスチャを取得します。 /// @@ -7932,7 +7540,7 @@ public Texture2D GetFontTexture(int index) var ret = cbg_Font_GetFontTexture(selfPtr, index); return Texture2D.TryGetFromCache(ret); } - + /// /// カーニングを取得します。 /// @@ -7943,7 +7551,7 @@ public int GetKerning(int c1, int c2) var ret = cbg_Font_GetKerning(selfPtr, c1, c2); return ret; } - + /// /// FontGeneratorで生成したフォントを読み込んでFontの新しいインスタンスを生成します。 /// @@ -7955,7 +7563,7 @@ public static Font LoadStaticFont(string path) var ret = cbg_Font_LoadStaticFont(path); return Font.TryGetFromCache(ret); } - + /// /// テクスチャ追加対応フォントを生成します。 /// @@ -7967,7 +7575,7 @@ public static Font CreateImageFont(Font baseFont) var ret = cbg_Font_CreateImageFont(baseFont != null ? baseFont.selfPtr : IntPtr.Zero); return Font.TryGetFromCache(ret); } - + /// /// テクスチャ文字を追加します。 /// @@ -7977,7 +7585,7 @@ internal void AddImageGlyph(int character, TextureBase texture) { cbg_Font_AddImageGlyph(selfPtr, character, texture != null ? texture.selfPtr : IntPtr.Zero); } - + /// /// テクスチャ文字を取得します。 /// @@ -7987,16 +7595,16 @@ public TextureBase GetImageGlyph(int character) var ret = cbg_Font_GetImageGlyph(selfPtr, character); return TextureBase.TryGetFromCache(ret); } - + public bool Reload() { var ret = cbg_Font_Reload(selfPtr); return ret; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_SamplingSize = "S_SamplingSize"; @@ -8005,10 +7613,10 @@ public bool Reload() [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Path = "S_Path"; #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] private SerializationInfo seInfo; - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -8018,10 +7626,10 @@ public bool Reload() private Font(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { seInfo = info; - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -8031,14 +7639,14 @@ private Font(SerializationInfo info, StreamingContext context) : this(new Memory void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_SamplingSize, SamplingSize); info.AddValue(S_IsStaticFont, IsStaticFont); info.AddValue(S_Path, Path); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -8046,7 +7654,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -8054,7 +7662,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出されます。 /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -8063,7 +7671,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -8074,7 +7682,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -8089,12 +7697,12 @@ private void Font_Unsetter_Deserialize(SerializationInfo info, out int SamplingS IsStaticFont = info.GetBoolean(S_IsStaticFont); Path = info.GetString(S_Path) ?? throw new SerializationException("デシリアライズに失敗しました"); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -8104,14 +7712,14 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Font_Release(native); - + #endregion - + #endregion - + /// /// デシリアライズ時に実行 /// @@ -8120,15 +7728,15 @@ IntPtr ICacheKeeper.Self void IDeserializationCallback.OnDeserialization(object sender) { if (seInfo == null) return; - + var ptr = Call_GetPtr(seInfo); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserializationConcurrent(this, ptr); - - + + OnDeserialize_Method(sender); - + seInfo = null; } /// @@ -8137,13 +7745,13 @@ void IDeserializationCallback.OnDeserialization(object sender) /// 現在はサポートされていない 常にnullを返す [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Method(object sender); - + /// /// のインスタンスを削除します。 /// ~Font() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -8153,23 +7761,23 @@ void IDeserializationCallback.OnDeserialization(object sender) } } } - + /// /// /// public partial class ImageFont { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static ImageFont TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { ImageFont cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -8183,77 +7791,77 @@ public static ImageFont TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new ImageFont(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ImageFont_GetGlyph(IntPtr selfPtr, int character); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ImageFont_GetFontTexture(IntPtr selfPtr, int index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_ImageFont_GetKerning(IntPtr selfPtr, int c1, int c2); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ImageFont_AddImageGlyph(IntPtr selfPtr, int character, IntPtr texture); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ImageFont_GetImageGlyph(IntPtr selfPtr, int character); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_ImageFont_GetSamplingSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_ImageFont_GetAscent(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_ImageFont_GetDescent(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_ImageFont_GetLineGap(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_ImageFont_GetEmSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_ImageFont_GetIsStaticFont(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ImageFont_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal ImageFont(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public int SamplingSize { get @@ -8262,7 +7870,7 @@ public int SamplingSize return ret; } } - + public float Ascent { get @@ -8271,7 +7879,7 @@ public float Ascent return ret; } } - + public float Descent { get @@ -8280,7 +7888,7 @@ public float Descent return ret; } } - + public float LineGap { get @@ -8289,7 +7897,7 @@ public float LineGap return ret; } } - + public float EmSize { get @@ -8298,7 +7906,7 @@ public float EmSize return ret; } } - + public bool IsStaticFont { get @@ -8307,42 +7915,42 @@ public bool IsStaticFont return ret; } } - + public Glyph GetGlyph(int character) { var ret = cbg_ImageFont_GetGlyph(selfPtr, character); return Glyph.TryGetFromCache(ret); } - + public Texture2D GetFontTexture(int index) { var ret = cbg_ImageFont_GetFontTexture(selfPtr, index); return Texture2D.TryGetFromCache(ret); } - + public int GetKerning(int c1, int c2) { var ret = cbg_ImageFont_GetKerning(selfPtr, c1, c2); return ret; } - + public void AddImageGlyph(int character, TextureBase texture) { cbg_ImageFont_AddImageGlyph(selfPtr, character, texture != null ? texture.selfPtr : IntPtr.Zero); } - + public TextureBase GetImageGlyph(int character) { var ret = cbg_ImageFont_GetImageGlyph(selfPtr, character); return TextureBase.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~ImageFont() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -8352,23 +7960,23 @@ public TextureBase GetImageGlyph(int character) } } } - + /// /// カリングのクラス /// internal sealed partial class CullingSystem { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static CullingSystem TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { CullingSystem cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -8382,65 +7990,65 @@ public static CullingSystem TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new CullingSystem(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_CullingSystem_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_CullingSystem_Initialize(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_Terminate(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_Register(IntPtr selfPtr, IntPtr rendered); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_UpdateAABB(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_Cull(IntPtr selfPtr, RectF rect); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_Unregister(IntPtr selfPtr, IntPtr rendered); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_CullingSystem_GetDrawingRenderedCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_CullingSystem_GetDrawingRenderedIds(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CullingSystem_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal CullingSystem(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 描画されているRenderedの個数を取得します。 /// @@ -8452,7 +8060,7 @@ internal int DrawingRenderedCount return ret; } } - + /// /// 描画されているRenderedのIdの配列を取得します。 /// @@ -8464,7 +8072,7 @@ internal Int32Array DrawingRenderedIds return Int32Array.TryGetFromCache(ret); } } - + /// /// インスタンスを取得します。 /// @@ -8473,18 +8081,18 @@ internal static CullingSystem GetInstance() var ret = cbg_CullingSystem_GetInstance(); return CullingSystem.TryGetFromCache(ret); } - + public static bool Initialize() { var ret = cbg_CullingSystem_Initialize(); return ret; } - + public static void Terminate() { cbg_CullingSystem_Terminate(); } - + /// /// Renderedをカリングシステムに登録します。 /// @@ -8493,7 +8101,7 @@ internal void Register(Rendered rendered) { cbg_CullingSystem_Register(selfPtr, rendered != null ? rendered.selfPtr : IntPtr.Zero); } - + /// /// RenderedのAABBを更新します。 /// @@ -8501,12 +8109,12 @@ internal void UpdateAABB() { cbg_CullingSystem_UpdateAABB(selfPtr); } - + public void Cull(RectF rect) { cbg_CullingSystem_Cull(selfPtr, rect); } - + /// /// Renderedをカリングシステムから登録解除します。 /// @@ -8515,13 +8123,13 @@ internal void Unregister(Rendered rendered) { cbg_CullingSystem_Unregister(selfPtr, rendered != null ? rendered.selfPtr : IntPtr.Zero); } - + /// /// のインスタンスを削除します。 /// ~CullingSystem() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -8531,7 +8139,7 @@ internal void Unregister(Rendered rendered) } } } - + /// /// 描画されるオブジェクトの基本クラスを表します /// @@ -8539,16 +8147,16 @@ internal void Unregister(Rendered rendered) internal partial class Rendered : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Rendered TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Rendered cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -8562,12 +8170,12 @@ public static Rendered TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Rendered(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] @@ -8576,25 +8184,25 @@ public static Rendered TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Rendered_SetTransform(IntPtr selfPtr, Matrix44F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Rendered_GetId(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Rendered_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Rendered(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 変換行列を取得または設定します。 /// @@ -8616,7 +8224,7 @@ internal Matrix44F Transform } } private Matrix44F? _Transform; - + /// /// BaseObjectのIdを取得します。 /// @@ -8628,15 +8236,15 @@ internal int Id return ret; } } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Transform = "S_Transform"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -8646,15 +8254,15 @@ internal int Id protected Rendered(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + Transform = info.GetValue(S_Transform); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -8664,14 +8272,14 @@ protected Rendered(SerializationInfo info, StreamingContext context) : this(new protected virtual void GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Transform, Transform); - + OnGetObjectData(info, context); } [EditorBrowsable(EditorBrowsableState.Never)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) => GetObjectData(info, context); - + /// /// 内で実行されます。 /// @@ -8679,7 +8287,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -8687,7 +8295,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -8696,7 +8304,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -8707,12 +8315,12 @@ protected private virtual IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -8722,20 +8330,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Rendered_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Rendered() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -8745,7 +8353,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// カメラのクラス /// @@ -8753,16 +8361,16 @@ IntPtr ICacheKeeper.Self internal sealed partial class RenderedCamera : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static RenderedCamera TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { RenderedCamera cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -8776,59 +8384,59 @@ public static RenderedCamera TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new RenderedCamera(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedCamera_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedCamera_GetTargetTexture(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedCamera_SetTargetTexture(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern RenderPassParameter cbg_RenderedCamera_GetRenderPassParameter(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedCamera_SetRenderPassParameter(IntPtr selfPtr, RenderPassParameter value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_RenderedCamera_GetProjectionMatrix(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_RenderedCamera_GetViewMatrix(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedCamera_SetViewMatrix(IntPtr selfPtr, Matrix44F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedCamera_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal RenderedCamera(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// TargetTextureを取得または設定します。 /// @@ -8850,7 +8458,7 @@ internal RenderTexture TargetTexture } } private RenderTexture _TargetTexture; - + /// /// RenderPassParameterを取得または設定します。 /// @@ -8872,7 +8480,7 @@ internal RenderPassParameter RenderPassParameter } } private RenderPassParameter? _RenderPassParameter; - + public Matrix44F ProjectionMatrix { get @@ -8881,7 +8489,7 @@ public Matrix44F ProjectionMatrix return ret; } } - + /// /// RenderPassParameterを取得または設定します。 /// @@ -8903,7 +8511,7 @@ internal Matrix44F ViewMatrix } } private Matrix44F? _ViewMatrix; - + /// /// RenderedCameraを作成します。 /// @@ -8912,10 +8520,10 @@ internal static RenderedCamera Create() var ret = cbg_RenderedCamera_Create(); return RenderedCamera.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_TargetTexture = "S_TargetTexture"; @@ -8924,7 +8532,7 @@ internal static RenderedCamera Create() [EditorBrowsable(EditorBrowsableState.Never)] private const string S_ViewMatrix = "S_ViewMatrix"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -8934,19 +8542,19 @@ internal static RenderedCamera Create() private RenderedCamera(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + var TargetTexture = info.GetValue(S_TargetTexture); ((IDeserializationCallback)TargetTexture)?.OnDeserialization(null); this.TargetTexture = TargetTexture; RenderPassParameter = info.GetValue(S_RenderPassParameter); ViewMatrix = info.GetValue(S_ViewMatrix); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -8956,14 +8564,14 @@ private RenderedCamera(SerializationInfo info, StreamingContext context) : this( void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_TargetTexture, TargetTexture); info.AddValue(S_RenderPassParameter, RenderPassParameter); info.AddValue(S_ViewMatrix, ViewMatrix); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -8971,7 +8579,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -8979,7 +8587,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -8988,7 +8596,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -8999,12 +8607,12 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -9014,20 +8622,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_RenderedCamera_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~RenderedCamera() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -9037,7 +8645,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// スプライトのクラス /// @@ -9045,16 +8653,16 @@ IntPtr ICacheKeeper.Self internal sealed partial class RenderedSprite : Rendered, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new RenderedSprite TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { RenderedSprite cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -9068,68 +8676,68 @@ internal sealed partial class RenderedSprite : Rendered, ISerializable, ICacheKe cacheRepo.Remove(native); } } - + var newObject = new RenderedSprite(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedSprite_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern AlphaBlend cbg_RenderedSprite_GetAlphaBlend(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_SetAlphaBlend(IntPtr selfPtr, AlphaBlend value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern RectF cbg_RenderedSprite_GetSrc(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_SetSrc(IntPtr selfPtr, RectF value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Color cbg_RenderedSprite_GetColor(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_SetColor(IntPtr selfPtr, Color value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedSprite_GetTexture(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_SetTexture(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedSprite_GetMaterial(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_SetMaterial(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedSprite_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal RenderedSprite(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 描画時のアルファブレンドを取得または設定します。 /// @@ -9151,7 +8759,7 @@ internal AlphaBlend AlphaBlend } } private AlphaBlend? _AlphaBlend; - + /// /// 描画範囲を取得または設定します。 /// @@ -9173,7 +8781,7 @@ internal RectF Src } } private RectF? _Src; - + /// /// 色を取得または設定します。 /// @@ -9195,7 +8803,7 @@ internal Color Color } } private Color? _Color; - + /// /// テクスチャを取得または設定します。 /// @@ -9217,7 +8825,7 @@ internal TextureBase Texture } } private TextureBase _Texture; - + /// /// マテリアルを取得または設定します。 /// @@ -9239,7 +8847,7 @@ internal Material Material } } private Material _Material; - + /// /// スプライトを作成します。 /// @@ -9248,10 +8856,10 @@ internal static RenderedSprite Create() var ret = cbg_RenderedSprite_Create(); return RenderedSprite.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_AlphaBlend = "S_AlphaBlend"; @@ -9264,7 +8872,7 @@ internal static RenderedSprite Create() [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Material = "S_Material"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -9275,10 +8883,10 @@ private RenderedSprite(SerializationInfo info, StreamingContext context) : base( { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + AlphaBlend = info.GetValue(S_AlphaBlend); Src = info.GetValue(S_Src); Color = info.GetValue(S_Color); @@ -9286,10 +8894,10 @@ private RenderedSprite(SerializationInfo info, StreamingContext context) : base( ((IDeserializationCallback)Texture)?.OnDeserialization(null); this.Texture = Texture; Material = info.GetValue(S_Material); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -9299,16 +8907,16 @@ private RenderedSprite(SerializationInfo info, StreamingContext context) : base( protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_AlphaBlend, AlphaBlend); info.AddValue(S_Src, Src); info.AddValue(S_Color, Color); info.AddValue(S_Texture, Texture); info.AddValue(S_Material, Material); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -9316,7 +8924,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -9324,7 +8932,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -9333,7 +8941,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -9344,12 +8952,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -9359,20 +8967,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_RenderedSprite_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~RenderedSprite() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -9382,7 +8990,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// テキストのクラス /// @@ -9390,16 +8998,16 @@ IntPtr ICacheKeeper.Self internal sealed partial class RenderedText : Rendered, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new RenderedText TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { RenderedText cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -9413,64 +9021,64 @@ internal sealed partial class RenderedText : Rendered, ISerializable, ICacheKeep cacheRepo.Remove(native); } } - + var newObject = new RenderedText(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedText_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern AlphaBlend cbg_RenderedText_GetAlphaBlend(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetAlphaBlend(IntPtr selfPtr, AlphaBlend value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedText_GetMaterialGlyph(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetMaterialGlyph(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedText_GetMaterialImage(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetMaterialImage(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Color cbg_RenderedText_GetColor(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetColor(IntPtr selfPtr, Color value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedText_GetFont(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetFont(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedText_GetText(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -9478,57 +9086,57 @@ internal sealed partial class RenderedText : Rendered, ISerializable, ICacheKeep [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetIsEnableKerning(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_RenderedText_GetWritingDirection(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetWritingDirection(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_RenderedText_GetCharacterSpace(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetCharacterSpace(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_RenderedText_GetLineGap(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetLineGap(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_RenderedText_GetFontSize(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_SetFontSize(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_RenderedText_GetRenderingSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedText_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal RenderedText(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 描画時のアルファブレンドを取得または設定します。 /// @@ -9550,7 +9158,7 @@ internal AlphaBlend AlphaBlend } } private AlphaBlend? _AlphaBlend; - + /// /// 文字の描画に使用するマテリアルを取得または設定します。 /// @@ -9572,7 +9180,7 @@ internal Material MaterialGlyph } } private Material _MaterialGlyph; - + /// /// テクスチャ文字の描画に使用するマテリアルを取得または設定します。 /// @@ -9594,7 +9202,7 @@ internal Material MaterialImage } } private Material _MaterialImage; - + /// /// 色を取得または設定します。 /// @@ -9616,7 +9224,7 @@ internal Color Color } } private Color? _Color; - + /// /// フォントを取得または設定します。 /// @@ -9638,7 +9246,7 @@ internal Font Font } } private Font _Font; - + /// /// テキストを取得または設定します。 /// @@ -9660,7 +9268,7 @@ internal string Text } } private string _Text; - + /// /// カーニングの有無を取得または設定します。 /// @@ -9682,7 +9290,7 @@ internal bool IsEnableKerning } } private bool? _IsEnableKerning; - + /// /// 行の方向を取得または設定します。 /// @@ -9704,7 +9312,7 @@ internal WritingDirection WritingDirection } } private WritingDirection? _WritingDirection; - + /// /// 字間をピクセル単位で取得または設定します。 /// @@ -9726,7 +9334,7 @@ internal float CharacterSpace } } private float? _CharacterSpace; - + /// /// 行間をピクセル単位で取得または設定します。 /// @@ -9748,7 +9356,7 @@ internal float LineGap } } private float? _LineGap; - + internal float FontSize { get @@ -9767,7 +9375,7 @@ internal float FontSize } } private float? _FontSize; - + public Vector2F RenderingSize { get @@ -9776,7 +9384,7 @@ public Vector2F RenderingSize return ret; } } - + /// /// テキストを作成します。 /// @@ -9785,10 +9393,10 @@ internal static RenderedText Create() var ret = cbg_RenderedText_Create(); return RenderedText.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_AlphaBlend = "S_AlphaBlend"; @@ -9813,7 +9421,7 @@ internal static RenderedText Create() [EditorBrowsable(EditorBrowsableState.Never)] private const string S_FontSize = "S_FontSize"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -9824,10 +9432,10 @@ private RenderedText(SerializationInfo info, StreamingContext context) : base(in { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + AlphaBlend = info.GetValue(S_AlphaBlend); MaterialGlyph = info.GetValue(S_MaterialGlyph); MaterialImage = info.GetValue(S_MaterialImage); @@ -9841,10 +9449,10 @@ private RenderedText(SerializationInfo info, StreamingContext context) : base(in CharacterSpace = info.GetSingle(S_CharacterSpace); LineGap = info.GetSingle(S_LineGap); FontSize = info.GetSingle(S_FontSize); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -9854,7 +9462,7 @@ private RenderedText(SerializationInfo info, StreamingContext context) : base(in protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_AlphaBlend, AlphaBlend); info.AddValue(S_MaterialGlyph, MaterialGlyph); info.AddValue(S_MaterialImage, MaterialImage); @@ -9866,10 +9474,10 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c info.AddValue(S_CharacterSpace, CharacterSpace); info.AddValue(S_LineGap, LineGap); info.AddValue(S_FontSize, FontSize); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -9877,7 +9485,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -9885,7 +9493,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -9894,7 +9502,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -9905,12 +9513,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -9920,20 +9528,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_RenderedText_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~RenderedText() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -9943,7 +9551,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// ポリゴンのクラス /// @@ -9951,16 +9559,16 @@ IntPtr ICacheKeeper.Self internal sealed partial class RenderedPolygon : Rendered, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new RenderedPolygon TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { RenderedPolygon cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -9974,88 +9582,88 @@ internal sealed partial class RenderedPolygon : Rendered, ISerializable, ICacheK cacheRepo.Remove(native); } } - + var newObject = new RenderedPolygon(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedPolygon_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_CreateVertexesByVector2F(IntPtr selfPtr, IntPtr vectors); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_OverwriteVertexesColor(IntPtr selfPtr, Color color); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetDefaultIndexBuffer(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern AlphaBlend cbg_RenderedPolygon_GetAlphaBlend(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetAlphaBlend(IntPtr selfPtr, AlphaBlend value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedPolygon_GetBuffers(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetBuffers(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedPolygon_GetVertexes(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetVertexes(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern RectF cbg_RenderedPolygon_GetSrc(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetSrc(IntPtr selfPtr, RectF value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedPolygon_GetTexture(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetTexture(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_RenderedPolygon_GetMaterial(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_SetMaterial(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_RenderedPolygon_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal RenderedPolygon(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 描画時のアルファブレンドを取得または設定します。 /// @@ -10077,7 +9685,7 @@ internal AlphaBlend AlphaBlend } } private AlphaBlend? _AlphaBlend; - + /// /// 頂点情報を取得または設定します。 /// @@ -10099,7 +9707,7 @@ internal VertexArray Vertexes } } private VertexArray _Vertexes; - + /// /// 描画範囲を取得または設定します。 /// @@ -10121,7 +9729,7 @@ internal RectF Src } } private RectF? _Src; - + /// /// テクスチャを取得または設定します。 /// @@ -10143,7 +9751,7 @@ internal TextureBase Texture } } private TextureBase _Texture; - + /// /// マテリアルを取得または設定します。 /// @@ -10165,7 +9773,7 @@ internal Material Material } } private Material _Material; - + /// /// ポリゴンを作成します。 /// @@ -10174,7 +9782,7 @@ internal static RenderedPolygon Create() var ret = cbg_RenderedPolygon_Create(); return RenderedPolygon.TryGetFromCache(ret); } - + /// /// 頂点情報 /// @@ -10182,7 +9790,7 @@ internal void CreateVertexesByVector2F(Vector2FArray vectors) { cbg_RenderedPolygon_CreateVertexesByVector2F(selfPtr, vectors != null ? vectors.selfPtr : IntPtr.Zero); } - + /// /// 頂点情報 /// @@ -10190,10 +9798,10 @@ internal void OverwriteVertexesColor(Color color) { cbg_RenderedPolygon_OverwriteVertexesColor(selfPtr, color); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_AlphaBlend = "S_AlphaBlend"; @@ -10208,7 +9816,7 @@ internal void OverwriteVertexesColor(Color color) [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Material = "S_Material"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -10219,10 +9827,10 @@ private RenderedPolygon(SerializationInfo info, StreamingContext context) : base { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + AlphaBlend = info.GetValue(S_AlphaBlend); Buffers = info.GetValue(S_Buffers); Vertexes = info.GetValue(S_Vertexes); @@ -10231,10 +9839,10 @@ private RenderedPolygon(SerializationInfo info, StreamingContext context) : base ((IDeserializationCallback)Texture)?.OnDeserialization(null); this.Texture = Texture; Material = info.GetValue(S_Material); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -10244,17 +9852,17 @@ private RenderedPolygon(SerializationInfo info, StreamingContext context) : base protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_AlphaBlend, AlphaBlend); info.AddValue(S_Buffers, Buffers); info.AddValue(S_Vertexes, Vertexes); info.AddValue(S_Src, Src); info.AddValue(S_Texture, Texture); info.AddValue(S_Material, Material); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -10262,7 +9870,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -10270,7 +9878,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -10279,7 +9887,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -10290,12 +9898,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -10305,20 +9913,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_RenderedPolygon_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~RenderedPolygon() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10328,23 +9936,23 @@ IntPtr ICacheKeeper.Self } } } - + /// /// レンダラのクラス /// internal sealed partial class Renderer { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Renderer TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Renderer cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -10358,64 +9966,64 @@ public static Renderer TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Renderer(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Renderer_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Renderer_Initialize(IntPtr window, IntPtr graphics, IntPtr cullingSystem); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_Terminate(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_DrawPolygon(IntPtr selfPtr, IntPtr polygon); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_DrawSprite(IntPtr selfPtr, IntPtr sprite); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_DrawText(IntPtr selfPtr, IntPtr text); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_Render(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_ResetCamera(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_SetCamera(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Renderer_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Renderer(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + internal RenderedCamera Camera { set @@ -10423,7 +10031,7 @@ internal RenderedCamera Camera cbg_Renderer_SetCamera(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); } } - + /// /// インスタンスを取得します。 /// @@ -10432,18 +10040,18 @@ internal static Renderer GetInstance() var ret = cbg_Renderer_GetInstance(); return Renderer.TryGetFromCache(ret); } - + public static bool Initialize(Window window, Graphics graphics, CullingSystem cullingSystem) { var ret = cbg_Renderer_Initialize(window != null ? window.selfPtr : IntPtr.Zero, graphics != null ? graphics.selfPtr : IntPtr.Zero, cullingSystem != null ? cullingSystem.selfPtr : IntPtr.Zero); return ret; } - + public static void Terminate() { cbg_Renderer_Terminate(); } - + /// /// ポリゴンを描画します。 /// @@ -10452,7 +10060,7 @@ internal void DrawPolygon(RenderedPolygon polygon) { cbg_Renderer_DrawPolygon(selfPtr, polygon != null ? polygon.selfPtr : IntPtr.Zero); } - + /// /// スプライトを描画します。 /// @@ -10461,7 +10069,7 @@ internal void DrawSprite(RenderedSprite sprite) { cbg_Renderer_DrawSprite(selfPtr, sprite != null ? sprite.selfPtr : IntPtr.Zero); } - + /// /// テキストを描画します。 /// @@ -10470,7 +10078,7 @@ internal void DrawText(RenderedText text) { cbg_Renderer_DrawText(selfPtr, text != null ? text.selfPtr : IntPtr.Zero); } - + /// /// コマンドリストを描画します。 /// @@ -10478,7 +10086,7 @@ internal void Render() { cbg_Renderer_Render(selfPtr); } - + /// /// 使用するカメラの設定をリセットします。 /// @@ -10486,13 +10094,13 @@ internal void ResetCamera() { cbg_Renderer_ResetCamera(selfPtr); } - + /// /// のインスタンスを削除します。 /// ~Renderer() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10502,23 +10110,23 @@ internal void ResetCamera() } } } - + /// /// /// public partial class ShaderCompiler { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static ShaderCompiler TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { ShaderCompiler cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -10532,62 +10140,62 @@ public static ShaderCompiler TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new ShaderCompiler(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ShaderCompiler_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_ShaderCompiler_Initialize(IntPtr graphics, IntPtr file); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ShaderCompiler_Terminate(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ShaderCompiler_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal ShaderCompiler(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + public static ShaderCompiler GetInstance() { var ret = cbg_ShaderCompiler_GetInstance(); return ShaderCompiler.TryGetFromCache(ret); } - + public static bool Initialize(Graphics graphics, File file) { var ret = cbg_ShaderCompiler_Initialize(graphics != null ? graphics.selfPtr : IntPtr.Zero, file != null ? file.selfPtr : IntPtr.Zero); return ret; } - + public static void Terminate() { cbg_ShaderCompiler_Terminate(); } - + /// /// のインスタンスを削除します。 /// ~ShaderCompiler() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10597,7 +10205,7 @@ public static void Terminate() } } } - + /// /// 段階的にファイルを読み取るクラス /// @@ -10605,16 +10213,16 @@ public static void Terminate() public sealed partial class StreamFile : ISerializable, ICacheKeeper, IDeserializationCallback { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static ConcurrentDictionary> cacheRepo = new ConcurrentDictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] internal static StreamFile TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { StreamFile cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -10628,70 +10236,70 @@ internal static StreamFile TryGetFromCache(IntPtr native) cacheRepo.TryRemove(native, out _); } } - + var newObject = new StreamFile(new MemoryHandle(native)); cacheRepo.TryAdd(native, new WeakReference(newObject)); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StreamFile_Create([MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_StreamFile_Read(IntPtr selfPtr, int size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_StreamFile_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_StreamFile_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_StreamFile_GetCurrentPosition(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StreamFile_GetInt8ArrayTempBuffer(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_StreamFile_GetTempBufferSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_StreamFile_GetIsInPackage(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_StreamFile_GetPath(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_StreamFile_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal StreamFile(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 読み込むファイルのデータサイズを取得します。 /// @@ -10703,7 +10311,7 @@ public int Size return ret; } } - + /// /// 現在読み込んでいるファイル上の位置を取得します。 /// @@ -10715,7 +10323,7 @@ public int CurrentPosition return ret; } } - + internal Int8Array Int8ArrayTempBuffer { get @@ -10724,7 +10332,7 @@ internal Int8Array Int8ArrayTempBuffer return Int8Array.TryGetFromCache(ret); } } - + /// /// 現在読み込んでいるファイルのデータサイズを取得します。 /// @@ -10736,7 +10344,7 @@ public int TempBufferSize return ret; } } - + /// /// 読み込むファイルがファイルパッケージ内に格納されているかどうかを取得します。 /// @@ -10748,7 +10356,7 @@ public bool IsInPackage return ret; } } - + /// /// 読み込んだファイルのパスを取得します。 /// @@ -10760,7 +10368,7 @@ public string Path return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 指定ファイルを読み込むの新しいインスタンスを生成します。 /// @@ -10772,7 +10380,7 @@ public static StreamFile Create(string path) var ret = cbg_StreamFile_Create(path); return StreamFile.TryGetFromCache(ret); } - + /// /// 指定した分ファイルを読み込みます。 /// @@ -10782,7 +10390,7 @@ public int Read(int size) var ret = cbg_StreamFile_Read(selfPtr, size); return ret; } - + /// /// 再読み込みを行います。 /// @@ -10791,20 +10399,20 @@ public bool Reload() var ret = cbg_StreamFile_Reload(selfPtr); return ret; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_CurrentPosition = "S_CurrentPosition"; [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Path = "S_Path"; #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] private SerializationInfo seInfo; - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -10814,10 +10422,10 @@ public bool Reload() private StreamFile(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { seInfo = info; - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -10827,13 +10435,13 @@ private StreamFile(SerializationInfo info, StreamingContext context) : this(new void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_CurrentPosition, CurrentPosition); info.AddValue(S_Path, Path); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -10841,7 +10449,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -10849,7 +10457,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出されます。 /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -10858,7 +10466,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -10869,7 +10477,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -10882,12 +10490,12 @@ private void StreamFile_Unsetter_Deserialize(SerializationInfo info, out int Cur CurrentPosition = info.GetInt32(S_CurrentPosition); Path = info.GetString(S_Path); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -10897,14 +10505,14 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_StreamFile_Release(native); - + #endregion - + #endregion - + /// /// デシリアライズ時に実行 /// @@ -10913,15 +10521,15 @@ IntPtr ICacheKeeper.Self void IDeserializationCallback.OnDeserialization(object sender) { if (seInfo == null) return; - + var ptr = Call_GetPtr(seInfo); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserializationConcurrent(this, ptr); - - + + OnDeserialize_Method(sender); - + seInfo = null; } /// @@ -10930,13 +10538,13 @@ void IDeserializationCallback.OnDeserialization(object sender) /// 現在はサポートされていない 常にnullを返す [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Method(object sender); - + /// /// のインスタンスを削除します。 /// ~StreamFile() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -10946,23 +10554,23 @@ void IDeserializationCallback.OnDeserialization(object sender) } } } - + /// /// カーソルを表します。 /// public sealed partial class Cursor { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Cursor TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Cursor cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -10976,30 +10584,30 @@ public static Cursor TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Cursor(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Cursor_Create([MarshalAs(UnmanagedType.LPWStr)] string path, Vector2I hot); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Cursor_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Cursor(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 指定したpng画像を読み込んだのインスタンスを生成します。 /// @@ -11012,13 +10620,13 @@ public static Cursor Create(string path, Vector2I hot) var ret = cbg_Cursor_Create(path, hot); return Cursor.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~Cursor() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11028,23 +10636,23 @@ public static Cursor Create(string path, Vector2I hot) } } } - + /// /// ジョイスティックコントローラを表します。 /// public partial class JoystickInfo { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static JoystickInfo TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { JoystickInfo cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -11058,82 +10666,82 @@ public static JoystickInfo TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new JoystickInfo(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_JoystickInfo_IsJoystickType(IntPtr selfPtr, int type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_JoystickInfo_GetName(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetButtonCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetAxisCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_JoystickInfo_GetIsGamepad(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_JoystickInfo_GetGamepadName(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_JoystickInfo_GetGUID(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetBustype(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetVendor(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetProduct(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_JoystickInfo_GetVersion(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_JoystickInfo_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal JoystickInfo(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// ジョイスティックの名前を取得します。 /// @@ -11145,7 +10753,7 @@ public string Name return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + public int ButtonCount { get @@ -11154,7 +10762,7 @@ public int ButtonCount return ret; } } - + public int AxisCount { get @@ -11163,7 +10771,7 @@ public int AxisCount return ret; } } - + /// /// ジョイスティックがGamepadとして使えるかどうかを取得します。 /// @@ -11175,7 +10783,7 @@ public bool IsGamepad return ret; } } - + /// /// ジョイスティックがGamepadとして使える時、その名前を取得します。 /// @@ -11187,7 +10795,7 @@ public string GamepadName return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + public string GUID { get @@ -11196,7 +10804,7 @@ public string GUID return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + public int Bustype { get @@ -11205,7 +10813,7 @@ public int Bustype return ret; } } - + /// /// 製造者IDを取得します。 /// @@ -11217,7 +10825,7 @@ public int Vendor return ret; } } - + /// /// 製品IDを取得します。 /// @@ -11229,7 +10837,7 @@ public int Product return ret; } } - + /// /// ジョイスティックのバージョンを取得します。 /// @@ -11241,7 +10849,7 @@ public int Version return ret; } } - + /// /// 指定したジョイスティックの種類に合致するかどうかを取得します。 /// @@ -11250,13 +10858,13 @@ public bool IsJoystickType(JoystickType type) var ret = cbg_JoystickInfo_IsJoystickType(selfPtr, (int)type); return ret; } - + /// /// のインスタンスを削除します。 /// ~JoystickInfo() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11266,23 +10874,23 @@ public bool IsJoystickType(JoystickType type) } } } - + /// /// ジョイスティックを表すクラス /// public sealed partial class Joystick { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Joystick TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Joystick cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -11296,64 +10904,64 @@ public static Joystick TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Joystick(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Joystick_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Joystick_RefreshInputState(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Joystick_IsPresent(IntPtr selfPtr, int joystickIndex); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Joystick_GetJoystickInfo(IntPtr selfPtr, int joystickIndex); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Joystick_GetButtonStateByIndex(IntPtr selfPtr, int joystickIndex, int buttonIndex); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Joystick_GetButtonStateByType(IntPtr selfPtr, int joystickIndex, int type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Joystick_GetAxisStateByIndex(IntPtr selfPtr, int joystickIndex, int axisIndex); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Joystick_GetAxisStateByType(IntPtr selfPtr, int joystickIndex, int type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Joystick_GetConnectedJoystickCount(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Joystick_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Joystick(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 接続されているジョイスティックの数を取得します。 /// @@ -11365,7 +10973,7 @@ public int ConnectedJoystickCount return ret; } } - + /// /// インスタンスを取得します。 /// @@ -11374,12 +10982,12 @@ internal static Joystick GetInstance() var ret = cbg_Joystick_GetInstance(); return Joystick.TryGetFromCache(ret); } - + public void RefreshInputState() { cbg_Joystick_RefreshInputState(selfPtr); } - + /// /// 指定したジョイスティックが存在しているかどうかを取得します。 /// @@ -11389,7 +10997,7 @@ public bool IsPresent(int joystickIndex) var ret = cbg_Joystick_IsPresent(selfPtr, joystickIndex); return ret; } - + /// /// 指定したジョイスティックの情報を取得します。 /// @@ -11399,13 +11007,13 @@ public JoystickInfo GetJoystickInfo(int joystickIndex) var ret = cbg_Joystick_GetJoystickInfo(selfPtr, joystickIndex); return JoystickInfo.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~Joystick() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11415,23 +11023,23 @@ public JoystickInfo GetJoystickInfo(int joystickIndex) } } } - + /// /// キーボードを表します。 /// public sealed partial class Keyboard { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Keyboard TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Keyboard cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -11445,38 +11053,38 @@ public static Keyboard TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Keyboard(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Keyboard_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Keyboard_RefleshKeyStates(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Keyboard_GetKeyState(IntPtr selfPtr, int key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Keyboard_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Keyboard(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// インスタンスを取得します。 /// @@ -11485,12 +11093,12 @@ internal static Keyboard GetInstance() var ret = cbg_Keyboard_GetInstance(); return Keyboard.TryGetFromCache(ret); } - + public void RefleshKeyStates() { cbg_Keyboard_RefleshKeyStates(selfPtr); } - + /// /// キーの状態を取得します。 /// @@ -11500,13 +11108,13 @@ public ButtonState GetKeyState(Key key) var ret = cbg_Keyboard_GetKeyState(selfPtr, (int)key); return (ButtonState)ret; } - + /// /// のインスタンスを削除します。 /// ~Keyboard() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11516,23 +11124,23 @@ public ButtonState GetKeyState(Key key) } } } - + /// /// マウスを表します。 /// public sealed partial class Mouse { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Mouse TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Mouse cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -11546,30 +11154,26 @@ public static Mouse TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Mouse(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Mouse_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_RefreshInputState(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Mouse_GetMouseButtonState(IntPtr selfPtr, int button); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Mouse_SetMouseButtonState(IntPtr selfPtr, int button, int state); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_SetMouseButtonState(IntPtr selfPtr, int button, int state); @@ -11580,38 +11184,38 @@ public static Mouse TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_SetPosition(IntPtr selfPtr, Vector2F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Mouse_GetWheel(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Mouse_GetCursorMode(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_SetCursorMode(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_SetCursorImage(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Mouse_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Mouse(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// マウスカーソルの座標を取得または設定します。 /// @@ -11633,7 +11237,7 @@ public Vector2F Position } } private Vector2F? _Position; - + /// /// マウスホイールの回転量を取得します。 /// @@ -11645,7 +11249,7 @@ public float Wheel return ret; } } - + /// /// カーソルのモードを取得または設定します。 /// @@ -11667,7 +11271,7 @@ public CursorMode CursorMode } } private CursorMode? _CursorMode; - + public Cursor CursorImage { set @@ -11675,7 +11279,7 @@ public Cursor CursorImage cbg_Mouse_SetCursorImage(selfPtr, value != null ? value.selfPtr : IntPtr.Zero); } } - + /// /// インスタンスを取得します。 /// @@ -11684,12 +11288,12 @@ internal static Mouse GetInstance() var ret = cbg_Mouse_GetInstance(); return Mouse.TryGetFromCache(ret); } - + public void RefreshInputState() { cbg_Mouse_RefreshInputState(selfPtr); } - + /// /// マウスボタンの状態を取得します。 /// @@ -11699,18 +11303,18 @@ public ButtonState GetMouseButtonState(MouseButton button) var ret = cbg_Mouse_GetMouseButtonState(selfPtr, (int)button); return (ButtonState)ret; } - + public void SetMouseButtonState(MouseButton button, ButtonState state) { cbg_Mouse_SetMouseButtonState(selfPtr, (int)button, (int)state); } - + /// /// のインスタンスを削除します。 /// ~Mouse() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11720,23 +11324,23 @@ public void SetMouseButtonState(MouseButton button, ButtonState state) } } } - + /// /// 映像を再生するクラス /// public partial class MediaPlayer { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static MediaPlayer TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { MediaPlayer cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -11750,50 +11354,50 @@ public static MediaPlayer TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new MediaPlayer(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_MediaPlayer_Play(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool isLoopingMode); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_MediaPlayer_WriteToRenderTexture(IntPtr selfPtr, IntPtr target); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_MediaPlayer_Load([MarshalAs(UnmanagedType.LPWStr)] string path); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2I cbg_MediaPlayer_GetSize(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_MediaPlayer_GetCurrentFrame(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_MediaPlayer_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal MediaPlayer(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// 映像の大きさを取得します。 /// @@ -11805,7 +11409,7 @@ public Vector2I Size return ret; } } - + /// /// 映像の現在のフレーム番号を取得します。 /// @@ -11817,7 +11421,7 @@ public int CurrentFrame return ret; } } - + /// /// 映像を再生します。 /// @@ -11827,7 +11431,7 @@ public bool Play(bool isLoopingMode) var ret = cbg_MediaPlayer_Play(selfPtr, isLoopingMode); return ret; } - + /// /// 現在の映像のフレームをテクスチャに書き込みます。映像とテクスチャは同じサイズである必要があります。 /// @@ -11837,7 +11441,7 @@ public bool WriteToRenderTexture(RenderTexture target) var ret = cbg_MediaPlayer_WriteToRenderTexture(selfPtr, target != null ? target.selfPtr : IntPtr.Zero); return ret; } - + /// /// 映像を読み込みます。 /// @@ -11847,13 +11451,13 @@ public static MediaPlayer Load(string path) var ret = cbg_MediaPlayer_Load(path); return MediaPlayer.TryGetFromCache(ret); } - + /// /// のインスタンスを削除します。 /// ~MediaPlayer() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -11863,7 +11467,7 @@ public static MediaPlayer Load(string path) } } } - + /// /// コライダの抽象基本クラスです /// @@ -11871,16 +11475,16 @@ public static MediaPlayer Load(string path) public partial class Collider : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Collider TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Collider cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -11894,63 +11498,63 @@ public static Collider TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Collider(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Collider_GetIsCollidedWith(IntPtr selfPtr, IntPtr collider); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Collider_GetPosition(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Collider_SetPosition(IntPtr selfPtr, Vector2F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Collider_GetRotation(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Collider_SetRotation(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Matrix44F cbg_Collider_GetTransform(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Collider_SetTransform(IntPtr selfPtr, Matrix44F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Collider_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Collider(MemoryHandle handle) { selfPtr = handle.selfPtr; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Transform = "S_Transform"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -11960,15 +11564,15 @@ internal Collider(MemoryHandle handle) protected Collider(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + Transform = info.GetValue(S_Transform); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -11978,14 +11582,14 @@ protected Collider(SerializationInfo info, StreamingContext context) : this(new protected virtual void GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_Transform, Transform); - + OnGetObjectData(info, context); } [EditorBrowsable(EditorBrowsableState.Never)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) => GetObjectData(info, context); - + /// /// 内で実行されます。 /// @@ -11993,7 +11597,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -12001,7 +11605,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -12010,7 +11614,7 @@ protected virtual void GetObjectData(SerializationInfo info, StreamingContext co /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -12021,12 +11625,12 @@ protected private virtual IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -12036,20 +11640,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Collider_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Collider() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -12059,7 +11663,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 図形コライダのクラス /// @@ -12067,16 +11671,16 @@ IntPtr ICacheKeeper.Self public partial class ShapeCollider : Collider, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new ShapeCollider TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { ShapeCollider cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -12090,36 +11694,36 @@ public partial class ShapeCollider : Collider, ISerializable, ICacheKeeper(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ShapeCollider_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_ShapeCollider_GetVertexes(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ShapeCollider_SetVertexes(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_ShapeCollider_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal ShapeCollider(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 頂点座標を取得または設定します。 /// @@ -12141,15 +11745,15 @@ internal Vector2FArray Vertexes } } private Vector2FArray _Vertexes; - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Vertexes = "S_Vertexes"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -12160,15 +11764,15 @@ protected ShapeCollider(SerializationInfo info, StreamingContext context) : base { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + Vertexes = info.GetValue(S_Vertexes); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -12178,12 +11782,12 @@ protected ShapeCollider(SerializationInfo info, StreamingContext context) : base protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_Vertexes, Vertexes); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -12191,7 +11795,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -12199,7 +11803,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -12208,7 +11812,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -12219,12 +11823,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -12234,20 +11838,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_ShapeCollider_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~ShapeCollider() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -12257,7 +11861,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 多角形コライダのクラス /// @@ -12265,16 +11869,16 @@ IntPtr ICacheKeeper.Self public partial class PolygonCollider : Collider, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new PolygonCollider TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { PolygonCollider cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -12288,48 +11892,48 @@ public partial class PolygonCollider : Collider, ISerializable, ICacheKeeper(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_PolygonCollider_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_PolygonCollider_SetDefaultIndexBuffer(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_PolygonCollider_GetBuffers(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_PolygonCollider_SetBuffers(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_PolygonCollider_GetVertexes(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_PolygonCollider_SetVertexes(IntPtr selfPtr, IntPtr value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_PolygonCollider_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal PolygonCollider(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 多角形コライダを作成します。 /// @@ -12338,13 +11942,13 @@ public static PolygonCollider Create() var ret = cbg_PolygonCollider_Create(); return PolygonCollider.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -12355,14 +11959,14 @@ protected PolygonCollider(SerializationInfo info, StreamingContext context) : ba { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - - + + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -12372,11 +11976,11 @@ protected PolygonCollider(SerializationInfo info, StreamingContext context) : ba protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - - + + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -12384,7 +11988,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -12392,7 +11996,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -12401,7 +12005,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -12412,12 +12016,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -12427,20 +12031,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_PolygonCollider_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~PolygonCollider() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -12450,7 +12054,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 線分コライダのクラス /// @@ -12458,16 +12062,16 @@ IntPtr ICacheKeeper.Self public partial class EdgeCollider : Collider, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new EdgeCollider TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { EdgeCollider cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -12481,44 +12085,44 @@ public partial class EdgeCollider : Collider, ISerializable, ICacheKeeper(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_EdgeCollider_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_EdgeCollider_GetPoint1(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_EdgeCollider_SetPoint1(IntPtr selfPtr, Vector2F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_EdgeCollider_GetPoint2(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_EdgeCollider_SetPoint2(IntPtr selfPtr, Vector2F value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_EdgeCollider_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal EdgeCollider(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 線分コライダの端点1を取得または設定します。 /// @@ -12540,7 +12144,7 @@ public Vector2F Point1 } } private Vector2F? _Point1; - + /// /// 線分コライダの端点2を取得または設定します。 /// @@ -12562,7 +12166,7 @@ public Vector2F Point2 } } private Vector2F? _Point2; - + /// /// 線分コライダを作成します。 /// @@ -12571,17 +12175,17 @@ public static EdgeCollider Create() var ret = cbg_EdgeCollider_Create(); return EdgeCollider.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Point1 = "S_Point1"; [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Point2 = "S_Point2"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -12592,16 +12196,16 @@ protected EdgeCollider(SerializationInfo info, StreamingContext context) : base( { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + Point1 = info.GetValue(S_Point1); Point2 = info.GetValue(S_Point2); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -12611,13 +12215,13 @@ protected EdgeCollider(SerializationInfo info, StreamingContext context) : base( protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_Point1, Point1); info.AddValue(S_Point2, Point2); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -12625,7 +12229,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -12633,7 +12237,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -12642,7 +12246,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -12653,12 +12257,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -12668,20 +12272,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_EdgeCollider_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~EdgeCollider() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -12691,7 +12295,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 円形コライダのクラス /// @@ -12699,16 +12303,16 @@ IntPtr ICacheKeeper.Self public partial class CircleCollider : Collider, ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static new CircleCollider TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { CircleCollider cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -12722,36 +12326,36 @@ public partial class CircleCollider : Collider, ISerializable, ICacheKeeper(newObject); return newObject; } - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_CircleCollider_Create(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_CircleCollider_GetRadius(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CircleCollider_SetRadius(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CircleCollider_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal CircleCollider(MemoryHandle handle) : base(handle) { selfPtr = handle.selfPtr; } - + /// /// 円形コライダの半径を取得または設定します。 /// @@ -12773,7 +12377,7 @@ public float Radius } } private float? _Radius; - + /// /// 円形コライダを作成します。 /// @@ -12782,15 +12386,15 @@ public static CircleCollider Create() var ret = cbg_CircleCollider_Create(); return CircleCollider.TryGetFromCache(ret); } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_Radius = "S_Radius"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -12801,15 +12405,15 @@ protected CircleCollider(SerializationInfo info, StreamingContext context) : bas { var ptr = selfPtr; if (ptr == IntPtr.Zero) ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + Radius = info.GetSingle(S_Radius); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -12819,12 +12423,12 @@ protected CircleCollider(SerializationInfo info, StreamingContext context) : bas protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); - + info.AddValue(S_Radius, Radius); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -12832,7 +12436,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -12840,7 +12444,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -12849,7 +12453,7 @@ protected override void GetObjectData(SerializationInfo info, StreamingContext c /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -12860,12 +12464,12 @@ protected private override IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -12875,20 +12479,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_CircleCollider_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~CircleCollider() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -12898,7 +12502,7 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 音源のクラス /// @@ -12906,16 +12510,16 @@ IntPtr ICacheKeeper.Self public sealed partial class Sound : ISerializable, ICacheKeeper { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Sound TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Sound cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -12929,39 +12533,39 @@ public static Sound TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Sound(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Sound_Load([MarshalAs(UnmanagedType.LPWStr)] string path, [MarshalAs(UnmanagedType.Bool)] bool isDecompressed); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Sound_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Sound_GetLoopStartingPoint(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Sound_SetLoopStartingPoint(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Sound_GetLoopEndPoint(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Sound_SetLoopEndPoint(IntPtr selfPtr, float value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] @@ -12969,36 +12573,36 @@ public static Sound TryGetFromCache(IntPtr native) [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Sound_SetIsLoopingMode(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Sound_GetLength(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Sound_GetPath(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Sound_GetIsDecompressed(IntPtr selfPtr); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Sound_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Sound(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// ループ開始地点(秒)を取得または設定します。 /// @@ -13020,7 +12624,7 @@ public float LoopStartingPoint } } private float? _LoopStartingPoint; - + /// /// ループ終了地点(秒)を取得または設定します。 /// @@ -13042,7 +12646,7 @@ public float LoopEndPoint } } private float? _LoopEndPoint; - + /// /// ループするかどうかを取得または設定します。 /// @@ -13064,7 +12668,7 @@ public bool IsLoopingMode } } private bool? _IsLoopingMode; - + /// /// 音源の長さ(秒)を取得します。 /// @@ -13076,7 +12680,7 @@ public float Length return ret; } } - + /// /// 読み込んだファイルのパスを取得します。 /// @@ -13088,7 +12692,7 @@ internal string Path return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } } - + /// /// 音源が解凍されているかどうかを取得します。 /// @@ -13100,7 +12704,7 @@ public bool IsDecompressed return ret; } } - + /// /// 音声ファイルを読み込みます。 /// @@ -13113,16 +12717,16 @@ public static Sound Load(string path, bool isDecompressed) var ret = cbg_Sound_Load(path, isDecompressed); return Sound.TryGetFromCache(ret); } - + public bool Reload() { var ret = cbg_Sound_Reload(selfPtr); return ret; } - - + + #region ISerialiable - + #region SerializeName [EditorBrowsable(EditorBrowsableState.Never)] private const string S_LoopStartingPoint = "S_LoopStartingPoint"; @@ -13135,7 +12739,7 @@ public bool Reload() [EditorBrowsable(EditorBrowsableState.Never)] private const string S_IsDecompressed = "S_IsDecompressed"; #endregion - + /// /// シリアライズされたデータをもとにのインスタンスを生成します。 /// @@ -13145,17 +12749,17 @@ public bool Reload() private Sound(SerializationInfo info, StreamingContext context) : this(new MemoryHandle(IntPtr.Zero)) { var ptr = Call_GetPtr(info); - + if (ptr == IntPtr.Zero) throw new SerializationException("インスタンス生成に失敗しました"); CacheHelper.CacheHandlingOnDeserialization(this, ptr); - + LoopStartingPoint = info.GetSingle(S_LoopStartingPoint); LoopEndPoint = info.GetSingle(S_LoopEndPoint); IsLoopingMode = info.GetBoolean(S_IsLoopingMode); - + OnDeserialize_Constructor(info, context); } - + /// /// シリアライズするデータを設定します。 /// @@ -13165,16 +12769,16 @@ private Sound(SerializationInfo info, StreamingContext context) : this(new Memor void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) throw new ArgumentNullException(nameof(info), "引数がnullです"); - + info.AddValue(S_LoopStartingPoint, LoopStartingPoint); info.AddValue(S_LoopEndPoint, LoopEndPoint); info.AddValue(S_IsLoopingMode, IsLoopingMode); info.AddValue(S_Path, Path); info.AddValue(S_IsDecompressed, IsDecompressed); - + OnGetObjectData(info, context); } - + /// /// 内で実行されます。 /// @@ -13182,7 +12786,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信先の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnGetObjectData(SerializationInfo info, StreamingContext context); - + /// /// 内で実行します。 /// @@ -13190,7 +12794,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// 送信元の情報 [EditorBrowsable(EditorBrowsableState.Never)] partial void OnDeserialize_Constructor(SerializationInfo info, StreamingContext context); - + /// /// 内で呼び出される /// デシリアライズ時にselfPtrを取得する操作をここに必ず書くこと @@ -13199,7 +12803,7 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex /// シリアライズされたデータを格納するオブジェクト [EditorBrowsable(EditorBrowsableState.Never)] partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info); - + /// /// 呼び出し禁止 /// @@ -13210,7 +12814,7 @@ private IntPtr Call_GetPtr(SerializationInfo info) Deserialize_GetPtr(ref ptr, info); return ptr; } - + /// /// でデシリアライズされなかったオブジェクトを呼び出します。 /// @@ -13223,12 +12827,12 @@ private void Sound_Unsetter_Deserialize(SerializationInfo info, out string Path, Path = info.GetString(S_Path) ?? throw new SerializationException("デシリアライズに失敗しました"); IsDecompressed = info.GetBoolean(S_IsDecompressed); } - + #region ICacheKeeper - + [EditorBrowsable(EditorBrowsableState.Never)] IDictionary> ICacheKeeper.CacheRepo => cacheRepo; - + [EditorBrowsable(EditorBrowsableState.Never)] IntPtr ICacheKeeper.Self { @@ -13238,20 +12842,20 @@ IntPtr ICacheKeeper.Self selfPtr = value; } } - + [EditorBrowsable(EditorBrowsableState.Never)] void ICacheKeeper.Release(IntPtr native) => cbg_Sound_Release(native); - + #endregion - + #endregion - + /// /// のインスタンスを削除します。 /// ~Sound() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -13261,23 +12865,23 @@ IntPtr ICacheKeeper.Self } } } - + /// /// 音源を操作するクラス /// public sealed partial class SoundMixer { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static SoundMixer TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { SoundMixer cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -13291,118 +12895,118 @@ public static SoundMixer TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new SoundMixer(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_SoundMixer_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_SoundMixer_Play(IntPtr selfPtr, IntPtr sound); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_SoundMixer_GetIsPlaying(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_StopAll(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Stop(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Pause(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Resume(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_SetVolume(IntPtr selfPtr, int id, float volume); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_FadeIn(IntPtr selfPtr, int id, float second); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_FadeOut(IntPtr selfPtr, int id, float second); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Fade(IntPtr selfPtr, int id, float second, float targetedVolume); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_SoundMixer_GetIsPlaybackSpeedEnabled(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_SetIsPlaybackSpeedEnabled(IntPtr selfPtr, int id, [MarshalAs(UnmanagedType.Bool)] bool isPlaybackSpeedEnabled); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_SoundMixer_GetPlaybackSpeed(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_SetPlaybackSpeed(IntPtr selfPtr, int id, float playbackSpeed); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_SoundMixer_GetPanningPosition(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_SetPanningPosition(IntPtr selfPtr, int id, float panningPosition); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_SoundMixer_GetPlaybackPosition(IntPtr selfPtr, int id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_SetPlaybackPosition(IntPtr selfPtr, int id, float position); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_GetSpectrum(IntPtr selfPtr, int id, IntPtr spectrums, int window); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Reload(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_SoundMixer_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal SoundMixer(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + internal static SoundMixer GetInstance() { var ret = cbg_SoundMixer_GetInstance(); return SoundMixer.TryGetFromCache(ret); } - + /// /// 音を再生します。 /// @@ -13414,7 +13018,7 @@ public int Play(Sound sound) var ret = cbg_SoundMixer_Play(selfPtr, sound != null ? sound.selfPtr : IntPtr.Zero); return ret; } - + /// /// 指定した音が再生中であるかを取得します。 /// @@ -13424,7 +13028,7 @@ public bool GetIsPlaying(int id) var ret = cbg_SoundMixer_GetIsPlaying(selfPtr, id); return ret; } - + /// /// 再生中の音を全て停止します。 /// @@ -13432,7 +13036,7 @@ public void StopAll() { cbg_SoundMixer_StopAll(selfPtr); } - + /// /// 指定した音の再生を停止します。 /// @@ -13441,7 +13045,7 @@ public void Stop(int id) { cbg_SoundMixer_Stop(selfPtr, id); } - + /// /// 指定した音の再生を一時停止します。 /// @@ -13450,7 +13054,7 @@ public void Pause(int id) { cbg_SoundMixer_Pause(selfPtr, id); } - + /// /// 指定した音の再生を再開します。 /// @@ -13459,7 +13063,7 @@ public void Resume(int id) { cbg_SoundMixer_Resume(selfPtr, id); } - + /// /// 指定した音の音量を変更します。 /// @@ -13469,7 +13073,7 @@ public void SetVolume(int id, float volume) { cbg_SoundMixer_SetVolume(selfPtr, id, volume); } - + /// /// 指定した音をフェードインさせます。 /// @@ -13478,7 +13082,7 @@ public void FadeIn(int id, float second) { cbg_SoundMixer_FadeIn(selfPtr, id, second); } - + /// /// 指定した音をフェードアウトさせます。 /// @@ -13488,7 +13092,7 @@ public void FadeOut(int id, float second) { cbg_SoundMixer_FadeOut(selfPtr, id, second); } - + /// /// 指定した音の音量を一定時間かけて変更します。 /// @@ -13499,7 +13103,7 @@ public void Fade(int id, float second, float targetedVolume) { cbg_SoundMixer_Fade(selfPtr, id, second, targetedVolume); } - + /// /// 再生速度を変更するかを取得します。 /// @@ -13509,7 +13113,7 @@ public bool GetIsPlaybackSpeedEnabled(int id) var ret = cbg_SoundMixer_GetIsPlaybackSpeedEnabled(selfPtr, id); return ret; } - + /// /// 再生速度を変更するかを設定します。 /// @@ -13519,7 +13123,7 @@ public void SetIsPlaybackSpeedEnabled(int id, bool isPlaybackSpeedEnabled) { cbg_SoundMixer_SetIsPlaybackSpeedEnabled(selfPtr, id, isPlaybackSpeedEnabled); } - + /// /// 再生速度を取得します。 /// @@ -13529,7 +13133,7 @@ public float GetPlaybackSpeed(int id) var ret = cbg_SoundMixer_GetPlaybackSpeed(selfPtr, id); return ret; } - + /// /// 再生速度を設定します。 /// @@ -13539,7 +13143,7 @@ public void SetPlaybackSpeed(int id, float playbackSpeed) { cbg_SoundMixer_SetPlaybackSpeed(selfPtr, id, playbackSpeed); } - + /// /// パン位置を取得します。 /// @@ -13549,7 +13153,7 @@ public float GetPanningPosition(int id) var ret = cbg_SoundMixer_GetPanningPosition(selfPtr, id); return ret; } - + /// /// パン位置を設定します。 /// @@ -13559,7 +13163,7 @@ public void SetPanningPosition(int id, float panningPosition) { cbg_SoundMixer_SetPanningPosition(selfPtr, id, panningPosition); } - + /// /// 指定した音の再生位置を取得します。 /// @@ -13569,7 +13173,7 @@ public float GetPlaybackPosition(int id) var ret = cbg_SoundMixer_GetPlaybackPosition(selfPtr, id); return ret; } - + /// /// 指定した音の再生位置を変更します。 /// @@ -13579,7 +13183,7 @@ public void SetPlaybackPosition(int id, float position) { cbg_SoundMixer_SetPlaybackPosition(selfPtr, id, position); } - + /// /// 再生中の音のスペクトル情報を取得します。 /// @@ -13590,18 +13194,18 @@ internal void GetSpectrum(int id, FloatArray spectrums, FFTWindow window) { cbg_SoundMixer_GetSpectrum(selfPtr, id, spectrums != null ? spectrums.selfPtr : IntPtr.Zero, (int)window); } - + public void Reload() { cbg_SoundMixer_Reload(selfPtr); } - + /// /// のインスタンスを削除します。 /// ~SoundMixer() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -13611,23 +13215,23 @@ public void Reload() } } } - + /// /// imguiのツール処理を行うクラス /// public sealed partial class Tool { #region unmanaged - + [EditorBrowsable(EditorBrowsableState.Never)] private static Dictionary> cacheRepo = new Dictionary>(); - + [EditorBrowsable(EditorBrowsableState.Never)] public static Tool TryGetFromCache(IntPtr native) { - if(native == IntPtr.Zero) return null; - - if(cacheRepo.ContainsKey(native)) + if (native == IntPtr.Zero) return null; + + if (cacheRepo.ContainsKey(native)) { Tool cacheRet; cacheRepo[native].TryGetTarget(out cacheRet); @@ -13641,1386 +13245,1386 @@ public static Tool TryGetFromCache(IntPtr native) cacheRepo.Remove(native); } } - + var newObject = new Tool(new MemoryHandle(native)); cacheRepo[native] = new WeakReference(newObject); return newObject; } - + [EditorBrowsable(EditorBrowsableState.Never)] internal IntPtr selfPtr = IntPtr.Zero; [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_GetInstance(); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_NewFrame(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Render(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_AddFontFromFileTTF(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string path, float sizePixels, int ranges); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ListBox(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int current, [MarshalAs(UnmanagedType.LPWStr)] string items_separated_by_tabs, int popup_max_height_in_items); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_InputText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string input, int max_length, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_InputTextWithHint(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string hint, [MarshalAs(UnmanagedType.LPWStr)] string input, int max_length, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_InputTextMultiline(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string input, int max_length, Vector2F size, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ColorEdit3_char16p_FloatArray_ToolColorEditFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr col, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ColorEdit4_char16p_FloatArray_ToolColorEditFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr col, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Image(IntPtr selfPtr, IntPtr texture, Vector2F size, Vector2F uv0, Vector2F uv1, Color tint_col, Color border_col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ImageButton(IntPtr selfPtr, IntPtr texture, Vector2F size, Vector2F uv0, Vector2F uv1, int frame_padding, Color bg_col, Color tint_col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Combo(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int current_item, [MarshalAs(UnmanagedType.LPWStr)] string items_separated_by_tabs, int popup_max_height_in_items); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PlotLines(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr values, int values_count, int values_offset, [MarshalAs(UnmanagedType.LPWStr)] string overlay_text, float scale_min, float scale_max, Vector2F graph_size, int stride); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PlotHistogram(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr values, int values_count, int values_offset, [MarshalAs(UnmanagedType.LPWStr)] string overlay_text, float scale_min, float scale_max, Vector2F graph_size, int stride); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetTime(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetMainViewportID(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMainViewportPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMainViewportSize(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMainViewportWorkPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMainViewportWorkSize(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_DockSpace(IntPtr selfPtr, int id, Vector2F size, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginDockHost(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, Vector2F offset); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowDemoWindowNoCloseButton(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowAboutWindowNoCloseButton(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowMetricsWindowNoCloseButton(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Begin_char16p_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] - private static extern bool cbg_Tool_Begin_char16p_boolp_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open, int flags); - + private static extern bool cbg_Tool_Begin_char16p_boolp_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.Bool)][In, Out] ref bool p_open, int flags); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopupModal_char16p_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] - private static extern bool cbg_Tool_BeginPopupModal_char16p_boolp_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open, int flags); - + private static extern bool cbg_Tool_BeginPopupModal_char16p_boolp_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.Bool)][In, Out] ref bool p_open, int flags); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginTabItem_char16p_ToolTabItemFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] - private static extern bool cbg_Tool_BeginTabItem_char16p_boolp_ToolTabItemFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open, int flags); - + private static extern bool cbg_Tool_BeginTabItem_char16p_boolp_ToolTabItemFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)][In, Out] ref bool p_open, int flags); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_OpenDialog(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string filter, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_OpenDialogMultiple(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string filter, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_SaveDialog(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string filter, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_PickFolder(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SetDragDropPayload(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string type, IntPtr data, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_AcceptDragDropPayload(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string type, int dragDropFlags, IntPtr result); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Tool_ShowDemoWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open); - + private static extern void cbg_Tool_ShowDemoWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)][In, Out] ref bool p_open); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Tool_ShowAboutWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open); - + private static extern void cbg_Tool_ShowAboutWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)][In, Out] ref bool p_open); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_Tool_ShowMetricsWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open); - + private static extern void cbg_Tool_ShowMetricsWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)][In, Out] ref bool p_open); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ShowStyleSelector(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowFontSelector(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ShowUserGuide(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_GetVersion(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_End(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginChild_char16p_Vector2F_C_bool_ToolWindowFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, Vector2F size, [MarshalAs(UnmanagedType.Bool)] bool border, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginChild_int_Vector2F_C_bool_ToolWindowFlags(IntPtr selfPtr, int id, Vector2F size, [MarshalAs(UnmanagedType.Bool)] bool border, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndChild(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsWindowAppearing(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsWindowCollapsed(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsWindowFocused(IntPtr selfPtr, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsWindowHovered(IntPtr selfPtr, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetWindowDpiScale(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetWindowPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetWindowSize(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetWindowWidth(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetWindowHeight(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowPos(IntPtr selfPtr, Vector2F pos, int cond, Vector2F pivot); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowSize(IntPtr selfPtr, Vector2F size, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowContentSize(IntPtr selfPtr, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowCollapsed(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool collapsed, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowFocus(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowBgAlpha(IntPtr selfPtr, float alpha); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowViewport(IntPtr selfPtr, int viewport_id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowPos_Vector2F_C_ToolCond(IntPtr selfPtr, Vector2F pos, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowPos_char16p_Vector2F_C_ToolCond(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, Vector2F pos, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowSize_Vector2F_C_ToolCond(IntPtr selfPtr, Vector2F size, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowSize_char16p_Vector2F_C_ToolCond(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, Vector2F size, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowCollapsed_bool_ToolCond(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool collapsed, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowCollapsed_char16p_bool_ToolCond(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.Bool)] bool collapsed, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowFocus_(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowFocus_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string name); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetWindowFontScale(IntPtr selfPtr, float scale); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetContentRegionMax(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetContentRegionAvail(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetWindowContentRegionMin(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetWindowContentRegionMax(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetWindowContentRegionWidth(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetScrollX(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetScrollY(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetScrollMaxX(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetScrollMaxY(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollX(IntPtr selfPtr, float scroll_x); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollY(IntPtr selfPtr, float scroll_y); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollHereX(IntPtr selfPtr, float center_x_ratio); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollHereY(IntPtr selfPtr, float center_y_ratio); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollFromPosX(IntPtr selfPtr, float local_x, float center_x_ratio); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetScrollFromPosY(IntPtr selfPtr, float local_y, float center_y_ratio); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopFont(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushStyleColor_ToolCol_int(IntPtr selfPtr, int idx, int col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushStyleColor_ToolCol_Vector4F_C(IntPtr selfPtr, int idx, Vector4F col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopStyleColor(IntPtr selfPtr, int count); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushStyleVar_ToolStyleVar_float(IntPtr selfPtr, int idx, float val); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushStyleVar_ToolStyleVar_Vector2F_C(IntPtr selfPtr, int idx, Vector2F val); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopStyleVar(IntPtr selfPtr, int count); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetFontSize(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetFontTexUvWhitePixel(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetColorU32_ToolCol_float(IntPtr selfPtr, int idx, float alpha_mul); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetColorU32_Vector4F_C(IntPtr selfPtr, Vector4F col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetColorU32_int(IntPtr selfPtr, int col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushItemWidth(IntPtr selfPtr, float item_width); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopItemWidth(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextItemWidth(IntPtr selfPtr, float item_width); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_CalcItemWidth(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushTextWrapPos(IntPtr selfPtr, float wrap_local_pos_x); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopTextWrapPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushAllowKeyboardFocus(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool allow_keyboard_focus); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopAllowKeyboardFocus(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushButtonRepeat(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool repeat); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopButtonRepeat(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Separator(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SameLine(IntPtr selfPtr, float offset_from_start_x, float spacing); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_NewLine(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Spacing(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Dummy(IntPtr selfPtr, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Indent(IntPtr selfPtr, float indent_w); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Unindent(IntPtr selfPtr, float indent_w); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_BeginGroup(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndGroup(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetCursorPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetCursorPosX(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetCursorPosY(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetCursorPos(IntPtr selfPtr, Vector2F local_pos); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetCursorPosX(IntPtr selfPtr, float local_x); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetCursorPosY(IntPtr selfPtr, float local_y); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetCursorStartPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetCursorScreenPos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetCursorScreenPos(IntPtr selfPtr, Vector2F pos); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_AlignTextToFramePadding(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetTextLineHeight(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetTextLineHeightWithSpacing(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetFrameHeight(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetFrameHeightWithSpacing(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushID_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushID_char16p_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id_begin, [MarshalAs(UnmanagedType.LPWStr)] string str_id_end); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushID_int(IntPtr selfPtr, int int_id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopID(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetID_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetID_char16p_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id_begin, [MarshalAs(UnmanagedType.LPWStr)] string str_id_end); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TextUnformatted(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string text, [MarshalAs(UnmanagedType.LPWStr)] string text_end); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Text(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TextColored(IntPtr selfPtr, Vector4F col, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TextDisabled(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TextWrapped(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LabelText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_BulletText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Button(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SmallButton(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InvisibleButton(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, Vector2F size, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ArrowButton(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int dir); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] - private static extern bool cbg_Tool_Checkbox(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool v); - + private static extern bool cbg_Tool_Checkbox(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)][In, Out] ref bool v); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_RadioButton_char16p_bool(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] bool active); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_RadioButton_char16p_intp_int(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int v, int v_button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ProgressBar(IntPtr selfPtr, float fraction, Vector2F size_arg, [MarshalAs(UnmanagedType.LPWStr)] string overlay); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Bullet(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginCombo(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string preview_value, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndCombo(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragFloat(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref float v, float v_speed, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragFloat2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragFloat3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragFloat4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragFloatRange2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref float v_current_min, [In, Out] ref float v_current_max, float v_speed, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, [MarshalAs(UnmanagedType.LPWStr)] string format_max, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragInt(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int v, float v_speed, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragInt2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragInt3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragInt4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_speed, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_DragIntRange2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int v_current_min, [In, Out] ref int v_current_max, float v_speed, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, [MarshalAs(UnmanagedType.LPWStr)] string format_max, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderFloat(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref float v, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderFloat2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderFloat3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderFloat4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderAngle(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref float v_rad, float v_degrees_min, float v_degrees_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderInt(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int v, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderInt2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderInt3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_SliderInt4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_VSliderFloat(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, Vector2F size, [In, Out] ref float v, float v_min, float v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_VSliderInt(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, Vector2F size, [In, Out] ref int v, int v_min, int v_max, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputFloat(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref float v, float step, float step_fast, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputFloat2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputFloat3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputFloat4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, [MarshalAs(UnmanagedType.LPWStr)] string format, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputInt(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [In, Out] ref int v, int step, int step_fast, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputInt2(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputInt3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_InputInt4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr v, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ColorPicker3(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr col, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ColorPicker4(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, IntPtr col, int flags, [In, Out] ref float ref_col); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetColorEditOptions(IntPtr selfPtr, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_TreeNode_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_TreeNode_char16p_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_TreeNodeEx_char16p_ToolTreeNodeFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_TreeNodeEx_char16p_ToolTreeNodeFlags_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int flags, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TreePush(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_TreePop(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetTreeNodeToLabelSpacing(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_CollapsingHeader_char16p_ToolTreeNodeFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] - private static extern bool cbg_Tool_CollapsingHeader_char16p_boolp_ToolTreeNodeFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_open, int flags); - + private static extern bool cbg_Tool_CollapsingHeader_char16p_boolp_ToolTreeNodeFlags(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)][In, Out] ref bool p_open, int flags); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextItemOpen(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool is_open, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_Selectable_char16p_bool_ToolSelectableFlags_Vector2F_C(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] bool selected, int flags, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] - private static extern bool cbg_Tool_Selectable_char16p_boolp_ToolSelectableFlags_Vector2F_C(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_selected, int flags, Vector2F size); - + private static extern bool cbg_Tool_Selectable_char16p_boolp_ToolSelectableFlags_Vector2F_C(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)][In, Out] ref bool p_selected, int flags, Vector2F size); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ListBoxHeader_char16p_Vector2F_C(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_ListBoxHeader_char16p_int_int(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, int items_count, int height_in_items); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ListBoxFooter(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Value_char16p_bool(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string prefix, [MarshalAs(UnmanagedType.Bool)] bool b); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Value_char16p_int(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string prefix, int v); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Value_char16p_float_char16p(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string prefix, float v, [MarshalAs(UnmanagedType.LPWStr)] string float_format); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginMenuBar(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndMenuBar(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginMainMenuBar(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndMainMenuBar(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginMenu(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.Bool)] bool enabled); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndMenu(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_MenuItem_char16p_char16p_bool_bool(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string shortcut, [MarshalAs(UnmanagedType.Bool)] bool selected, [MarshalAs(UnmanagedType.Bool)] bool enabled); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] - private static extern bool cbg_Tool_MenuItem_char16p_char16p_boolp_bool(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string shortcut, [MarshalAs(UnmanagedType.Bool)] [In, Out] ref bool p_selected, [MarshalAs(UnmanagedType.Bool)] bool enabled); - + private static extern bool cbg_Tool_MenuItem_char16p_char16p_boolp_bool(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, [MarshalAs(UnmanagedType.LPWStr)] string shortcut, [MarshalAs(UnmanagedType.Bool)][In, Out] ref bool p_selected, [MarshalAs(UnmanagedType.Bool)] bool enabled); + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_BeginTooltip(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndTooltip(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetTooltip(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopup(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndPopup(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_OpenPopup(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int popup_flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_OpenPopupOnItemClick(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int popup_flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_CloseCurrentPopup(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopupContextItem(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int popup_flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopupContextWindow(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int popup_flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginPopupContextVoid(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int popup_flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsPopupOpen(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Columns(IntPtr selfPtr, int count, [MarshalAs(UnmanagedType.LPWStr)] string id, [MarshalAs(UnmanagedType.Bool)] bool border); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_NextColumn(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetColumnIndex(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetColumnWidth(IntPtr selfPtr, int column_index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetColumnWidth(IntPtr selfPtr, int column_index, float width); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern float cbg_Tool_GetColumnOffset(IntPtr selfPtr, int column_index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetColumnOffset(IntPtr selfPtr, int column_index, float offset_x); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetColumnsCount(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginTabBar(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string str_id, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndTabBar(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndTabItem(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_TabItemButton(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string label, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetTabItemClosed(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string tab_or_docked_window_label); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetNextWindowDockID(IntPtr selfPtr, int dock_id, int cond); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetWindowDockID(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsWindowDocked(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogToTTY(IntPtr selfPtr, int auto_open_depth); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogToFile(IntPtr selfPtr, int auto_open_depth, [MarshalAs(UnmanagedType.LPWStr)] string filename); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogToClipboard(IntPtr selfPtr, int auto_open_depth); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogFinish(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogButtons(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LogText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string fmt); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginDragDropSource(IntPtr selfPtr, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndDragDropSource(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginDragDropTarget(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndDragDropTarget(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PushClipRect(IntPtr selfPtr, Vector2F clip_rect_min, Vector2F clip_rect_max, [MarshalAs(UnmanagedType.Bool)] bool intersect_with_current_clip_rect); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_PopClipRect(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetItemDefaultFocus(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetKeyboardFocusHere(IntPtr selfPtr, int offset); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemHovered(IntPtr selfPtr, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemActive(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemFocused(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemClicked(IntPtr selfPtr, int mouse_button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemVisible(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemEdited(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemActivated(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemDeactivated(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemDeactivatedAfterEdit(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsItemToggledOpen(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsAnyItemHovered(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsAnyItemActive(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsAnyItemFocused(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetItemRectMin(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetItemRectMax(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetItemRectSize(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetItemAllowOverlap(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsRectVisible_Vector2F_C(IntPtr selfPtr, Vector2F size); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsRectVisible_Vector2F_C_Vector2F_C(IntPtr selfPtr, Vector2F rect_min, Vector2F rect_max); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetFrameCount(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_GetStyleColorName(IntPtr selfPtr, int idx); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_CalcListClipping(IntPtr selfPtr, int items_count, float items_height, [In, Out] ref int out_items_display_start, [In, Out] ref int out_items_display_end); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_BeginChildFrame(IntPtr selfPtr, int id, Vector2F size, int flags); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_EndChildFrame(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_CalcTextSize(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string text, [MarshalAs(UnmanagedType.LPWStr)] string text_end, [MarshalAs(UnmanagedType.Bool)] bool hide_text_after_double_hash, float wrap_width); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector4F cbg_Tool_ColorConvertU32ToFloat4(IntPtr selfPtr, int in_); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_ColorConvertFloat4ToU32(IntPtr selfPtr, Vector4F in_); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetKeyIndex(IntPtr selfPtr, int imgui_key); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsKeyDown(IntPtr selfPtr, int user_key_index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsKeyPressed(IntPtr selfPtr, int user_key_index, [MarshalAs(UnmanagedType.Bool)] bool repeat); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsKeyReleased(IntPtr selfPtr, int user_key_index); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetKeyPressedAmount(IntPtr selfPtr, int key_index, float repeat_delay, float rate); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_CaptureKeyboardFromApp(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool want_capture_keyboard_value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseDown(IntPtr selfPtr, int button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseClicked(IntPtr selfPtr, int button, [MarshalAs(UnmanagedType.Bool)] bool repeat); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseReleased(IntPtr selfPtr, int button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseDoubleClicked(IntPtr selfPtr, int button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseHoveringRect(IntPtr selfPtr, Vector2F r_min, Vector2F r_max, [MarshalAs(UnmanagedType.Bool)] bool clip); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsAnyMouseDown(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMousePos(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMousePosOnOpeningCurrentPopup(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] [return: MarshalAs(UnmanagedType.U1)] private static extern bool cbg_Tool_IsMouseDragging(IntPtr selfPtr, int button, float lock_threshold); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern Vector2F cbg_Tool_GetMouseDragDelta(IntPtr selfPtr, int button, float lock_threshold); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_ResetMouseDragDelta(IntPtr selfPtr, int button); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetMouseCursor(IntPtr selfPtr, int cursor_type); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_CaptureMouseFromApp(IntPtr selfPtr, [MarshalAs(UnmanagedType.Bool)] bool want_capture_mouse_value); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern IntPtr cbg_Tool_GetClipboardText(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetClipboardText(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string text); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_LoadIniSettingsFromDisk(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string ini_filename); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SaveIniSettingsToDisk(IntPtr selfPtr, [MarshalAs(UnmanagedType.LPWStr)] string ini_filename); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_UpdatePlatformWindows(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_DestroyPlatformWindows(IntPtr selfPtr); - + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern int cbg_Tool_GetToolUsage(IntPtr selfPtr); [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_SetToolUsage(IntPtr selfPtr, int value); - - + + [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_Tool_Release(IntPtr selfPtr); - + #endregion - + [EditorBrowsable(EditorBrowsableState.Never)] internal Tool(MemoryHandle handle) { selfPtr = handle.selfPtr; } - + /// /// ツールの使用方法を取得または設定します。 /// @@ -15042,7 +14646,7 @@ public ToolUsage ToolUsage } } private ToolUsage? _ToolUsage; - + /// /// インスタンスを取得します。 /// @@ -15051,17 +14655,17 @@ internal static Tool GetInstance() var ret = cbg_Tool_GetInstance(); return Tool.TryGetFromCache(ret); } - + public void NewFrame() { cbg_Tool_NewFrame(selfPtr); } - + public void Render() { cbg_Tool_Render(selfPtr); } - + /// /// パスからフォントを読み込みます。パックされたファイルは非対応です。 /// @@ -15072,7 +14676,7 @@ public bool AddFontFromFileTTF(string path, float sizePixels, ToolGlyphRange ran var ret = cbg_Tool_AddFontFromFileTTF(selfPtr, path, sizePixels, (int)ranges); return ret; } - + /// /// リストボックスを生成します。 /// @@ -15086,7 +14690,7 @@ public bool ListBox(string label, ref int current, string items_separated_by_tab var ret = cbg_Tool_ListBox(selfPtr, label, ref current, items_separated_by_tabs, popup_max_height_in_items); return ret; } - + /// /// テキストを入力するボックスを生成します。 /// @@ -15101,7 +14705,7 @@ public string InputText(string label, string input, int max_length, ToolInputTex var ret = cbg_Tool_InputText(selfPtr, label, input, max_length, (int)flags); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// ヒント付きのテキスト入力ボックスを生成します。 /// @@ -15118,7 +14722,7 @@ public string InputTextWithHint(string label, string hint, string input, int max var ret = cbg_Tool_InputTextWithHint(selfPtr, label, hint, input, max_length, (int)flags); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// 複数行のテキストが入力可能なボックスを生成します。 /// @@ -15134,7 +14738,7 @@ public string InputTextMultiline(string label, string input, int max_length, Vec var ret = cbg_Tool_InputTextMultiline(selfPtr, label, input, max_length, size, (int)flags); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// 色を入力するツールを生成します。 /// @@ -15147,7 +14751,7 @@ internal bool ColorEdit3(string label, FloatArray col, ToolColorEditFlags flags) var ret = cbg_Tool_ColorEdit3_char16p_FloatArray_ToolColorEditFlags(selfPtr, label, col != null ? col.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + /// /// 色を入力するツールを生成します。 /// @@ -15160,7 +14764,7 @@ internal bool ColorEdit4(string label, FloatArray col, ToolColorEditFlags flags) var ret = cbg_Tool_ColorEdit4_char16p_FloatArray_ToolColorEditFlags(selfPtr, label, col != null ? col.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + /// /// 画像表示ボックスを生成します。 /// @@ -15172,7 +14776,7 @@ public void Image(TextureBase texture, Vector2F size, Vector2F uv0, Vector2F uv1 { cbg_Tool_Image(selfPtr, texture != null ? texture.selfPtr : IntPtr.Zero, size, uv0, uv1, tint_col, border_col); } - + /// /// ボタンとして機能する画像表示ボックスを生成します。 /// @@ -15185,7 +14789,7 @@ public bool ImageButton(TextureBase texture, Vector2F size, Vector2F uv0, Vector var ret = cbg_Tool_ImageButton(selfPtr, texture != null ? texture.selfPtr : IntPtr.Zero, size, uv0, uv1, frame_padding, bg_col, tint_col); return ret; } - + /// /// コンボボックスを生成します。 /// @@ -15199,84 +14803,84 @@ public bool Combo(string label, ref int current_item, string items_separated_by_ var ret = cbg_Tool_Combo(selfPtr, label, ref current_item, items_separated_by_tabs, popup_max_height_in_items); return ret; } - + internal void PlotLines(string label, FloatArray values, int values_count, int values_offset, string overlay_text, float scale_min, float scale_max, Vector2F graph_size, int stride) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); if (overlay_text == null) throw new ArgumentNullException(nameof(overlay_text), "引数がnullです"); cbg_Tool_PlotLines(selfPtr, label, values != null ? values.selfPtr : IntPtr.Zero, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride); } - + internal void PlotHistogram(string label, FloatArray values, int values_count, int values_offset, string overlay_text, float scale_min, float scale_max, Vector2F graph_size, int stride) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); if (overlay_text == null) throw new ArgumentNullException(nameof(overlay_text), "引数がnullです"); cbg_Tool_PlotHistogram(selfPtr, label, values != null ? values.selfPtr : IntPtr.Zero, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size, stride); } - + public float GetTime() { var ret = cbg_Tool_GetTime(selfPtr); return ret; } - + public int GetMainViewportID() { var ret = cbg_Tool_GetMainViewportID(selfPtr); return ret; } - + public Vector2F GetMainViewportPos() { var ret = cbg_Tool_GetMainViewportPos(selfPtr); return ret; } - + public Vector2F GetMainViewportSize() { var ret = cbg_Tool_GetMainViewportSize(selfPtr); return ret; } - + public Vector2F GetMainViewportWorkPos() { var ret = cbg_Tool_GetMainViewportWorkPos(selfPtr); return ret; } - + public Vector2F GetMainViewportWorkSize() { var ret = cbg_Tool_GetMainViewportWorkSize(selfPtr); return ret; } - + public void DockSpace(int id, Vector2F size, ToolDockNodeFlags flags) { cbg_Tool_DockSpace(selfPtr, id, size, (int)flags); } - + public bool BeginDockHost(string label, Vector2F offset) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_BeginDockHost(selfPtr, label, offset); return ret; } - + public void ShowDemoWindowNoCloseButton() { cbg_Tool_ShowDemoWindowNoCloseButton(selfPtr); } - + public void ShowAboutWindowNoCloseButton() { cbg_Tool_ShowAboutWindowNoCloseButton(selfPtr); } - + public void ShowMetricsWindowNoCloseButton() { cbg_Tool_ShowMetricsWindowNoCloseButton(selfPtr); } - + /// /// 'End()' を呼び出してください。 /// @@ -15287,7 +14891,7 @@ public bool Begin(string name, ToolWindowFlags flags) var ret = cbg_Tool_Begin_char16p_ToolWindowFlags(selfPtr, name, (int)flags); return ret; } - + /// /// 'End()' を呼び出してください。 /// @@ -15298,7 +14902,7 @@ public bool Begin(string name, ref bool p_open, ToolWindowFlags flags) var ret = cbg_Tool_Begin_char16p_boolp_ToolWindowFlags(selfPtr, name, ref p_open, (int)flags); return ret; } - + /// /// 'EndPopup()' を呼び出してください /// @@ -15309,7 +14913,7 @@ public bool BeginPopupModal(string name, ToolWindowFlags flags) var ret = cbg_Tool_BeginPopupModal_char16p_ToolWindowFlags(selfPtr, name, (int)flags); return ret; } - + /// /// 'EndPopup()' を呼び出してください /// @@ -15320,7 +14924,7 @@ public bool BeginPopupModal(string name, ref bool p_open, ToolWindowFlags flags) var ret = cbg_Tool_BeginPopupModal_char16p_boolp_ToolWindowFlags(selfPtr, name, ref p_open, (int)flags); return ret; } - + /// /// 'EndTabItem()' を呼び出してください /// @@ -15331,7 +14935,7 @@ public bool BeginTabItem(string label, ToolTabItemFlags flags) var ret = cbg_Tool_BeginTabItem_char16p_ToolTabItemFlags(selfPtr, label, (int)flags); return ret; } - + /// /// 'EndTabItem()' を呼び出してください /// @@ -15342,7 +14946,7 @@ public bool BeginTabItem(string label, ref bool p_open, ToolTabItemFlags flags) var ret = cbg_Tool_BeginTabItem_char16p_boolp_ToolTabItemFlags(selfPtr, label, ref p_open, (int)flags); return ret; } - + /// /// 1つの開くファイルを選択するダイアログを開きます。 /// @@ -15356,7 +14960,7 @@ public string OpenDialog(string filter, string defaultPath) var ret = cbg_Tool_OpenDialog(selfPtr, filter, defaultPath); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// 複数の開くファイルを選択するダイアログを開きます。 /// @@ -15370,7 +14974,7 @@ public string OpenDialogMultiple(string filter, string defaultPath) var ret = cbg_Tool_OpenDialogMultiple(selfPtr, filter, defaultPath); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// 保存するファイルを選択するダイアログを開きます。 /// @@ -15384,7 +14988,7 @@ public string SaveDialog(string filter, string defaultPath) var ret = cbg_Tool_SaveDialog(selfPtr, filter, defaultPath); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + /// /// フォルダを選択するダイアログを開きます。 /// @@ -15396,65 +15000,65 @@ public string PickFolder(string defaultPath) var ret = cbg_Tool_PickFolder(selfPtr, defaultPath); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + internal bool SetDragDropPayload(string type, Int8Array data, ToolCond cond) { if (type == null) throw new ArgumentNullException(nameof(type), "引数がnullです"); var ret = cbg_Tool_SetDragDropPayload(selfPtr, type, data != null ? data.selfPtr : IntPtr.Zero, (int)cond); return ret; } - + internal bool AcceptDragDropPayload(string type, ToolDragDropFlags dragDropFlags, Int8Array result) { if (type == null) throw new ArgumentNullException(nameof(type), "引数がnullです"); var ret = cbg_Tool_AcceptDragDropPayload(selfPtr, type, (int)dragDropFlags, result != null ? result.selfPtr : IntPtr.Zero); return ret; } - + public void ShowDemoWindow(ref bool p_open) { cbg_Tool_ShowDemoWindow(selfPtr, ref p_open); } - + public void ShowAboutWindow(ref bool p_open) { cbg_Tool_ShowAboutWindow(selfPtr, ref p_open); } - + public void ShowMetricsWindow(ref bool p_open) { cbg_Tool_ShowMetricsWindow(selfPtr, ref p_open); } - + public bool ShowStyleSelector(string label) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_ShowStyleSelector(selfPtr, label); return ret; } - + public void ShowFontSelector(string label) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); cbg_Tool_ShowFontSelector(selfPtr, label); } - + public void ShowUserGuide() { cbg_Tool_ShowUserGuide(selfPtr); } - + public string GetVersion() { var ret = cbg_Tool_GetVersion(selfPtr); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + public void End() { cbg_Tool_End(selfPtr); } - + /// /// 'EndChild()' を呼び出してください /// @@ -15465,7 +15069,7 @@ public bool BeginChild(string str_id, Vector2F size, bool border, ToolWindowFlag var ret = cbg_Tool_BeginChild_char16p_Vector2F_C_bool_ToolWindowFlags(selfPtr, str_id, size, border, (int)flags); return ret; } - + /// /// 'EndChild()' を呼び出してください /// @@ -15474,350 +15078,350 @@ public bool BeginChild(int id, Vector2F size, bool border, ToolWindowFlags flags var ret = cbg_Tool_BeginChild_int_Vector2F_C_bool_ToolWindowFlags(selfPtr, id, size, border, (int)flags); return ret; } - + public void EndChild() { cbg_Tool_EndChild(selfPtr); } - + public bool IsWindowAppearing() { var ret = cbg_Tool_IsWindowAppearing(selfPtr); return ret; } - + public bool IsWindowCollapsed() { var ret = cbg_Tool_IsWindowCollapsed(selfPtr); return ret; } - + public bool IsWindowFocused(ToolFocusedFlags flags) { var ret = cbg_Tool_IsWindowFocused(selfPtr, (int)flags); return ret; } - + public bool IsWindowHovered(ToolHoveredFlags flags) { var ret = cbg_Tool_IsWindowHovered(selfPtr, (int)flags); return ret; } - + public float GetWindowDpiScale() { var ret = cbg_Tool_GetWindowDpiScale(selfPtr); return ret; } - + public Vector2F GetWindowPos() { var ret = cbg_Tool_GetWindowPos(selfPtr); return ret; } - + public Vector2F GetWindowSize() { var ret = cbg_Tool_GetWindowSize(selfPtr); return ret; } - + public float GetWindowWidth() { var ret = cbg_Tool_GetWindowWidth(selfPtr); return ret; } - + public float GetWindowHeight() { var ret = cbg_Tool_GetWindowHeight(selfPtr); return ret; } - + public void SetNextWindowPos(Vector2F pos, ToolCond cond, Vector2F pivot) { cbg_Tool_SetNextWindowPos(selfPtr, pos, (int)cond, pivot); } - + public void SetNextWindowSize(Vector2F size, ToolCond cond) { cbg_Tool_SetNextWindowSize(selfPtr, size, (int)cond); } - + public void SetNextWindowContentSize(Vector2F size) { cbg_Tool_SetNextWindowContentSize(selfPtr, size); } - + public void SetNextWindowCollapsed(bool collapsed, ToolCond cond) { cbg_Tool_SetNextWindowCollapsed(selfPtr, collapsed, (int)cond); } - + public void SetNextWindowFocus() { cbg_Tool_SetNextWindowFocus(selfPtr); } - + public void SetNextWindowBgAlpha(float alpha) { cbg_Tool_SetNextWindowBgAlpha(selfPtr, alpha); } - + public void SetNextWindowViewport(int viewport_id) { cbg_Tool_SetNextWindowViewport(selfPtr, viewport_id); } - + public void SetWindowPos(Vector2F pos, ToolCond cond) { cbg_Tool_SetWindowPos_Vector2F_C_ToolCond(selfPtr, pos, (int)cond); } - + public void SetWindowPos(string name, Vector2F pos, ToolCond cond) { if (name == null) throw new ArgumentNullException(nameof(name), "引数がnullです"); cbg_Tool_SetWindowPos_char16p_Vector2F_C_ToolCond(selfPtr, name, pos, (int)cond); } - + public void SetWindowSize(Vector2F size, ToolCond cond) { cbg_Tool_SetWindowSize_Vector2F_C_ToolCond(selfPtr, size, (int)cond); } - + public void SetWindowSize(string name, Vector2F size, ToolCond cond) { if (name == null) throw new ArgumentNullException(nameof(name), "引数がnullです"); cbg_Tool_SetWindowSize_char16p_Vector2F_C_ToolCond(selfPtr, name, size, (int)cond); } - + public void SetWindowCollapsed(bool collapsed, ToolCond cond) { cbg_Tool_SetWindowCollapsed_bool_ToolCond(selfPtr, collapsed, (int)cond); } - + public void SetWindowCollapsed(string name, bool collapsed, ToolCond cond) { if (name == null) throw new ArgumentNullException(nameof(name), "引数がnullです"); cbg_Tool_SetWindowCollapsed_char16p_bool_ToolCond(selfPtr, name, collapsed, (int)cond); } - + public void SetWindowFocus() { cbg_Tool_SetWindowFocus_(selfPtr); } - + public void SetWindowFocus(string name) { if (name == null) throw new ArgumentNullException(nameof(name), "引数がnullです"); cbg_Tool_SetWindowFocus_char16p(selfPtr, name); } - + public void SetWindowFontScale(float scale) { cbg_Tool_SetWindowFontScale(selfPtr, scale); } - + public Vector2F GetContentRegionMax() { var ret = cbg_Tool_GetContentRegionMax(selfPtr); return ret; } - + public Vector2F GetContentRegionAvail() { var ret = cbg_Tool_GetContentRegionAvail(selfPtr); return ret; } - + public Vector2F GetWindowContentRegionMin() { var ret = cbg_Tool_GetWindowContentRegionMin(selfPtr); return ret; } - + public Vector2F GetWindowContentRegionMax() { var ret = cbg_Tool_GetWindowContentRegionMax(selfPtr); return ret; } - + public float GetWindowContentRegionWidth() { var ret = cbg_Tool_GetWindowContentRegionWidth(selfPtr); return ret; } - + public float GetScrollX() { var ret = cbg_Tool_GetScrollX(selfPtr); return ret; } - + public float GetScrollY() { var ret = cbg_Tool_GetScrollY(selfPtr); return ret; } - + public float GetScrollMaxX() { var ret = cbg_Tool_GetScrollMaxX(selfPtr); return ret; } - + public float GetScrollMaxY() { var ret = cbg_Tool_GetScrollMaxY(selfPtr); return ret; } - + public void SetScrollX(float scroll_x) { cbg_Tool_SetScrollX(selfPtr, scroll_x); } - + public void SetScrollY(float scroll_y) { cbg_Tool_SetScrollY(selfPtr, scroll_y); } - + public void SetScrollHereX(float center_x_ratio) { cbg_Tool_SetScrollHereX(selfPtr, center_x_ratio); } - + public void SetScrollHereY(float center_y_ratio) { cbg_Tool_SetScrollHereY(selfPtr, center_y_ratio); } - + public void SetScrollFromPosX(float local_x, float center_x_ratio) { cbg_Tool_SetScrollFromPosX(selfPtr, local_x, center_x_ratio); } - + public void SetScrollFromPosY(float local_y, float center_y_ratio) { cbg_Tool_SetScrollFromPosY(selfPtr, local_y, center_y_ratio); } - + public void PopFont() { cbg_Tool_PopFont(selfPtr); } - + public void PushStyleColor(ToolCol idx, int col) { cbg_Tool_PushStyleColor_ToolCol_int(selfPtr, (int)idx, col); } - + public void PushStyleColor(ToolCol idx, Vector4F col) { cbg_Tool_PushStyleColor_ToolCol_Vector4F_C(selfPtr, (int)idx, col); } - + public void PopStyleColor(int count) { cbg_Tool_PopStyleColor(selfPtr, count); } - + public void PushStyleVar(ToolStyleVar idx, float val) { cbg_Tool_PushStyleVar_ToolStyleVar_float(selfPtr, (int)idx, val); } - + public void PushStyleVar(ToolStyleVar idx, Vector2F val) { cbg_Tool_PushStyleVar_ToolStyleVar_Vector2F_C(selfPtr, (int)idx, val); } - + public void PopStyleVar(int count) { cbg_Tool_PopStyleVar(selfPtr, count); } - + public float GetFontSize() { var ret = cbg_Tool_GetFontSize(selfPtr); return ret; } - + public Vector2F GetFontTexUvWhitePixel() { var ret = cbg_Tool_GetFontTexUvWhitePixel(selfPtr); return ret; } - + public int GetColorU32(ToolCol idx, float alpha_mul) { var ret = cbg_Tool_GetColorU32_ToolCol_float(selfPtr, (int)idx, alpha_mul); return ret; } - + public int GetColorU32(Vector4F col) { var ret = cbg_Tool_GetColorU32_Vector4F_C(selfPtr, col); return ret; } - + public int GetColorU32(int col) { var ret = cbg_Tool_GetColorU32_int(selfPtr, col); return ret; } - + public void PushItemWidth(float item_width) { cbg_Tool_PushItemWidth(selfPtr, item_width); } - + public void PopItemWidth() { cbg_Tool_PopItemWidth(selfPtr); } - + public void SetNextItemWidth(float item_width) { cbg_Tool_SetNextItemWidth(selfPtr, item_width); } - + public float CalcItemWidth() { var ret = cbg_Tool_CalcItemWidth(selfPtr); return ret; } - + public void PushTextWrapPos(float wrap_local_pos_x) { cbg_Tool_PushTextWrapPos(selfPtr, wrap_local_pos_x); } - + public void PopTextWrapPos() { cbg_Tool_PopTextWrapPos(selfPtr); } - + public void PushAllowKeyboardFocus(bool allow_keyboard_focus) { cbg_Tool_PushAllowKeyboardFocus(selfPtr, allow_keyboard_focus); } - + public void PopAllowKeyboardFocus() { cbg_Tool_PopAllowKeyboardFocus(selfPtr); } - + public void PushButtonRepeat(bool repeat) { cbg_Tool_PushButtonRepeat(selfPtr, repeat); } - + public void PopButtonRepeat() { cbg_Tool_PopButtonRepeat(selfPtr); } - + /// /// 仕切りを生成します。 /// @@ -15825,22 +15429,22 @@ public void Separator() { cbg_Tool_Separator(selfPtr); } - + public void SameLine(float offset_from_start_x, float spacing) { cbg_Tool_SameLine(selfPtr, offset_from_start_x, spacing); } - + public void NewLine() { cbg_Tool_NewLine(selfPtr); } - + public void Spacing() { cbg_Tool_Spacing(selfPtr); } - + /// /// 空白を生成します。 /// @@ -15849,7 +15453,7 @@ public void Dummy(Vector2F size) { cbg_Tool_Dummy(selfPtr, size); } - + /// /// 次の要素を右にずらします。 /// @@ -15857,7 +15461,7 @@ public void Indent(float indent_w) { cbg_Tool_Indent(selfPtr, indent_w); } - + /// /// 右にずらすインデントを1つ分打消します。 /// @@ -15865,126 +15469,126 @@ public void Unindent(float indent_w) { cbg_Tool_Unindent(selfPtr, indent_w); } - + public void BeginGroup() { cbg_Tool_BeginGroup(selfPtr); } - + public void EndGroup() { cbg_Tool_EndGroup(selfPtr); } - + public Vector2F GetCursorPos() { var ret = cbg_Tool_GetCursorPos(selfPtr); return ret; } - + public float GetCursorPosX() { var ret = cbg_Tool_GetCursorPosX(selfPtr); return ret; } - + public float GetCursorPosY() { var ret = cbg_Tool_GetCursorPosY(selfPtr); return ret; } - + public void SetCursorPos(Vector2F local_pos) { cbg_Tool_SetCursorPos(selfPtr, local_pos); } - + public void SetCursorPosX(float local_x) { cbg_Tool_SetCursorPosX(selfPtr, local_x); } - + public void SetCursorPosY(float local_y) { cbg_Tool_SetCursorPosY(selfPtr, local_y); } - + public Vector2F GetCursorStartPos() { var ret = cbg_Tool_GetCursorStartPos(selfPtr); return ret; } - + public Vector2F GetCursorScreenPos() { var ret = cbg_Tool_GetCursorScreenPos(selfPtr); return ret; } - + public void SetCursorScreenPos(Vector2F pos) { cbg_Tool_SetCursorScreenPos(selfPtr, pos); } - + public void AlignTextToFramePadding() { cbg_Tool_AlignTextToFramePadding(selfPtr); } - + public float GetTextLineHeight() { var ret = cbg_Tool_GetTextLineHeight(selfPtr); return ret; } - + public float GetTextLineHeightWithSpacing() { var ret = cbg_Tool_GetTextLineHeightWithSpacing(selfPtr); return ret; } - + public float GetFrameHeight() { var ret = cbg_Tool_GetFrameHeight(selfPtr); return ret; } - + public float GetFrameHeightWithSpacing() { var ret = cbg_Tool_GetFrameHeightWithSpacing(selfPtr); return ret; } - + public void PushID(string str_id) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); cbg_Tool_PushID_char16p(selfPtr, str_id); } - + public void PushID(string str_id_begin, string str_id_end) { if (str_id_begin == null) throw new ArgumentNullException(nameof(str_id_begin), "引数がnullです"); if (str_id_end == null) throw new ArgumentNullException(nameof(str_id_end), "引数がnullです"); cbg_Tool_PushID_char16p_char16p(selfPtr, str_id_begin, str_id_end); } - + public void PushID(int int_id) { cbg_Tool_PushID_int(selfPtr, int_id); } - + public void PopID() { cbg_Tool_PopID(selfPtr); } - + public int GetID(string str_id) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); var ret = cbg_Tool_GetID_char16p(selfPtr, str_id); return ret; } - + public int GetID(string str_id_begin, string str_id_end) { if (str_id_begin == null) throw new ArgumentNullException(nameof(str_id_begin), "引数がnullです"); @@ -15992,14 +15596,14 @@ public int GetID(string str_id_begin, string str_id_end) var ret = cbg_Tool_GetID_char16p_char16p(selfPtr, str_id_begin, str_id_end); return ret; } - + public void TextUnformatted(string text, string text_end) { if (text == null) throw new ArgumentNullException(nameof(text), "引数がnullです"); if (text_end == null) throw new ArgumentNullException(nameof(text_end), "引数がnullです"); cbg_Tool_TextUnformatted(selfPtr, text, text_end); } - + /// /// テキストを生成します。 /// @@ -16009,7 +15613,7 @@ public void Text(string fmt) if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_Text(selfPtr, fmt); } - + /// /// 色付きテキストを生成します。 /// @@ -16019,7 +15623,7 @@ public void TextColored(Vector4F col, string fmt) if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_TextColored(selfPtr, col, fmt); } - + /// /// 灰字のテキストを生成します。 /// @@ -16029,13 +15633,13 @@ public void TextDisabled(string fmt) if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_TextDisabled(selfPtr, fmt); } - + public void TextWrapped(string fmt) { if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_TextWrapped(selfPtr, fmt); } - + /// /// 横にラベルの付いたテキストを生成します。 /// @@ -16047,7 +15651,7 @@ public void LabelText(string label, string fmt) if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_LabelText(selfPtr, label, fmt); } - + /// /// 箇条書きテキストを生成します。 /// @@ -16057,7 +15661,7 @@ public void BulletText(string fmt) if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_BulletText(selfPtr, fmt); } - + /// /// ボタンを生成します。 /// @@ -16070,7 +15674,7 @@ public bool Button(string label, Vector2F size) var ret = cbg_Tool_Button(selfPtr, label, size); return ret; } - + /// /// 小さなボタンを生成します。 /// @@ -16082,7 +15686,7 @@ public bool SmallButton(string label) var ret = cbg_Tool_SmallButton(selfPtr, label); return ret; } - + /// /// 見えないボタンを生成します。 /// @@ -16094,7 +15698,7 @@ public bool InvisibleButton(string str_id, Vector2F size, ToolButtonFlags flags) var ret = cbg_Tool_InvisibleButton(selfPtr, str_id, size, (int)flags); return ret; } - + /// /// 矢印ボタンを生成します。 /// @@ -16106,14 +15710,14 @@ public bool ArrowButton(string str_id, ToolDir dir) var ret = cbg_Tool_ArrowButton(selfPtr, str_id, (int)dir); return ret; } - + public bool Checkbox(string label, ref bool v) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_Checkbox(selfPtr, label, ref v); return ret; } - + /// /// ラジオボタンを生成します。 /// @@ -16126,7 +15730,7 @@ public bool RadioButton(string label, bool active) var ret = cbg_Tool_RadioButton_char16p_bool(selfPtr, label, active); return ret; } - + /// /// ラジオボタンを生成します。 /// @@ -16138,7 +15742,7 @@ public bool RadioButton(string label, ref int v, int v_button) var ret = cbg_Tool_RadioButton_char16p_intp_int(selfPtr, label, ref v, v_button); return ret; } - + /// /// プログレスバーを生成します。 /// @@ -16150,7 +15754,7 @@ public void ProgressBar(float fraction, Vector2F size_arg, string overlay) if (overlay == null) throw new ArgumentNullException(nameof(overlay), "引数がnullです"); cbg_Tool_ProgressBar(selfPtr, fraction, size_arg, overlay); } - + /// /// 点を生成します。 /// @@ -16158,7 +15762,7 @@ public void Bullet() { cbg_Tool_Bullet(selfPtr); } - + public bool BeginCombo(string label, string preview_value, ToolComboFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16166,12 +15770,12 @@ public bool BeginCombo(string label, string preview_value, ToolComboFlags flags) var ret = cbg_Tool_BeginCombo(selfPtr, label, preview_value, (int)flags); return ret; } - + public void EndCombo() { cbg_Tool_EndCombo(selfPtr); } - + /// /// 1つのドラッグで値が増減するバーを生成します。 /// @@ -16184,7 +15788,7 @@ public bool DragFloat(string label, ref float v, float v_speed, float v_min, flo var ret = cbg_Tool_DragFloat(selfPtr, label, ref v, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragFloat2(string label, FloatArray v, float v_speed, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16192,7 +15796,7 @@ internal bool DragFloat2(string label, FloatArray v, float v_speed, float v_min, var ret = cbg_Tool_DragFloat2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragFloat3(string label, FloatArray v, float v_speed, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16200,7 +15804,7 @@ internal bool DragFloat3(string label, FloatArray v, float v_speed, float v_min, var ret = cbg_Tool_DragFloat3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragFloat4(string label, FloatArray v, float v_speed, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16208,7 +15812,7 @@ internal bool DragFloat4(string label, FloatArray v, float v_speed, float v_min, var ret = cbg_Tool_DragFloat4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + /// /// 2つのドラッグで値が増減するバーを生成します /// @@ -16222,7 +15826,7 @@ public bool DragFloatRange2(string label, ref float v_current_min, ref float v_c var ret = cbg_Tool_DragFloatRange2(selfPtr, label, ref v_current_min, ref v_current_max, v_speed, v_min, v_max, format, format_max, (int)flags); return ret; } - + /// /// 1つのドラッグで値が増減するバーを生成します。 /// @@ -16235,7 +15839,7 @@ public bool DragInt(string label, ref int v, float v_speed, int v_min, int v_max var ret = cbg_Tool_DragInt(selfPtr, label, ref v, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragInt2(string label, Int32Array v, float v_speed, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16243,7 +15847,7 @@ internal bool DragInt2(string label, Int32Array v, float v_speed, int v_min, int var ret = cbg_Tool_DragInt2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragInt3(string label, Int32Array v, float v_speed, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16251,7 +15855,7 @@ internal bool DragInt3(string label, Int32Array v, float v_speed, int v_min, int var ret = cbg_Tool_DragInt3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + internal bool DragInt4(string label, Int32Array v, float v_speed, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16259,7 +15863,7 @@ internal bool DragInt4(string label, Int32Array v, float v_speed, int v_min, int var ret = cbg_Tool_DragInt4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_speed, v_min, v_max, format, (int)flags); return ret; } - + /// /// 2つのドラッグで値が増減するバーを生成します /// @@ -16273,7 +15877,7 @@ public bool DragIntRange2(string label, ref int v_current_min, ref int v_current var ret = cbg_Tool_DragIntRange2(selfPtr, label, ref v_current_min, ref v_current_max, v_speed, v_min, v_max, format, format_max, (int)flags); return ret; } - + /// /// 1つのスライドで値が増減するバーを生成します。 /// @@ -16286,7 +15890,7 @@ public bool SliderFloat(string label, ref float v, float v_min, float v_max, str var ret = cbg_Tool_SliderFloat(selfPtr, label, ref v, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderFloat2(string label, FloatArray v, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16294,7 +15898,7 @@ internal bool SliderFloat2(string label, FloatArray v, float v_min, float v_max, var ret = cbg_Tool_SliderFloat2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderFloat3(string label, FloatArray v, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16302,7 +15906,7 @@ internal bool SliderFloat3(string label, FloatArray v, float v_min, float v_max, var ret = cbg_Tool_SliderFloat3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderFloat4(string label, FloatArray v, float v_min, float v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16310,7 +15914,7 @@ internal bool SliderFloat4(string label, FloatArray v, float v_min, float v_max, var ret = cbg_Tool_SliderFloat4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + /// /// スライドで値が増減する,角度を扱うバーを生成します。 /// @@ -16323,7 +15927,7 @@ public bool SliderAngle(string label, ref float v_rad, float v_degrees_min, floa var ret = cbg_Tool_SliderAngle(selfPtr, label, ref v_rad, v_degrees_min, v_degrees_max, format, (int)flags); return ret; } - + /// /// 1つのスライドで値が増減するバーを生成します。 /// @@ -16336,7 +15940,7 @@ public bool SliderInt(string label, ref int v, int v_min, int v_max, string form var ret = cbg_Tool_SliderInt(selfPtr, label, ref v, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderInt2(string label, Int32Array v, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16344,7 +15948,7 @@ internal bool SliderInt2(string label, Int32Array v, int v_min, int v_max, strin var ret = cbg_Tool_SliderInt2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderInt3(string label, Int32Array v, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16352,7 +15956,7 @@ internal bool SliderInt3(string label, Int32Array v, int v_min, int v_max, strin var ret = cbg_Tool_SliderInt3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + internal bool SliderInt4(string label, Int32Array v, int v_min, int v_max, string format, ToolSliderFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16360,7 +15964,7 @@ internal bool SliderInt4(string label, Int32Array v, int v_min, int v_max, strin var ret = cbg_Tool_SliderInt4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, v_min, v_max, format, (int)flags); return ret; } - + /// /// スライドで値が増減する縦バーを生成します。 /// @@ -16374,7 +15978,7 @@ public bool VSliderFloat(string label, Vector2F size, ref float v, float v_min, var ret = cbg_Tool_VSliderFloat(selfPtr, label, size, ref v, v_min, v_max, format, (int)flags); return ret; } - + /// /// スライドで値が増減する縦バーを生成します。 /// @@ -16388,7 +15992,7 @@ public bool VSliderInt(string label, Vector2F size, ref int v, int v_min, int v_ var ret = cbg_Tool_VSliderInt(selfPtr, label, size, ref v, v_min, v_max, format, (int)flags); return ret; } - + /// /// 1つの小数が入力可能なボックスを生成します。 /// @@ -16401,7 +16005,7 @@ public bool InputFloat(string label, ref float v, float step, float step_fast, s var ret = cbg_Tool_InputFloat(selfPtr, label, ref v, step, step_fast, format, (int)flags); return ret; } - + /// /// 2つの小数が入力可能なボックスを生成します。 /// @@ -16414,7 +16018,7 @@ internal bool InputFloat2(string label, FloatArray v, string format, ToolInputTe var ret = cbg_Tool_InputFloat2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, format, (int)flags); return ret; } - + /// /// 3つの小数が入力可能なボックスを生成します。 /// @@ -16427,7 +16031,7 @@ internal bool InputFloat3(string label, FloatArray v, string format, ToolInputTe var ret = cbg_Tool_InputFloat3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, format, (int)flags); return ret; } - + /// /// 4つの小数が入力可能なボックスを生成します。 /// @@ -16440,7 +16044,7 @@ internal bool InputFloat4(string label, FloatArray v, string format, ToolInputTe var ret = cbg_Tool_InputFloat4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, format, (int)flags); return ret; } - + /// /// 1つの整数が入力可能なボックスを生成します。 /// @@ -16452,7 +16056,7 @@ public bool InputInt(string label, ref int v, int step, int step_fast, ToolInput var ret = cbg_Tool_InputInt(selfPtr, label, ref v, step, step_fast, (int)flags); return ret; } - + /// /// 2つの整数が入力可能なボックスを生成します。 /// @@ -16464,7 +16068,7 @@ internal bool InputInt2(string label, Int32Array v, ToolInputTextFlags flags) var ret = cbg_Tool_InputInt2(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + /// /// 3つの整数が入力可能なボックスを生成します。 /// @@ -16476,7 +16080,7 @@ internal bool InputInt3(string label, Int32Array v, ToolInputTextFlags flags) var ret = cbg_Tool_InputInt3(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + /// /// 4つの整数が入力可能なボックスを生成します。 /// @@ -16488,26 +16092,26 @@ internal bool InputInt4(string label, Int32Array v, ToolInputTextFlags flags) var ret = cbg_Tool_InputInt4(selfPtr, label, v != null ? v.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + internal bool ColorPicker3(string label, FloatArray col, ToolColorEditFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_ColorPicker3(selfPtr, label, col != null ? col.selfPtr : IntPtr.Zero, (int)flags); return ret; } - + internal bool ColorPicker4(string label, FloatArray col, ToolColorEditFlags flags, ref float ref_col) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_ColorPicker4(selfPtr, label, col != null ? col.selfPtr : IntPtr.Zero, (int)flags, ref ref_col); return ret; } - + public void SetColorEditOptions(ToolColorEditFlags flags) { cbg_Tool_SetColorEditOptions(selfPtr, (int)flags); } - + /// /// ツリーのノードを生成します。 /// @@ -16519,7 +16123,7 @@ public bool TreeNode(string label) var ret = cbg_Tool_TreeNode_char16p(selfPtr, label); return ret; } - + /// /// ツリーのノードを生成します。 /// @@ -16531,7 +16135,7 @@ public bool TreeNode(string str_id, string fmt) var ret = cbg_Tool_TreeNode_char16p_char16p(selfPtr, str_id, fmt); return ret; } - + /// /// ツリーのノードを生成します。 /// @@ -16544,7 +16148,7 @@ public bool TreeNodeEx(string label, ToolTreeNodeFlags flags) var ret = cbg_Tool_TreeNodeEx_char16p_ToolTreeNodeFlags(selfPtr, label, (int)flags); return ret; } - + /// /// ツリーのノードを生成します。 /// @@ -16557,13 +16161,13 @@ public bool TreeNodeEx(string str_id, ToolTreeNodeFlags flags, string fmt) var ret = cbg_Tool_TreeNodeEx_char16p_ToolTreeNodeFlags_char16p(selfPtr, str_id, (int)flags, fmt); return ret; } - + public void TreePush(string str_id) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); cbg_Tool_TreePush(selfPtr, str_id); } - + /// /// TreeNodeのツリーを開きます。 /// @@ -16571,13 +16175,13 @@ public void TreePop() { cbg_Tool_TreePop(selfPtr); } - + public float GetTreeNodeToLabelSpacing() { var ret = cbg_Tool_GetTreeNodeToLabelSpacing(selfPtr); return ret; } - + /// /// 折り畳み式のヘッダを生成します。 /// @@ -16590,7 +16194,7 @@ public bool CollapsingHeader(string label, ToolTreeNodeFlags flags) var ret = cbg_Tool_CollapsingHeader_char16p_ToolTreeNodeFlags(selfPtr, label, (int)flags); return ret; } - + /// /// 折り畳み式のヘッダを生成します。 /// @@ -16603,12 +16207,12 @@ public bool CollapsingHeader(string label, ref bool p_open, ToolTreeNodeFlags fl var ret = cbg_Tool_CollapsingHeader_char16p_boolp_ToolTreeNodeFlags(selfPtr, label, ref p_open, (int)flags); return ret; } - + public void SetNextItemOpen(bool is_open, ToolCond cond) { cbg_Tool_SetNextItemOpen(selfPtr, is_open, (int)cond); } - + /// /// 選択式のテキストを生成します。 /// @@ -16622,7 +16226,7 @@ public bool Selectable(string label, bool selected, ToolSelectableFlags flags, V var ret = cbg_Tool_Selectable_char16p_bool_ToolSelectableFlags_Vector2F_C(selfPtr, label, selected, (int)flags, size); return ret; } - + /// /// 選択式のテキストを生成します。 /// @@ -16635,45 +16239,45 @@ public bool Selectable(string label, ref bool p_selected, ToolSelectableFlags fl var ret = cbg_Tool_Selectable_char16p_boolp_ToolSelectableFlags_Vector2F_C(selfPtr, label, ref p_selected, (int)flags, size); return ret; } - + public bool ListBoxHeader(string label, Vector2F size) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_ListBoxHeader_char16p_Vector2F_C(selfPtr, label, size); return ret; } - + public bool ListBoxHeader(string label, int items_count, int height_in_items) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_ListBoxHeader_char16p_int_int(selfPtr, label, items_count, height_in_items); return ret; } - + public void ListBoxFooter() { cbg_Tool_ListBoxFooter(selfPtr); } - + public void Value(string prefix, bool b) { if (prefix == null) throw new ArgumentNullException(nameof(prefix), "引数がnullです"); cbg_Tool_Value_char16p_bool(selfPtr, prefix, b); } - + public void Value(string prefix, int v) { if (prefix == null) throw new ArgumentNullException(nameof(prefix), "引数がnullです"); cbg_Tool_Value_char16p_int(selfPtr, prefix, v); } - + public void Value(string prefix, float v, string float_format) { if (prefix == null) throw new ArgumentNullException(nameof(prefix), "引数がnullです"); if (float_format == null) throw new ArgumentNullException(nameof(float_format), "引数がnullです"); cbg_Tool_Value_char16p_float_char16p(selfPtr, prefix, v, float_format); } - + /// /// 'EndMenuBar()' を呼び出してください /// @@ -16682,23 +16286,23 @@ public bool BeginMenuBar() var ret = cbg_Tool_BeginMenuBar(selfPtr); return ret; } - + public void EndMenuBar() { cbg_Tool_EndMenuBar(selfPtr); } - + public bool BeginMainMenuBar() { var ret = cbg_Tool_BeginMainMenuBar(selfPtr); return ret; } - + public void EndMainMenuBar() { cbg_Tool_EndMainMenuBar(selfPtr); } - + /// /// 'EndMenu()' を呼び出してください /// @@ -16709,12 +16313,12 @@ public bool BeginMenu(string label, bool enabled) var ret = cbg_Tool_BeginMenu(selfPtr, label, enabled); return ret; } - + public void EndMenu() { cbg_Tool_EndMenu(selfPtr); } - + public bool MenuItem(string label, string shortcut, bool selected, bool enabled) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16722,7 +16326,7 @@ public bool MenuItem(string label, string shortcut, bool selected, bool enabled) var ret = cbg_Tool_MenuItem_char16p_char16p_bool_bool(selfPtr, label, shortcut, selected, enabled); return ret; } - + public bool MenuItem(string label, string shortcut, ref bool p_selected, bool enabled) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); @@ -16730,7 +16334,7 @@ public bool MenuItem(string label, string shortcut, ref bool p_selected, bool en var ret = cbg_Tool_MenuItem_char16p_char16p_boolp_bool(selfPtr, label, shortcut, ref p_selected, enabled); return ret; } - + /// /// 'EndTooltip()' を呼び出してください /// @@ -16738,18 +16342,18 @@ public void BeginTooltip() { cbg_Tool_BeginTooltip(selfPtr); } - + public void EndTooltip() { cbg_Tool_EndTooltip(selfPtr); } - + public void SetTooltip(string fmt) { if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_SetTooltip(selfPtr, fmt); } - + /// /// 'EndPopup()' を呼び出してください /// @@ -16760,102 +16364,102 @@ public bool BeginPopup(string str_id, ToolWindowFlags flags) var ret = cbg_Tool_BeginPopup(selfPtr, str_id, (int)flags); return ret; } - + public void EndPopup() { cbg_Tool_EndPopup(selfPtr); } - + public void OpenPopup(string str_id, ToolPopupFlags popup_flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); cbg_Tool_OpenPopup(selfPtr, str_id, (int)popup_flags); } - + public void OpenPopupOnItemClick(string str_id, ToolPopupFlags popup_flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); cbg_Tool_OpenPopupOnItemClick(selfPtr, str_id, (int)popup_flags); } - + public void CloseCurrentPopup() { cbg_Tool_CloseCurrentPopup(selfPtr); } - + public bool BeginPopupContextItem(string str_id, ToolPopupFlags popup_flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); var ret = cbg_Tool_BeginPopupContextItem(selfPtr, str_id, (int)popup_flags); return ret; } - + public bool BeginPopupContextWindow(string str_id, ToolPopupFlags popup_flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); var ret = cbg_Tool_BeginPopupContextWindow(selfPtr, str_id, (int)popup_flags); return ret; } - + public bool BeginPopupContextVoid(string str_id, ToolPopupFlags popup_flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); var ret = cbg_Tool_BeginPopupContextVoid(selfPtr, str_id, (int)popup_flags); return ret; } - + public bool IsPopupOpen(string str_id, ToolPopupFlags flags) { if (str_id == null) throw new ArgumentNullException(nameof(str_id), "引数がnullです"); var ret = cbg_Tool_IsPopupOpen(selfPtr, str_id, (int)flags); return ret; } - + public void Columns(int count, string id, bool border) { if (id == null) throw new ArgumentNullException(nameof(id), "引数がnullです"); cbg_Tool_Columns(selfPtr, count, id, border); } - + public void NextColumn() { cbg_Tool_NextColumn(selfPtr); } - + public int GetColumnIndex() { var ret = cbg_Tool_GetColumnIndex(selfPtr); return ret; } - + public float GetColumnWidth(int column_index) { var ret = cbg_Tool_GetColumnWidth(selfPtr, column_index); return ret; } - + public void SetColumnWidth(int column_index, float width) { cbg_Tool_SetColumnWidth(selfPtr, column_index, width); } - + public float GetColumnOffset(int column_index) { var ret = cbg_Tool_GetColumnOffset(selfPtr, column_index); return ret; } - + public void SetColumnOffset(int column_index, float offset_x) { cbg_Tool_SetColumnOffset(selfPtr, column_index, offset_x); } - + public int GetColumnsCount() { var ret = cbg_Tool_GetColumnsCount(selfPtr); return ret; } - + /// /// 'EndTabBar()' を呼び出してください /// @@ -16866,262 +16470,262 @@ public bool BeginTabBar(string str_id, ToolTabBarFlags flags) var ret = cbg_Tool_BeginTabBar(selfPtr, str_id, (int)flags); return ret; } - + public void EndTabBar() { cbg_Tool_EndTabBar(selfPtr); } - + public void EndTabItem() { cbg_Tool_EndTabItem(selfPtr); } - + public bool TabItemButton(string label, ToolTabItemFlags flags) { if (label == null) throw new ArgumentNullException(nameof(label), "引数がnullです"); var ret = cbg_Tool_TabItemButton(selfPtr, label, (int)flags); return ret; } - + public void SetTabItemClosed(string tab_or_docked_window_label) { if (tab_or_docked_window_label == null) throw new ArgumentNullException(nameof(tab_or_docked_window_label), "引数がnullです"); cbg_Tool_SetTabItemClosed(selfPtr, tab_or_docked_window_label); } - + public void SetNextWindowDockID(int dock_id, ToolCond cond) { cbg_Tool_SetNextWindowDockID(selfPtr, dock_id, (int)cond); } - + public int GetWindowDockID() { var ret = cbg_Tool_GetWindowDockID(selfPtr); return ret; } - + public bool IsWindowDocked() { var ret = cbg_Tool_IsWindowDocked(selfPtr); return ret; } - + public void LogToTTY(int auto_open_depth) { cbg_Tool_LogToTTY(selfPtr, auto_open_depth); } - + public void LogToFile(int auto_open_depth, string filename) { if (filename == null) throw new ArgumentNullException(nameof(filename), "引数がnullです"); cbg_Tool_LogToFile(selfPtr, auto_open_depth, filename); } - + public void LogToClipboard(int auto_open_depth) { cbg_Tool_LogToClipboard(selfPtr, auto_open_depth); } - + public void LogFinish() { cbg_Tool_LogFinish(selfPtr); } - + public void LogButtons() { cbg_Tool_LogButtons(selfPtr); } - + public void LogText(string fmt) { if (fmt == null) throw new ArgumentNullException(nameof(fmt), "引数がnullです"); cbg_Tool_LogText(selfPtr, fmt); } - + public bool BeginDragDropSource(ToolDragDropFlags flags) { var ret = cbg_Tool_BeginDragDropSource(selfPtr, (int)flags); return ret; } - + public void EndDragDropSource() { cbg_Tool_EndDragDropSource(selfPtr); } - + public bool BeginDragDropTarget() { var ret = cbg_Tool_BeginDragDropTarget(selfPtr); return ret; } - + public void EndDragDropTarget() { cbg_Tool_EndDragDropTarget(selfPtr); } - + public void PushClipRect(Vector2F clip_rect_min, Vector2F clip_rect_max, bool intersect_with_current_clip_rect) { cbg_Tool_PushClipRect(selfPtr, clip_rect_min, clip_rect_max, intersect_with_current_clip_rect); } - + public void PopClipRect() { cbg_Tool_PopClipRect(selfPtr); } - + public void SetItemDefaultFocus() { cbg_Tool_SetItemDefaultFocus(selfPtr); } - + public void SetKeyboardFocusHere(int offset) { cbg_Tool_SetKeyboardFocusHere(selfPtr, offset); } - + public bool IsItemHovered(ToolHoveredFlags flags) { var ret = cbg_Tool_IsItemHovered(selfPtr, (int)flags); return ret; } - + public bool IsItemActive() { var ret = cbg_Tool_IsItemActive(selfPtr); return ret; } - + public bool IsItemFocused() { var ret = cbg_Tool_IsItemFocused(selfPtr); return ret; } - + public bool IsItemClicked(ToolMouseButton mouse_button) { var ret = cbg_Tool_IsItemClicked(selfPtr, (int)mouse_button); return ret; } - + public bool IsItemVisible() { var ret = cbg_Tool_IsItemVisible(selfPtr); return ret; } - + public bool IsItemEdited() { var ret = cbg_Tool_IsItemEdited(selfPtr); return ret; } - + public bool IsItemActivated() { var ret = cbg_Tool_IsItemActivated(selfPtr); return ret; } - + public bool IsItemDeactivated() { var ret = cbg_Tool_IsItemDeactivated(selfPtr); return ret; } - + public bool IsItemDeactivatedAfterEdit() { var ret = cbg_Tool_IsItemDeactivatedAfterEdit(selfPtr); return ret; } - + public bool IsItemToggledOpen() { var ret = cbg_Tool_IsItemToggledOpen(selfPtr); return ret; } - + public bool IsAnyItemHovered() { var ret = cbg_Tool_IsAnyItemHovered(selfPtr); return ret; } - + public bool IsAnyItemActive() { var ret = cbg_Tool_IsAnyItemActive(selfPtr); return ret; } - + public bool IsAnyItemFocused() { var ret = cbg_Tool_IsAnyItemFocused(selfPtr); return ret; } - + public Vector2F GetItemRectMin() { var ret = cbg_Tool_GetItemRectMin(selfPtr); return ret; } - + public Vector2F GetItemRectMax() { var ret = cbg_Tool_GetItemRectMax(selfPtr); return ret; } - + public Vector2F GetItemRectSize() { var ret = cbg_Tool_GetItemRectSize(selfPtr); return ret; } - + public void SetItemAllowOverlap() { cbg_Tool_SetItemAllowOverlap(selfPtr); } - + public bool IsRectVisible(Vector2F size) { var ret = cbg_Tool_IsRectVisible_Vector2F_C(selfPtr, size); return ret; } - + public bool IsRectVisible(Vector2F rect_min, Vector2F rect_max) { var ret = cbg_Tool_IsRectVisible_Vector2F_C_Vector2F_C(selfPtr, rect_min, rect_max); return ret; } - + public int GetFrameCount() { var ret = cbg_Tool_GetFrameCount(selfPtr); return ret; } - + public string GetStyleColorName(ToolCol idx) { var ret = cbg_Tool_GetStyleColorName(selfPtr, (int)idx); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + public void CalcListClipping(int items_count, float items_height, ref int out_items_display_start, ref int out_items_display_end) { cbg_Tool_CalcListClipping(selfPtr, items_count, items_height, ref out_items_display_start, ref out_items_display_end); } - + public bool BeginChildFrame(int id, Vector2F size, ToolWindowFlags flags) { var ret = cbg_Tool_BeginChildFrame(selfPtr, id, size, (int)flags); return ret; } - + public void EndChildFrame() { cbg_Tool_EndChildFrame(selfPtr); } - + public Vector2F CalcTextSize(string text, string text_end, bool hide_text_after_double_hash, float wrap_width) { if (text == null) throw new ArgumentNullException(nameof(text), "引数がnullです"); @@ -17129,169 +16733,169 @@ public Vector2F CalcTextSize(string text, string text_end, bool hide_text_after_ var ret = cbg_Tool_CalcTextSize(selfPtr, text, text_end, hide_text_after_double_hash, wrap_width); return ret; } - + public Vector4F ColorConvertU32ToFloat4(int in_) { var ret = cbg_Tool_ColorConvertU32ToFloat4(selfPtr, in_); return ret; } - + public int ColorConvertFloat4ToU32(Vector4F in_) { var ret = cbg_Tool_ColorConvertFloat4ToU32(selfPtr, in_); return ret; } - + public int GetKeyIndex(ToolKey imgui_key) { var ret = cbg_Tool_GetKeyIndex(selfPtr, (int)imgui_key); return ret; } - + public bool IsKeyDown(int user_key_index) { var ret = cbg_Tool_IsKeyDown(selfPtr, user_key_index); return ret; } - + public bool IsKeyPressed(int user_key_index, bool repeat) { var ret = cbg_Tool_IsKeyPressed(selfPtr, user_key_index, repeat); return ret; } - + public bool IsKeyReleased(int user_key_index) { var ret = cbg_Tool_IsKeyReleased(selfPtr, user_key_index); return ret; } - + public int GetKeyPressedAmount(int key_index, float repeat_delay, float rate) { var ret = cbg_Tool_GetKeyPressedAmount(selfPtr, key_index, repeat_delay, rate); return ret; } - + public void CaptureKeyboardFromApp(bool want_capture_keyboard_value) { cbg_Tool_CaptureKeyboardFromApp(selfPtr, want_capture_keyboard_value); } - + public bool IsMouseDown(ToolMouseButton button) { var ret = cbg_Tool_IsMouseDown(selfPtr, (int)button); return ret; } - + public bool IsMouseClicked(ToolMouseButton button, bool repeat) { var ret = cbg_Tool_IsMouseClicked(selfPtr, (int)button, repeat); return ret; } - + public bool IsMouseReleased(ToolMouseButton button) { var ret = cbg_Tool_IsMouseReleased(selfPtr, (int)button); return ret; } - + public bool IsMouseDoubleClicked(ToolMouseButton button) { var ret = cbg_Tool_IsMouseDoubleClicked(selfPtr, (int)button); return ret; } - + public bool IsMouseHoveringRect(Vector2F r_min, Vector2F r_max, bool clip) { var ret = cbg_Tool_IsMouseHoveringRect(selfPtr, r_min, r_max, clip); return ret; } - + public bool IsAnyMouseDown() { var ret = cbg_Tool_IsAnyMouseDown(selfPtr); return ret; } - + public Vector2F GetMousePos() { var ret = cbg_Tool_GetMousePos(selfPtr); return ret; } - + public Vector2F GetMousePosOnOpeningCurrentPopup() { var ret = cbg_Tool_GetMousePosOnOpeningCurrentPopup(selfPtr); return ret; } - + public bool IsMouseDragging(ToolMouseButton button, float lock_threshold) { var ret = cbg_Tool_IsMouseDragging(selfPtr, (int)button, lock_threshold); return ret; } - + public Vector2F GetMouseDragDelta(ToolMouseButton button, float lock_threshold) { var ret = cbg_Tool_GetMouseDragDelta(selfPtr, (int)button, lock_threshold); return ret; } - + public void ResetMouseDragDelta(ToolMouseButton button) { cbg_Tool_ResetMouseDragDelta(selfPtr, (int)button); } - + public void SetMouseCursor(ToolMouseCursor cursor_type) { cbg_Tool_SetMouseCursor(selfPtr, (int)cursor_type); } - + public void CaptureMouseFromApp(bool want_capture_mouse_value) { cbg_Tool_CaptureMouseFromApp(selfPtr, want_capture_mouse_value); } - + public string GetClipboardText() { var ret = cbg_Tool_GetClipboardText(selfPtr); return System.Runtime.InteropServices.Marshal.PtrToStringUni(ret); } - + public void SetClipboardText(string text) { if (text == null) throw new ArgumentNullException(nameof(text), "引数がnullです"); cbg_Tool_SetClipboardText(selfPtr, text); } - + public void LoadIniSettingsFromDisk(string ini_filename) { if (ini_filename == null) throw new ArgumentNullException(nameof(ini_filename), "引数がnullです"); cbg_Tool_LoadIniSettingsFromDisk(selfPtr, ini_filename); } - + public void SaveIniSettingsToDisk(string ini_filename) { if (ini_filename == null) throw new ArgumentNullException(nameof(ini_filename), "引数がnullです"); cbg_Tool_SaveIniSettingsToDisk(selfPtr, ini_filename); } - + public void UpdatePlatformWindows() { cbg_Tool_UpdatePlatformWindows(selfPtr); } - + public void DestroyPlatformWindows() { cbg_Tool_DestroyPlatformWindows(selfPtr); } - + /// /// のインスタンスを削除します。 /// ~Tool() { - lock (this) + lock (this) { if (selfPtr != IntPtr.Zero) { @@ -17301,5 +16905,5 @@ public void DestroyPlatformWindows() } } } - + } From c1cf5aab1a3fbd15d1727fc5b7e696d3df53f9ea Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 4 Jun 2023 03:50:26 +0900 Subject: [PATCH 10/49] update Buffer --- Engine/CorePartial/Buffer.cs | 73 +++++++++++++++++++++++++++++------- 1 file changed, 59 insertions(+), 14 deletions(-) diff --git a/Engine/CorePartial/Buffer.cs b/Engine/CorePartial/Buffer.cs index 52bb0baf..42a5f8ef 100644 --- a/Engine/CorePartial/Buffer.cs +++ b/Engine/CorePartial/Buffer.cs @@ -39,13 +39,13 @@ public class Buffer where T : struct /// /// バッファの使途 /// 要素数 - /// + /// のインスタンス public static Buffer Create(BufferUsageType usage, int count) { var internalBuffer = Buffer.Create(usage, Marshal.SizeOf() * count); if (internalBuffer == null) { - Engine.Log.Error(LogCategory.Engine, "Buffer::Create: can't create internal buffer."); + Engine.Log.Error(LogCategory.Engine, "Buffer::Create: bufferの作成に失敗しました。"); return null; } @@ -53,36 +53,81 @@ public static Buffer Create(BufferUsageType usage, int count) } /// - /// バッファへの書き込みを開始します + /// バッファを生成します /// - /// - public Span Lock() + /// バッファの使途 + /// 要素数 + /// のインスタンス + /// バッファの作成に失敗 + public static Buffer CreateStrict(BufferUsageType usage, int count) + { + var internalBuffer = Buffer.Create(usage, Marshal.SizeOf() * count); + if (internalBuffer == null) + { + throw new ArgumentException("Bufferの作成に失敗しました。"); + } + + return new Buffer(internalBuffer, count); + } + + /// + /// バッファのデータへアクセスする + /// + /// バッファのデータを持つ + public Container Lock() { unsafe { - return new Span(InternalBuffer.Lock().ToPointer(), Count); + var lockPtr = InternalBuffer.Lock(); + if (lockPtr == IntPtr.Zero) + { + return new Container(null, null); + } + return new Container(this, new Span(lockPtr.ToPointer(), Count)); } } /// - /// バッファへの書き込みを終了します + /// バッファのデータへアクセスする。 /// - public void Unlock() + /// バッファのデータを持つ + /// バッファのロックに失敗 + public Container LockStrict() { - InternalBuffer.Unlock(); + var container = Lock(); + + if (container.Span == null) + { + throw new InvalidOperationException("バッファのロックに失敗しました。"); + } + + return container; } /// - /// バッファから値を取得します + /// バッファへの書き込みを開始します /// /// - public ReadOnlySpan Read() + public ref struct Container { - unsafe + private Buffer buffer; + + /// + /// バッファのデータ + /// + /// + public Span Span { get; init; } + + internal Container(Buffer buffer, Span span) { - var readback = new ReadOnlySpan(InternalBuffer.Read().ToPointer(), Count); - return readback; + this.buffer = buffer; + Span = span; } + + /// + /// バッファのアンロックを行う + /// + public void Dispose() => buffer?.InternalBuffer.Unlock(); } } } From caee5b1dd8cd06ad5295cb0e5f0ca99f55d37d43 Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 4 Jun 2023 03:50:37 +0900 Subject: [PATCH 11/49] update ComputeShader test --- Test/ComputeShader.cs | 87 ++++++++++++++++++++++++++++++++----------- 1 file changed, 66 insertions(+), 21 deletions(-) diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs index 90528969..80c52503 100644 --- a/Test/ComputeShader.cs +++ b/Test/ComputeShader.cs @@ -25,6 +25,32 @@ public struct OutputData public float value; }; + [Test, Apartment(ApartmentState.STA)] + public void Buffer() + { + var tc = new TestCore(); + tc.Init(); + + int dataSize = 256; + + var input = Buffer.CreateStrict(BufferUsageType.MapWrite | BufferUsageType.CopySrc, dataSize); + Assert.NotNull(input); + + using (var data = input.LockStrict()) + { + for (int i = 0; i < input.Count; i++) + { + data.Span[i] = new InputData() + { + value1 = i * 2, + value2 = i * 2 + 1, + }; + } + } + + tc.End(); + } + [Test, Apartment(ApartmentState.STA)] public void ComputeShaderBasic() { @@ -81,9 +107,10 @@ void main(uint3 dtid : SV_DispatchThreadID) } "; + int offset = 100; + var pip1 = ComputePipelineState.Create(); pip1.Shader = Shader.Create("cs1", csCode1, ShaderStage.Compute); - int offset = 100; pip1.SetVector4F("offset", new Vector4F(offset, 0, 0, 0)); var pip2 = ComputePipelineState.Create(); @@ -92,57 +119,75 @@ void main(uint3 dtid : SV_DispatchThreadID) int dataSize = 256; - var read = Buffer.Create(BufferUsageType.Compute, dataSize); + var input = Buffer.CreateStrict(BufferUsageType.MapWrite | BufferUsageType.CopySrc, dataSize); + Assert.NotNull(input); + + using (var data = input.LockStrict()) { - var data = read.Lock(); - for (int i = 0; i < read.Count; i++) + for (int i = 0; i < input.Count; i++) { - data[i] = new InputData() + data.Span[i] = new InputData() { value1 = i * 2, value2 = i * 2 + 1, }; } - read.Unlock(); } - var write1 = Buffer.Create(BufferUsageType.Compute, dataSize); - var write2 = Buffer.Create(BufferUsageType.Compute, dataSize); + var inputBuffer = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopyDst, dataSize); + + var write1 = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, dataSize); + var write2 = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, dataSize); + + Assert.NotNull(inputBuffer); + Assert.NotNull(write1); + Assert.NotNull(write2); + + var write1Dst = Buffer.Create(BufferUsageType.MapRead | BufferUsageType.CopyDst, dataSize); + var write2Dst = Buffer.Create(BufferUsageType.MapRead | BufferUsageType.CopyDst, dataSize); + + Assert.NotNull(write1Dst); + Assert.NotNull(write2Dst); Engine.Graphics.CommandList.Begin(); - Engine.Graphics.CommandList.UploadBuffer(read); + + Engine.Graphics.CommandList.CopyBuffer(input, inputBuffer); Engine.Graphics.CommandList.BeginComputePass(); - Engine.Graphics.CommandList.SetComputeBuffer(read, 0); + Engine.Graphics.CommandList.SetComputeBuffer(inputBuffer, 0); Engine.Graphics.CommandList.SetComputeBuffer(write1, 1); Engine.Graphics.CommandList.ComputePipelineState = pip1; Engine.Graphics.CommandList.Dispatch(dataSize, 1, 1); - Engine.Graphics.CommandList.SetComputeBuffer(read, 0); + Engine.Graphics.CommandList.SetComputeBuffer(inputBuffer, 0); Engine.Graphics.CommandList.SetComputeBuffer(write2, 1); Engine.Graphics.CommandList.ComputePipelineState = pip2; Engine.Graphics.CommandList.Dispatch(dataSize, 1, 1); Engine.Graphics.CommandList.EndComputePass(); - Engine.Graphics.CommandList.ReadbackBuffer(read); - Engine.Graphics.CommandList.ReadbackBuffer(write1); - Engine.Graphics.CommandList.ReadbackBuffer(write2); + Engine.Graphics.CommandList.CopyBuffer(write1, write1Dst); + Engine.Graphics.CommandList.CopyBuffer(write2, write2Dst); Engine.Graphics.CommandList.End(); Engine.Graphics.ExecuteCommandList(); Engine.Graphics.WaitFinish(); - var readValues = read.Read(); - var write1Values = write1.Read(); - var write2Values = write2.Read(); - - for (int i = 0; i < readValues.Length; i++) + using (var readValues = input.LockStrict()) + using (var write1Values = write1Dst.LockStrict()) + using (var write2Values = write2Dst.LockStrict()) { - Assert.AreEqual(write1Values[i].value, readValues[i].value1 * readValues[i].value2 + offset); - Assert.AreEqual(write2Values[i].value, readValues[i].value1 * readValues[i].value2 * offset); + for (int i = 0; i < readValues.Span.Length; i++) + { + Assert.AreEqual( + write1Values.Span[i].value, + readValues.Span[i].value1 * readValues.Span[i].value2 + offset); + Assert.AreEqual( + write2Values.Span[i].value, + readValues.Span[i].value1 * readValues.Span[i].value2 * offset); + } } tc.End(); From 454f04eac3123627c7a5b17830c4585a3cd7269c Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 4 Jun 2023 03:50:46 +0900 Subject: [PATCH 12/49] fix Fluid --- Samples/ComputeShader/Fluid.cs | 279 +++++++++++++++++---------------- 1 file changed, 142 insertions(+), 137 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 05f8f7e1..ad147951 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -69,10 +69,9 @@ public static void Main(string[] args) Engine.TargetFPS = 240; var density = CalcRestDensity(EffectiveRadius); - var particles = Buffer.Create(BufferUsageType.Compute, 2048); + var particlesInput = Buffer.CreateStrict(BufferUsageType.MapWrite | BufferUsageType.CopySrc, 2048); + using (var data = particlesInput.LockStrict()) { - var data = particles.Lock(); - int ind = 0; for (int y = 0; y < 300 / (ParticleRadius * 2); y++) { @@ -83,7 +82,7 @@ public static void Main(string[] args) y * (ParticleRadius * 2) + ParticleRadius < 8 || y * (ParticleRadius * 2) + ParticleRadius > 300 - 8) { - data[ind++] = new Particle() + data.Span[ind++] = new Particle() { Current = new Vector2F(x * (ParticleRadius * 2) + ParticleRadius, y * (ParticleRadius * 2) + ParticleRadius), Next = new Vector2F(x * (ParticleRadius * 2) + ParticleRadius, y * (ParticleRadius * 2) + ParticleRadius), @@ -94,24 +93,28 @@ public static void Main(string[] args) } } } - for (int i = ind; i < particles.Count; i++) + + for (int i = ind; i < particlesInput.Count; i++) { - data[i] = new Particle() + data.Span[i] = new Particle() { Current = new Vector2F(i % 50 * 4 + 10, i / 50 * 4 + 20), Velocity = new Vector2F(0, 0), Pscl = 0, }; } - particles.Unlock(); } - var gridTable = Buffer.Create(BufferUsageType.Compute, 2048); - var gridIndicesTable = Buffer.Create(BufferUsageType.Compute, 60 * 60); - var particleComputeVertex = Buffer.Create(BufferUsageType.Compute, particles.Count * 4); - var particleVertex = Buffer.Create(BufferUsageType.Vertex, particles.Count * 4); - var particleComputeIndex = Buffer.Create(BufferUsageType.Compute, particles.Count * 6); - var particleIndex = Buffer.Create(BufferUsageType.Index, particles.Count * 6); + var particles = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopyDst, 2048); + + var gridTable = Buffer.CreateStrict(BufferUsageType.Compute, 2048); + var gridIndicesTable = Buffer.CreateStrict(BufferUsageType.Compute, 60 * 60); + + var particleComputeVertex = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, particles.Count * 4); + var particleComputeIndex = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, particles.Count * 6); + + var particleVertex = Buffer.CreateStrict(BufferUsageType.Vertex, particles.Count * 4); + var particleIndex = Buffer.CreateStrict(BufferUsageType.Index, particles.Count * 6); var csCalcExternalForces = @" struct Particle @@ -214,22 +217,22 @@ void main(uint3 dtid : SV_DispatchThreadID) int inc = (int)Inc.x; int dir = (int)Dir.x; int t = dtid.x; // thread index - int low = t & (inc - 1); // low order bits (below INC) - int i = (t << 1) - low; // insert 0 at position INC + int low = t & (inc - 1); // low order bits (below INC) + int i = (t << 1) - low; // insert 0 at position INC bool reverse = ((dir & i) == 0); - // Load - int2 x0 = gridTable[i]; - int2 x1 = gridTable[inc + i]; + // Load + int2 x0 = gridTable[i]; + int2 x1 = gridTable[inc + i]; - // Sort - int2 auxa = x0; - int2 auxb = x1; - if ((x0.x < x1.x) ^ reverse) { x0 = auxb; x1 = auxa; } + // Sort + int2 auxa = x0; + int2 auxb = x1; + if ((x0.x < x1.x) ^ reverse) { x0 = auxb; x1 = auxa; } - // Store - gridTable[i] = x0; - gridTable[inc + i] = x1; + // Store + gridTable[i] = x0; + gridTable[inc + i] = x1; } "; @@ -329,96 +332,96 @@ float2 CalcDensityCellPB(int2 gridPos, int i, float2 pos0) int startIndex = gridIndicesTable[gridHash].x; float h = EffectiveRadius.x; - float dens = 0.0f; - if(startIndex != 0xffffffff){ // セルが空でないかのチェック - // セル内のパーティクルで反復 - int endIndex = gridIndicesTable[gridHash].y; - for(int j = startIndex; j < endIndex; ++j){ - //if(j == i) continue; - - float2 pos1 = particles[gridTable[j].y].Next; - - float2 rij = pos0 - pos1; - float r = length(rij); - - if(r <= h){ - float q = h * h - r * r; - dens += Wpoly6.x * q * q * q; - } - } - } - - return dens; + float dens = 0.0f; + if(startIndex != 0xffffffff){ // セルが空でないかのチェック + // セル内のパーティクルで反復 + int endIndex = gridIndicesTable[gridHash].y; + for(int j = startIndex; j < endIndex; ++j){ + //if(j == i) continue; + + float2 pos1 = particles[gridTable[j].y].Next; + + float2 rij = pos0 - pos1; + float r = length(rij); + + if(r <= h){ + float q = h * h - r * r; + dens += Wpoly6.x * q * q * q; + } + } + } + + return dens; } float CalcScalingFactorCell(int2 gridPos, int i, float2 pos0) { - int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; + int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; int startIndex = gridIndicesTable[gridHash].x; - float h = EffectiveRadius.x; - float r0 = Density.x; - float sd = 0.0f; - float sd2 = 0.0f; - if(startIndex != 0xffffffff){ // セルが空でないかのチェック - // セル内のパーティクルで反復 - uint endIndex = gridIndicesTable[gridHash].y; - for(uint j = startIndex; j < endIndex; ++j){ + float h = EffectiveRadius.x; + float r0 = Density.x; + float sd = 0.0f; + float sd2 = 0.0f; + if(startIndex != 0xffffffff){ // セルが空でないかのチェック + // セル内のパーティクルで反復 + uint endIndex = gridIndicesTable[gridHash].y; + for(uint j = startIndex; j < endIndex; ++j){ - float2 pos1 = particles[gridTable[j].y].Next; + float2 pos1 = particles[gridTable[j].y].Next; - float2 rij = pos0-pos1; - float r = length(rij); + float2 rij = pos0-pos1; + float r = length(rij); - if(r <= h && r > 0.0){ - float q = h - r; + if(r <= h && r > 0.0){ + float q = h - r; - // Spikyカーネルで位置変動を計算 - float2 dp = -(GWspiky.x * q * q * rij / r) / r0; + // Spikyカーネルで位置変動を計算 + float2 dp = -(GWspiky.x * q * q * rij / r) / r0; sd2 -= dp; - if(gridTable[j].y != i) - sd += dot(dp, dp); - } - } - } - return sd + dot(sd2, sd2); + if(gridTable[j].y != i) + sd += dot(dp, dp); + } + } + } + return sd + dot(sd2, sd2); } void CalcScalingFactor(int id) { - float2 pos = particles[id].Next; // パーティクル位置 - float h = EffectiveRadius.x; + float2 pos = particles[id].Next; // パーティクル位置 + float h = EffectiveRadius.x; float r0 = Density.x; - // パーティクル周囲のグリッド - int2 grid_pos0, grid_pos1; - grid_pos0 = GetGridPos(pos-h); - grid_pos1 = GetGridPos(pos+h); - - // 周囲のグリッドも含めて近傍探索,密度計算 - float dens = 0.0f; - for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ - for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ - int2 n_grid_pos = int2(x, y); - dens += CalcDensityCellPB(n_grid_pos, id, pos); - } - } + // パーティクル周囲のグリッド + int2 grid_pos0, grid_pos1; + grid_pos0 = GetGridPos(pos-h); + grid_pos1 = GetGridPos(pos+h); + + // 周囲のグリッドも含めて近傍探索,密度計算 + float dens = 0.0f; + for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ + for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ + int2 n_grid_pos = int2(x, y); + dens += CalcDensityCellPB(n_grid_pos, id, pos); + } + } - // 密度拘束条件(式(1)) - float C = dens/r0-1.0; - - // 周囲のグリッドも含めて近傍探索,スケーリングファクタの分母項計算 - float sd = 0.0f; - for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ - for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ - int2 n_grid_pos = int2(x, y); - sd += CalcScalingFactorCell(n_grid_pos, id, pos); - } - } - - // スケーリングファクタの計算(式(11)) - particles[id].Pscl = -C/(sd+Eps); + // 密度拘束条件(式(1)) + float C = dens/r0-1.0; + + // 周囲のグリッドも含めて近傍探索,スケーリングファクタの分母項計算 + float sd = 0.0f; + for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ + for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ + int2 n_grid_pos = int2(x, y); + sd += CalcScalingFactorCell(n_grid_pos, id, pos); + } + } + + // スケーリングファクタの計算(式(11)) + particles[id].Pscl = -C/(sd+Eps); } [numthreads(1, 1, 1)] @@ -478,70 +481,70 @@ int2 GetGridPos(float2 pos) float2 CalcPositionCorrectionCell(int2 gridPos, int i, float2 pos0) { - int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; + int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; int startIndex = gridIndicesTable[gridHash].x; - float h = EffectiveRadius.x; - float r0 = Density.x; - float2 dp = float2(0.0); + float h = EffectiveRadius.x; + float r0 = Density.x; + float2 dp = float2(0.0); - float dt = Dt.x; + float dt = Dt.x; - float si = particles[i].Pscl; + float si = particles[i].Pscl; - if(startIndex != 0xffffffff){ // セルが空でないかのチェック - // セル内のパーティクルで反復 - uint endIndex = gridIndicesTable[gridHash].y; - for(uint j = startIndex; j < endIndex; ++j){ - if(gridTable[j].y == i) continue; + if(startIndex != 0xffffffff){ // セルが空でないかのチェック + // セル内のパーティクルで反復 + uint endIndex = gridIndicesTable[gridHash].y; + for(uint j = startIndex; j < endIndex; ++j){ + if(gridTable[j].y == i) continue; - float2 pos1 = particles[gridTable[j].y].Next; + float2 pos1 = particles[gridTable[j].y].Next; - float2 rij = pos0 - pos1; - float r = length(rij); + float2 rij = pos0 - pos1; + float r = length(rij); - if(r <= h && r > 0.0){ + if(r <= h && r > 0.0){ float scorr = 0; { - float q = h * h - r * r; - float q2 = h * h - 0.04 * h * h; + float q = h * h - r * r; + float q2 = h * h - 0.04 * h * h; float ww = Wpoly6.x * q * q * q / (Wpoly6.x * q2 * q2 * q2); scorr = -0.1 * pow(ww, 4) * dt * dt; } { - float q = h - r; - float sj = particles[gridTable[j].y].Pscl; + float q = h - r; + float sj = particles[gridTable[j].y].Pscl; - // Spikyカーネルで位置修正量を計算 - dp += (si + sj + scorr) * (GWspiky.x * q * q * rij / r) / r0; + // Spikyカーネルで位置修正量を計算 + dp += (si + sj + scorr) * (GWspiky.x * q * q * rij / r) / r0; } - } - } - } + } + } + } - return dp; + return dp; } float2 CalcPositionCorrection(int id) { - float2 pos = particles[id].Next; // パーティクル位置 - float h = EffectiveRadius.x; - - // パーティクル周囲のグリッド - int2 grid_pos0, grid_pos1; - grid_pos0 = GetGridPos(pos - h); - grid_pos1 = GetGridPos(pos + h); + float2 pos = particles[id].Next; // パーティクル位置 + float h = EffectiveRadius.x; - // 周囲のグリッドも含めて近傍探索,位置修正量を計算 - float2 dpij = float2(0.0f); - for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ - for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ - int2 n_grid_pos = int2(x, y); - dpij += CalcPositionCorrectionCell(n_grid_pos, id, pos); - } - } + // パーティクル周囲のグリッド + int2 grid_pos0, grid_pos1; + grid_pos0 = GetGridPos(pos - h); + grid_pos1 = GetGridPos(pos + h); + + // 周囲のグリッドも含めて近傍探索,位置修正量を計算 + float2 dpij = float2(0.0f); + for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ + for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ + int2 n_grid_pos = int2(x, y); + dpij += CalcPositionCorrectionCell(n_grid_pos, id, pos); + } + } return dpij; } @@ -749,7 +752,9 @@ float4 main(PS_INPUT input) : SV_TARGET Engine.AddNode(text); Engine.Graphics.CommandList.Begin(); - Engine.Graphics.CommandList.UploadBuffer(particles); + + Engine.Graphics.CommandList.CopyBuffer(particlesInput, particles); + Engine.Graphics.CommandList.End(); Engine.Graphics.ExecuteCommandList(); Engine.Graphics.WaitFinish(); From 5c31bee60613854b340dd164d1b7744975946679 Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 4 Jun 2023 03:51:01 +0900 Subject: [PATCH 13/49] TODO: CommandDrawnNode --- Engine/Node/CommandDrawnNode.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Engine/Node/CommandDrawnNode.cs b/Engine/Node/CommandDrawnNode.cs index ff832df6..23e86cb4 100644 --- a/Engine/Node/CommandDrawnNode.cs +++ b/Engine/Node/CommandDrawnNode.cs @@ -66,7 +66,8 @@ internal override void Unregistered() public override void FlushQueue() { base.FlushQueue(); - this.UpdateIsDrawnActuallyOfDescendants(); + // TODO + // this.UpdateIsDrawnActuallyOfDescendants(); } #endregion From ccac9b7406f438805489e0a265ebc503ae79b3df Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 17:09:33 +0900 Subject: [PATCH 14/49] update Core --- Core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core b/Core index 913b5008..1aefd840 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit 913b5008076724da77d14581b5d233b439f34715 +Subproject commit 1aefd840b3f9639aa2ad874e28208345638e971f From baa9ddfcee7f67c96d1e1d0948ba9239e2f883b2 Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 17:40:20 +0900 Subject: [PATCH 15/49] update bindings --- Engine/AutoGeneratedCoreBindings.cs | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/Engine/AutoGeneratedCoreBindings.cs b/Engine/AutoGeneratedCoreBindings.cs index dd72f52d..1e28c2f7 100644 --- a/Engine/AutoGeneratedCoreBindings.cs +++ b/Engine/AutoGeneratedCoreBindings.cs @@ -5141,14 +5141,6 @@ public static CommandList TryGetFromCache(IntPtr native) [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_ResumeRenderPass(IntPtr selfPtr); - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_UploadBuffer(IntPtr selfPtr, IntPtr buffer); - - [DllImport("Altseed2_Core")] - [EditorBrowsable(EditorBrowsableState.Never)] - private static extern void cbg_CommandList_ReadbackBuffer(IntPtr selfPtr, IntPtr buffer); - [DllImport("Altseed2_Core")] [EditorBrowsable(EditorBrowsableState.Never)] private static extern void cbg_CommandList_CopyBuffer(IntPtr selfPtr, IntPtr src, IntPtr dst); @@ -5335,16 +5327,6 @@ public void ResumeRenderPass() cbg_CommandList_ResumeRenderPass(selfPtr); } - internal void UploadBuffer(Buffer buffer) - { - cbg_CommandList_UploadBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero); - } - - internal void ReadbackBuffer(Buffer buffer) - { - cbg_CommandList_ReadbackBuffer(selfPtr, buffer != null ? buffer.selfPtr : IntPtr.Zero); - } - internal void CopyBuffer(Buffer src, Buffer dst) { cbg_CommandList_CopyBuffer(selfPtr, src != null ? src.selfPtr : IntPtr.Zero, dst != null ? dst.selfPtr : IntPtr.Zero); From 0e3dcdeac8aed14ee14fba3aff8411179215523c Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 18:06:22 +0900 Subject: [PATCH 16/49] delete wrapper methods of removed method --- Engine/CorePartial/CommandList.cs | 35 +++++++++++++------------------ 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/Engine/CorePartial/CommandList.cs b/Engine/CorePartial/CommandList.cs index 04281435..f6fd10f0 100644 --- a/Engine/CorePartial/CommandList.cs +++ b/Engine/CorePartial/CommandList.cs @@ -7,26 +7,6 @@ namespace Altseed2 { public partial class CommandList { - /// - /// GPUへデータをアップロードする - /// - /// - /// - public void UploadBuffer(Buffer buffer) where T : struct - { - UploadBuffer(buffer.InternalBuffer); - } - - /// - /// GPUからデータを読み込む - /// - /// - /// - public void ReadbackBuffer(Buffer buffer) where T : struct - { - ReadbackBuffer(buffer.InternalBuffer); - } - /// /// GPUのデータをコピーする /// @@ -75,6 +55,9 @@ public void SetComputeBuffer(Buffer computeBuffer, int unit, ShaderStage s SetComputeBuffer(computeBuffer.InternalBuffer, stride, unit, shaderStage); } + /// + /// + /// public Material Material { set @@ -85,6 +68,12 @@ public Material Material } } + /// + /// + /// + /// + /// + /// public void SetMaterialWithConstantBuffer(Material material, Buffer constantBuffer) where T : struct { cbg_CommandList_SetMaterialWithConstantBuffer( @@ -93,6 +82,12 @@ public void SetMaterialWithConstantBuffer(Material material, Buffer consta constantBuffer != null ? constantBuffer.InternalBuffer.selfPtr : IntPtr.Zero); } + /// + /// + /// + /// + /// + /// public void SetComputePipelineStateWithConstantBuffer(ComputePipelineState computePipelineState, Buffer constantBuffer) where T : struct { cbg_CommandList_SetComputePipelineStateWithConstantBuffer( From ee997340d0e5b34512bd65d277bc85967879607a Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 18:09:13 +0900 Subject: [PATCH 17/49] update IDrawn to have IsDrawn property instead of ICullableDrawn --- Engine/Engine.cs | 8 +++--- Engine/Node/CommandDrawnNode.cs | 31 +++++++++++++++++++--- Engine/Node/IDrawn.cs | 24 ++++++++--------- Engine/Node/PolygonNode.cs | 6 ++--- Engine/Node/PostEffect/PostEffectNode.cs | 33 +++++++++++++++++++++++- Engine/Node/ShapeNodes/ShapeNode.cs | 6 ++--- Engine/Node/SpriteNode.cs | 6 ++--- Engine/Node/TextNode.cs | 6 ++--- 8 files changed, 87 insertions(+), 33 deletions(-) diff --git a/Engine/Engine.cs b/Engine/Engine.cs index 92a41aa1..6c9909ae 100644 --- a/Engine/Engine.cs +++ b/Engine/Engine.cs @@ -249,6 +249,9 @@ internal static void DrawCameraGroup(RenderedCamera camera, SortedDictionary n.IsDrawnActually)) などとしない + if (!node.IsDrawnActually) continue; + if (node is PostEffectNode) { if (requireRender) @@ -265,20 +268,17 @@ internal static void DrawCameraGroup(RenderedCamera camera, SortedDictionary n.IsDrawnActually)) などとしない if (cullingIds.BinarySearch(cdrawn.CullingId) < 0) continue; node.Draw(); requireRender = true; } - else if (node is IDrawn drawn) + else { node.Draw(); requireRender = true; } - else throw new InvalidOperationException(); } } diff --git a/Engine/Node/CommandDrawnNode.cs b/Engine/Node/CommandDrawnNode.cs index 23e86cb4..6e4fa10a 100644 --- a/Engine/Node/CommandDrawnNode.cs +++ b/Engine/Node/CommandDrawnNode.cs @@ -8,7 +8,7 @@ namespace Altseed2 /// を呼び出すことで描画するノードを表します。 /// [Serializable] - public class CommandDrawnNode : Node, IDrawn + public abstract class CommandDrawnNode : Node, IDrawn { #region IDrawn /// @@ -47,6 +47,30 @@ public int ZOrder { } private int _ZOrder; + /// + /// このノードを描画するかどうかを取得または設定します。 + /// + [PartsTreeSystem.SerializeField] + public bool IsDrawn + { + get => _IsDrawn; + set + { + if (_IsDrawn == value) return; + _IsDrawn = value; + this.UpdateIsDrawnActuallyOfDescendants(); + } + } + private bool _IsDrawn = true; + + /// + /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 + /// + [PartsTreeSystem.SerializeField] + public bool IsDrawnActually => (this as IDrawn).IsDrawnActually; + [PartsTreeSystem.SerializeField] + bool IDrawn.IsDrawnActually { get; set; } = true; + #endregion #region Node @@ -66,8 +90,7 @@ internal override void Unregistered() public override void FlushQueue() { base.FlushQueue(); - // TODO - // this.UpdateIsDrawnActuallyOfDescendants(); + this.UpdateIsDrawnActuallyOfDescendants(); } #endregion @@ -76,7 +99,7 @@ public override void FlushQueue() /// 描画時に実行されます. /// /// 現在の - protected virtual void Draw(CommandList commandList) { } + protected abstract void Draw(CommandList commandList); void IDrawn.Draw() { diff --git a/Engine/Node/IDrawn.cs b/Engine/Node/IDrawn.cs index 4d313f3d..61e7d6f4 100644 --- a/Engine/Node/IDrawn.cs +++ b/Engine/Node/IDrawn.cs @@ -20,6 +20,16 @@ public interface IDrawn /// 描画時の重ね順を取得または設定します。 /// int ZOrder { get; set; } + + /// + /// このノードを描画するかどうかを取得または設定します。 + /// + bool IsDrawn { get; set; } + + /// + /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 + /// + bool IsDrawnActually { get; internal set; } } /// @@ -31,16 +41,6 @@ public interface ICullableDrawn : IDrawn internal int CullingId { get; } - /// - /// このノードを描画するかどうかを取得または設定します。 - /// - bool IsDrawn { get; set; } - - /// - /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 - /// - bool IsDrawnActually { get; internal set; } - /// /// コンテンツのサイズを取得します。 /// @@ -53,13 +53,13 @@ internal static class DrawnExtension /// 自身と子孫ノードの IsDrawnActually プロパティを更新します。 /// internal static void UpdateIsDrawnActuallyOfDescendants(this T node) - where T : Node, ICullableDrawn + where T : Node, IDrawn { static void UpdateRecursive(Node n, bool ancestorsIsDawnActually) { var isDrawnActually = ancestorsIsDawnActually; - if (n is ICullableDrawn dn) + if (n is IDrawn dn) { isDrawnActually = dn.IsDrawn && ancestorsIsDawnActually; dn.IsDrawnActually = isDrawnActually; diff --git a/Engine/Node/PolygonNode.cs b/Engine/Node/PolygonNode.cs index 39e28909..804984f3 100644 --- a/Engine/Node/PolygonNode.cs +++ b/Engine/Node/PolygonNode.cs @@ -96,10 +96,10 @@ public bool IsDrawn private bool _IsDrawn = true; /// - /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 + /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 /// - public bool IsDrawnActually => (this as ICullableDrawn).IsDrawnActually; - bool ICullableDrawn.IsDrawnActually { get; set; } = true; + public bool IsDrawnActually => (this as IDrawn).IsDrawnActually; + bool IDrawn.IsDrawnActually { get; set; } = true; #endregion diff --git a/Engine/Node/PostEffect/PostEffectNode.cs b/Engine/Node/PostEffect/PostEffectNode.cs index f208c848..8d593b57 100644 --- a/Engine/Node/PostEffect/PostEffectNode.cs +++ b/Engine/Node/PostEffect/PostEffectNode.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; namespace Altseed2 @@ -84,6 +84,37 @@ public int ZOrder } private int _ZOrder = 0; + /// + /// このノードを描画するかどうかを取得または設定します。 + /// + [PartsTreeSystem.SerializeField] + public bool IsDrawn + { + get => _IsDrawn; + set + { + if (_IsDrawn == value) return; + _IsDrawn = value; + this.UpdateIsDrawnActuallyOfDescendants(); + } + } + private bool _IsDrawn = true; + + /// + /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 + /// + [PartsTreeSystem.SerializeField] + public bool IsDrawnActually => (this as IDrawn).IsDrawnActually; + [PartsTreeSystem.SerializeField] + bool IDrawn.IsDrawnActually { get; set; } = true; + + /// + public override void FlushQueue() + { + base.FlushQueue(); + this.UpdateIsDrawnActuallyOfDescendants(); + } + /// /// の新しいインスタンスを生成します。 /// diff --git a/Engine/Node/ShapeNodes/ShapeNode.cs b/Engine/Node/ShapeNodes/ShapeNode.cs index 2d8c3808..a629ee42 100644 --- a/Engine/Node/ShapeNodes/ShapeNode.cs +++ b/Engine/Node/ShapeNodes/ShapeNode.cs @@ -97,12 +97,12 @@ public bool IsDrawn private bool _IsDrawn = true; /// - /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 + /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 /// [PartsTreeSystem.SerializeField] - public bool IsDrawnActually => (this as ICullableDrawn).IsDrawnActually; + public bool IsDrawnActually => (this as IDrawn).IsDrawnActually; [PartsTreeSystem.SerializeField] - bool ICullableDrawn.IsDrawnActually { get; set; } = true; + bool IDrawn.IsDrawnActually { get; set; } = true; #endregion diff --git a/Engine/Node/SpriteNode.cs b/Engine/Node/SpriteNode.cs index d0b7193f..95541826 100644 --- a/Engine/Node/SpriteNode.cs +++ b/Engine/Node/SpriteNode.cs @@ -94,12 +94,12 @@ public bool IsDrawn private bool _IsDrawn = true; /// - /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 + /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 /// [PartsTreeSystem.SerializeField] - public bool IsDrawnActually => (this as ICullableDrawn).IsDrawnActually; + public bool IsDrawnActually => (this as IDrawn).IsDrawnActually; [PartsTreeSystem.SerializeField] - bool ICullableDrawn.IsDrawnActually { get; set; } = true; + bool IDrawn.IsDrawnActually { get; set; } = true; #endregion diff --git a/Engine/Node/TextNode.cs b/Engine/Node/TextNode.cs index 8699745c..cfe30338 100644 --- a/Engine/Node/TextNode.cs +++ b/Engine/Node/TextNode.cs @@ -93,12 +93,12 @@ public bool IsDrawn private bool _IsDrawn = true; /// - /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 + /// 先祖のを考慮して、このノードを描画するかどうかを取得します。 /// [PartsTreeSystem.SerializeField] - public bool IsDrawnActually => (this as ICullableDrawn).IsDrawnActually; + public bool IsDrawnActually => (this as IDrawn).IsDrawnActually; [PartsTreeSystem.SerializeField] - bool ICullableDrawn.IsDrawnActually { get; set; } = true; + bool IDrawn.IsDrawnActually { get; set; } = true; #endregion From 1b6ecd956a496cb129f9e68cb4a1fd8c0a1df1bf Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 18:19:00 +0900 Subject: [PATCH 18/49] add exception to CommandDrawnNode constructor --- Engine/Node/CommandDrawnNode.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Engine/Node/CommandDrawnNode.cs b/Engine/Node/CommandDrawnNode.cs index 6e4fa10a..1c61f222 100644 --- a/Engine/Node/CommandDrawnNode.cs +++ b/Engine/Node/CommandDrawnNode.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; @@ -10,6 +10,18 @@ namespace Altseed2 [Serializable] public abstract class CommandDrawnNode : Node, IDrawn { + /// + /// の新しいインスタンスを生成します。 + /// + /// Graphics機能が初期化されていない。 + public CommandDrawnNode() + { + if (!Engine.Config.EnabledCoreModules.HasFlag(CoreModules.Graphics)) + { + throw new InvalidOperationException("Graphivs機能が初期化されていません。"); + } + } + #region IDrawn /// /// カメラグループを取得または設定します。 From 0906f80ce8b25c4dc06c2cb9f3b1915730d25429 Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 18:26:44 +0900 Subject: [PATCH 19/49] update CommandDrawnNode --- Engine/Node/CommandDrawnNode.cs | 10 +++------- Samples/ComputeShader/Fluid.cs | 12 ++++++------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/Engine/Node/CommandDrawnNode.cs b/Engine/Node/CommandDrawnNode.cs index 1c61f222..6119105b 100644 --- a/Engine/Node/CommandDrawnNode.cs +++ b/Engine/Node/CommandDrawnNode.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; @@ -110,12 +110,8 @@ public override void FlushQueue() /// /// 描画時に実行されます. /// - /// 現在の - protected abstract void Draw(CommandList commandList); + protected abstract void Draw(); - void IDrawn.Draw() - { - Draw(Engine.Graphics.CommandList); - } + void IDrawn.Draw() => Draw(); } } diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index ad147951..02848692 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -1,4 +1,4 @@ -using Altseed2; +using Altseed2; using System; using System.Collections.Generic; using System.Linq; @@ -53,12 +53,12 @@ class ParticleNode : CommandDrawnNode public Buffer IndexBuffer { get; set; } public Buffer VertexBuffer { get; set; } - protected override void Draw(CommandList commandList) + protected override void Draw() { - commandList.Material = Material; - commandList.SetIndexBuffer(IndexBuffer); - commandList.SetVertexBuffer(VertexBuffer); - commandList.Draw(IndexBuffer.Count / 3); + Engine.Graphics.CommandList.Material = Material; + Engine.Graphics.CommandList.SetIndexBuffer(IndexBuffer); + Engine.Graphics.CommandList.SetVertexBuffer(VertexBuffer); + Engine.Graphics.CommandList.Draw(IndexBuffer.Count / 3); } } From ad36bdd78fd3f00db2a144ec7f604f5ba95450b3 Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 18:27:02 +0900 Subject: [PATCH 20/49] refine code --- Engine/CorePartial/Buffer.cs | 8 ++++---- Samples/ComputeShader/Fluid.cs | 10 ++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Engine/CorePartial/Buffer.cs b/Engine/CorePartial/Buffer.cs index 42a5f8ef..cf3881ed 100644 --- a/Engine/CorePartial/Buffer.cs +++ b/Engine/CorePartial/Buffer.cs @@ -43,7 +43,7 @@ public class Buffer where T : struct public static Buffer Create(BufferUsageType usage, int count) { var internalBuffer = Buffer.Create(usage, Marshal.SizeOf() * count); - if (internalBuffer == null) + if (internalBuffer is null) { Engine.Log.Error(LogCategory.Engine, "Buffer::Create: bufferの作成に失敗しました。"); return null; @@ -62,7 +62,7 @@ public static Buffer Create(BufferUsageType usage, int count) public static Buffer CreateStrict(BufferUsageType usage, int count) { var internalBuffer = Buffer.Create(usage, Marshal.SizeOf() * count); - if (internalBuffer == null) + if (internalBuffer is null) { throw new ArgumentException("Bufferの作成に失敗しました。"); } @@ -110,13 +110,13 @@ public Container LockStrict() /// public ref struct Container { - private Buffer buffer; + private readonly Buffer buffer; /// /// バッファのデータ /// /// - public Span Span { get; init; } + public Span Span { get; private init; } internal Container(Buffer buffer, Span span) { diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 02848692..76397e97 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -1,4 +1,4 @@ -using Altseed2; +using Altseed2; using System; using System.Collections.Generic; using System.Linq; @@ -690,12 +690,14 @@ void main(uint3 dtid : SV_DispatchThreadID) }; Engine.AddNode(camera2); - var particlesNode = new ParticleNode(); - particlesNode.Material = Material.Create(); + var particlesNode = new ParticleNode + { + Material = Material.Create(), + CameraGroup = 1 + }; var blend = AlphaBlend.Add; blend.BlendEquationRGB = BlendEquation.Max; particlesNode.Material.AlphaBlend = blend; - particlesNode.CameraGroup = 1; var psCode = @" struct PS_INPUT From b455d913c7b62184669e9e7cebbefdf8d083998c Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 18:32:51 +0900 Subject: [PATCH 21/49] fix code by marging master --- Engine/Node/CommandDrawnNode.cs | 7 ------- Engine/Node/IDrawn.cs | 6 +++--- Engine/Node/PostEffect/PostEffectNode.cs | 7 ------- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/Engine/Node/CommandDrawnNode.cs b/Engine/Node/CommandDrawnNode.cs index 6119105b..fec94436 100644 --- a/Engine/Node/CommandDrawnNode.cs +++ b/Engine/Node/CommandDrawnNode.cs @@ -98,13 +98,6 @@ internal override void Unregistered() Engine.UnregisterDrawn(this); } - /// - public override void FlushQueue() - { - base.FlushQueue(); - this.UpdateIsDrawnActuallyOfDescendants(); - } - #endregion /// diff --git a/Engine/Node/IDrawn.cs b/Engine/Node/IDrawn.cs index 81807960..15d030cf 100644 --- a/Engine/Node/IDrawn.cs +++ b/Engine/Node/IDrawn.cs @@ -71,14 +71,14 @@ static void UpdateRecursive(Node n, bool ancestorsIsDawnActually) } } - var ancestorsIsDrawnActually = node.GetAncestorSpecificNode()?.IsDrawnActually ?? true; + var ancestorsIsDrawnActually = node.GetAncestorSpecificNode()?.IsDrawnActually ?? true; UpdateRecursive(node, ancestorsIsDrawnActually); } internal static void UpdateIsDrawnActuallyFromAncestors(this T node) - where T : Node, ICullableDrawn + where T : Node, IDrawn { - var ancestorsIsDrawnActually = node.GetAncestorSpecificNode()?.IsDrawnActually ?? true; + var ancestorsIsDrawnActually = node.GetAncestorSpecificNode()?.IsDrawnActually ?? true; node.IsDrawnActually = ancestorsIsDrawnActually && node.IsDrawn; } } diff --git a/Engine/Node/PostEffect/PostEffectNode.cs b/Engine/Node/PostEffect/PostEffectNode.cs index 8d593b57..9dc941e2 100644 --- a/Engine/Node/PostEffect/PostEffectNode.cs +++ b/Engine/Node/PostEffect/PostEffectNode.cs @@ -108,13 +108,6 @@ public bool IsDrawn [PartsTreeSystem.SerializeField] bool IDrawn.IsDrawnActually { get; set; } = true; - /// - public override void FlushQueue() - { - base.FlushQueue(); - this.UpdateIsDrawnActuallyOfDescendants(); - } - /// /// の新しいインスタンスを生成します。 /// From ef7a825c834953e7740c65991398d91bfd1c1c73 Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 20:54:19 +0900 Subject: [PATCH 22/49] add methods to shader --- Engine/CorePartial/Shader.cs | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/Engine/CorePartial/Shader.cs b/Engine/CorePartial/Shader.cs index a86e39f3..1bec9142 100644 --- a/Engine/CorePartial/Shader.cs +++ b/Engine/CorePartial/Shader.cs @@ -59,6 +59,44 @@ public static string TryCreateFromFile(string name, string path, ShaderStage sha return result.Message; } + /// + /// コードをコンパイルしての新しいインスタンスを生成します。 + /// + /// シェーダにつける名前 + /// シェーダのコード + /// シェーダの種類 + /// またはがnull + /// + /// + public static Shader CreateStrict(string name, string code, ShaderStage shaderStage) + { + var result = Compile(name, code, shaderStage); + if (result.Value is Shader shader) + { + return shader; + } + throw new SystemException(result.Message); + } + + /// + /// ファイルに書かれたコードをコンパイルしての新しいインスタンスを生成します。 + /// + /// シェーダにつける名前 + /// シェーダのコード + /// シェーダの種類 + /// またはがnull + /// + /// + public static Shader CreateFromFileStrict(string name, string path, ShaderStage shaderStage) + { + var result = CompileFromFile(name, path, shaderStage); + if (result.Value is Shader shader) + { + return shader; + } + throw new SystemException(result.Message); + } + partial void Deserialize_GetPtr(ref IntPtr ptr, SerializationInfo info) { Shader_Unsetter_Deserialize(info, out var code, out var name, out var stage); From b85cdf2a5046bad89d325e7ac1a47eb43f584f13 Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 20:54:25 +0900 Subject: [PATCH 23/49] update viewer --- Samples/Viewer.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Samples/Viewer.cs b/Samples/Viewer.cs index e1b08564..7e917511 100644 --- a/Samples/Viewer.cs +++ b/Samples/Viewer.cs @@ -148,7 +148,14 @@ public void Run() { var type = Type.GetType(TypeName); var mainMethod = type?.GetMethod("Main", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); - mainMethod?.Invoke(null, new[] { new string[] { } }); + try + { + mainMethod?.Invoke(null, new[] { new string[] { } }); + } + catch (TargetInvocationException e) + { + System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(e.InnerException).Throw(); + } } } } From 8bdb94cbee4b35a9199b9e5e3db6fe7228ea1e7b Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 19:42:13 +0900 Subject: [PATCH 24/49] wip: update Fluid --- Samples/ComputeShader/Fluid.cs | 490 ++++++++++++++++++--------------- 1 file changed, 262 insertions(+), 228 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 76397e97..de4a2985 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -25,98 +25,69 @@ public struct Particle public bool IsFix; }; - public static float CalcRestDensity(float h) - { - var a = 4f / (MathF.PI * MathF.Pow(h, 8f)); - var r0 = 0.0f; - var l = 2 * ParticleRadius; - int n = (int)MathF.Ceiling(h / l) + 1; - for (int x = -n; x <= n; ++x) - { - for (int y = -n; y <= n; ++y) - { - Vector2F rij = new Vector2F(x * l, y * l); - var r = rij.Length; - if (r >= 0.0 && r <= h) - { - var q = h * h - r * r; - r0 += a * q * q * q; - } - } - } - return r0; - } - class ParticleNode : CommandDrawnNode { - public Material Material { get; set; } - public Buffer IndexBuffer { get; set; } - public Buffer VertexBuffer { get; set; } - - protected override void Draw() + public bool Step { get; set; } = false; + + private const int ParticlesCount = 2048; + + private readonly Material material; + + private readonly Buffer particleComputeIndex; + private readonly Buffer particleComputeVertex; + private readonly Buffer particleIndex; + private readonly Buffer particleVertex; + private readonly Buffer particles; + private readonly Buffer gridTable; + private readonly Buffer gridIndicesTable; + + private readonly ComputePipelineState calcExternalPipeline; + private readonly ComputePipelineState buildGridPipeline; + private readonly ComputePipelineState bitonicSortPipeline; + private readonly ComputePipelineState clearGridIndicesPipeline; + private readonly ComputePipelineState buildGridIndicesPipeline; + private readonly ComputePipelineState calcScalingFactorPipeline; + private readonly ComputePipelineState calcCorrectPositionPipeline; + private readonly ComputePipelineState integratePipeline; + private readonly ComputePipelineState buildVBIB; + + public static float CalcRestDensity(float h) { - Engine.Graphics.CommandList.Material = Material; - Engine.Graphics.CommandList.SetIndexBuffer(IndexBuffer); - Engine.Graphics.CommandList.SetVertexBuffer(VertexBuffer); - Engine.Graphics.CommandList.Draw(IndexBuffer.Count / 3); - } - } - - public static void Main(string[] args) - { - Engine.Initialize("Fluids Sim", 640, 480); - Engine.FramerateMode = FramerateMode.Variable; - Engine.TargetFPS = 240; - var density = CalcRestDensity(EffectiveRadius); - - var particlesInput = Buffer.CreateStrict(BufferUsageType.MapWrite | BufferUsageType.CopySrc, 2048); - using (var data = particlesInput.LockStrict()) - { - int ind = 0; - for (int y = 0; y < 300 / (ParticleRadius * 2); y++) + var a = 4f / (MathF.PI * MathF.Pow(h, 8f)); + var r0 = 0.0f; + var l = 2 * ParticleRadius; + int n = (int)MathF.Ceiling(h / l) + 1; + for (int x = -n; x <= n; ++x) { - for (int x = 0; x < 300 / (ParticleRadius * 2); x++) + for (int y = -n; y <= n; ++y) { - if (x * (ParticleRadius * 2) + ParticleRadius < 8 || - x * (ParticleRadius * 2) + ParticleRadius > 300 - 8 || - y * (ParticleRadius * 2) + ParticleRadius < 8 || - y * (ParticleRadius * 2) + ParticleRadius > 300 - 8) + Vector2F rij = new Vector2F(x * l, y * l); + var r = rij.Length; + if (r >= 0.0 && r <= h) { - data.Span[ind++] = new Particle() - { - Current = new Vector2F(x * (ParticleRadius * 2) + ParticleRadius, y * (ParticleRadius * 2) + ParticleRadius), - Next = new Vector2F(x * (ParticleRadius * 2) + ParticleRadius, y * (ParticleRadius * 2) + ParticleRadius), - Velocity = new Vector2F(0, 0), - Pscl = 0, - IsFix = true, - }; + var q = h * h - r * r; + r0 += a * q * q * q; } } } - - for (int i = ind; i < particlesInput.Count; i++) - { - data.Span[i] = new Particle() - { - Current = new Vector2F(i % 50 * 4 + 10, i / 50 * 4 + 20), - Velocity = new Vector2F(0, 0), - Pscl = 0, - }; - } + return r0; } - var particles = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopyDst, 2048); + public ParticleNode() + { + var density = CalcRestDensity(EffectiveRadius); - var gridTable = Buffer.CreateStrict(BufferUsageType.Compute, 2048); - var gridIndicesTable = Buffer.CreateStrict(BufferUsageType.Compute, 60 * 60); - - var particleComputeVertex = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, particles.Count * 4); - var particleComputeIndex = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, particles.Count * 6); - - var particleVertex = Buffer.CreateStrict(BufferUsageType.Vertex, particles.Count * 4); - var particleIndex = Buffer.CreateStrict(BufferUsageType.Index, particles.Count * 6); + particles = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopyDst, ParticlesCount); + gridTable = Buffer.CreateStrict(BufferUsageType.Compute, ParticlesCount); + gridIndicesTable = Buffer.CreateStrict(BufferUsageType.Compute, 60 * 60); - var csCalcExternalForces = @" + particleComputeVertex = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, ParticlesCount * 4); + particleComputeIndex = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, ParticlesCount * 6); + + particleVertex = Buffer.CreateStrict(BufferUsageType.Vertex, ParticlesCount * 4); + particleIndex = Buffer.CreateStrict(BufferUsageType.Index, ParticlesCount * 6); + + const string csCalcExternalForces = @" struct Particle { float2 Current; @@ -139,8 +110,7 @@ struct Particle [numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { - if (particles[dtid.x].IsFix) - return; + if (particles[dtid.x].IsFix) return; particles[dtid.x].Velocity += (Gravity.xy + Force.xy) * (1.0 / 60); particles[dtid.x].Next = particles[dtid.x].Current + particles[dtid.x].Velocity * (1.0 / 60); particles[dtid.x].Next.x = clamp(particles[dtid.x].Next.x, 8, GridNum.x * GridSize.x - 8); @@ -148,14 +118,14 @@ void main(uint3 dtid : SV_DispatchThreadID) } "; - var calcExternalPipeline = ComputePipelineState.Create(); - calcExternalPipeline.Shader = Shader.Create("csCalcExternalForces", csCalcExternalForces, ShaderStage.Compute); - calcExternalPipeline.SetVector4F("Force", new Vector4F(0, 0, 0, 0)); - calcExternalPipeline.SetVector4F("Gravity", new Vector4F(0, 100, 0, 0)); - calcExternalPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); - calcExternalPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + calcExternalPipeline = ComputePipelineState.Create(); + calcExternalPipeline.Shader = Shader.CreateStrict("csCalcExternalForces", csCalcExternalForces, ShaderStage.Compute); + calcExternalPipeline.SetVector4F("Force", new Vector4F(0, 0, 0, 0)); + calcExternalPipeline.SetVector4F("Gravity", new Vector4F(0, 100, 0, 0)); + calcExternalPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); + calcExternalPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); - var csBuildGrid = @" + const string csBuildGrid = @" struct Particle { float2 Current; @@ -196,13 +166,13 @@ void main(uint3 dtid : SV_DispatchThreadID) } "; - var buildGridPipeline = ComputePipelineState.Create(); - buildGridPipeline.Shader = Shader.Create("csBuildGrid", csBuildGrid, ShaderStage.Compute); - buildGridPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); - buildGridPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); - buildGridPipeline.SetVector4F("ParticleNum", new Vector4F(particles.Count, 0, 0, 0)); + buildGridPipeline = ComputePipelineState.Create(); + buildGridPipeline.Shader = Shader.CreateStrict("csBuildGrid", csBuildGrid, ShaderStage.Compute); + buildGridPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); + buildGridPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + buildGridPipeline.SetVector4F("ParticleNum", new Vector4F(ParticlesCount, 0, 0, 0)); - var csBitonicSort = @" + const string csBitonicSort = @" cbuffer CB : register(b0) { float4 Inc; @@ -236,10 +206,10 @@ void main(uint3 dtid : SV_DispatchThreadID) } "; - var bitonicSortPipeline = ComputePipelineState.Create(); - bitonicSortPipeline.Shader = Shader.Create("csBitonicSort", csBitonicSort, ShaderStage.Compute); + bitonicSortPipeline = ComputePipelineState.Create(); + bitonicSortPipeline.Shader = Shader.CreateStrict("csBitonicSort", csBitonicSort, ShaderStage.Compute); - var csClearGridIndices = @" + const string csClearGridIndices = @" RWStructuredBuffer gridIndicesTable : register(u0); [numthreads(64, 1, 1)] @@ -249,10 +219,10 @@ void main(uint3 dtid : SV_DispatchThreadID) } "; - var clearGridIndicesPipeline = ComputePipelineState.Create(); - clearGridIndicesPipeline.Shader = Shader.Create("clearGridIndicesPipeline", csClearGridIndices, ShaderStage.Compute); + clearGridIndicesPipeline = ComputePipelineState.Create(); + clearGridIndicesPipeline.Shader = Shader.CreateStrict("clearGridIndicesPipeline", csClearGridIndices, ShaderStage.Compute); - var csBuildGridIndices = @" + const string csBuildGridIndices = @" cbuffer CB : register(b0) { float4 ParticleNum; @@ -286,11 +256,11 @@ void main(uint3 dtid : SV_DispatchThreadID) } "; - var buildGridIndicesPipeline = ComputePipelineState.Create(); - buildGridIndicesPipeline.Shader = Shader.Create("csBuildGridIndices", csBuildGridIndices, ShaderStage.Compute); - buildGridIndicesPipeline.SetVector4F("ParticleNum", new Vector4F(particles.Count, 0, 0, 0)); + buildGridIndicesPipeline = ComputePipelineState.Create(); + buildGridIndicesPipeline.Shader = Shader.CreateStrict("csBuildGridIndices", csBuildGridIndices, ShaderStage.Compute); + buildGridIndicesPipeline.SetVector4F("ParticleNum", new Vector4F(ParticlesCount, 0, 0, 0)); - var csCalcScalingFactor = @" + const string csCalcScalingFactor = @" struct Particle { float2 Current; @@ -432,18 +402,18 @@ void main(uint3 dtid : SV_DispatchThreadID) } "; - var calcScalingFactorPipeline = ComputePipelineState.Create(); - calcScalingFactorPipeline.Shader = Shader.Create("csCalcScalingFactor", csCalcScalingFactor, ShaderStage.Compute); - calcScalingFactorPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); - calcScalingFactorPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); - calcScalingFactorPipeline.SetVector4F("EffectiveRadius", new Vector4F(EffectiveRadius, 0, 0, 0)); - calcScalingFactorPipeline.SetVector4F("Density", new Vector4F(density, 0, 0, 0)); - calcScalingFactorPipeline.SetVector4F("Eps", new Vector4F(0.1f, 0, 0, 0)); - calcScalingFactorPipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); - calcScalingFactorPipeline.SetVector4F("Wpoly6", new Vector4F(4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)), 0, 0, 0)); - calcScalingFactorPipeline.SetVector4F("GWspiky", new Vector4F(-30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)), 0, 0, 0)); - - var csCalcCorrectPosition = @" + calcScalingFactorPipeline = ComputePipelineState.Create(); + calcScalingFactorPipeline.Shader = Shader.CreateStrict("csCalcScalingFactor", csCalcScalingFactor, ShaderStage.Compute); + calcScalingFactorPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); + calcScalingFactorPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + calcScalingFactorPipeline.SetVector4F("EffectiveRadius", new Vector4F(EffectiveRadius, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Density", new Vector4F(density, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Eps", new Vector4F(0.1f, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Wpoly6", new Vector4F(4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)), 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("GWspiky", new Vector4F(-30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)), 0, 0, 0)); + + const string csCalcCorrectPosition = @" struct Particle { float2 Current; @@ -492,7 +462,7 @@ float2 CalcPositionCorrectionCell(int2 gridPos, int i, float2 pos0) float si = particles[i].Pscl; - if(startIndex != 0xffffffff){ // セルが空でないかのチェック + if(startIndex != 0xffffffff){ // セルが空でないかのチェック // セル内のパーティクルで反復 uint endIndex = gridIndicesTable[gridHash].y; for(uint j = startIndex; j < endIndex; ++j){ @@ -529,7 +499,7 @@ float2 CalcPositionCorrectionCell(int2 gridPos, int i, float2 pos0) float2 CalcPositionCorrection(int id) { - float2 pos = particles[id].Next; // パーティクル位置 + float2 pos = particles[id].Next; // パーティクル位置 float h = EffectiveRadius.x; // パーティクル周囲のグリッド @@ -559,18 +529,18 @@ void main(uint3 dtid : SV_DispatchThreadID) } "; - var calcCorrectPositionPipeline = ComputePipelineState.Create(); - calcCorrectPositionPipeline.Shader = Shader.Create("csCalcCorrectPosition", csCalcCorrectPosition, ShaderStage.Compute); - calcCorrectPositionPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("EffectiveRadius", new Vector4F(EffectiveRadius, 0, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("Density", new Vector4F(density, 0, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("Eps", new Vector4F(0.1f, 0, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("Wpoly6", new Vector4F(4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)), 0, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("GWspiky", new Vector4F(-30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)), 0, 0, 0)); - - var csIntegrate = @" + calcCorrectPositionPipeline = ComputePipelineState.Create(); + calcCorrectPositionPipeline.Shader = Shader.CreateStrict("csCalcCorrectPosition", csCalcCorrectPosition, ShaderStage.Compute); + calcCorrectPositionPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("EffectiveRadius", new Vector4F(EffectiveRadius, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Density", new Vector4F(density, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Eps", new Vector4F(0.1f, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Wpoly6", new Vector4F(4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)), 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("GWspiky", new Vector4F(-30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)), 0, 0, 0)); + + const string csIntegrate = @" struct Particle { float2 Current; @@ -595,11 +565,11 @@ void main(uint3 dtid : SV_DispatchThreadID) } "; - var integratePipeline = ComputePipelineState.Create(); - integratePipeline.Shader = Shader.Create("csIntegrate", csIntegrate, ShaderStage.Compute); - integratePipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); + integratePipeline = ComputePipelineState.Create(); + integratePipeline.Shader = Shader.CreateStrict("csIntegrate", csIntegrate, ShaderStage.Compute); + integratePipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); - var csBuildVBIB = @" + const string csBuildVBIB = @" struct Particle { float2 Current; @@ -609,7 +579,8 @@ struct Particle bool IsFix; }; -struct Vertex{ +struct Vertex +{ float3 Position; int Color; float2 UV1; @@ -620,6 +591,7 @@ struct Vertex{ { float4 ParticleRadius; float4 Color; + float4 FixedColor; }; RWStructuredBuffer particles : register(u0); @@ -643,9 +615,7 @@ void main(uint3 dtid : SV_DispatchThreadID) { for (int i = 0; i < 4; i++) { - float4 c = Color; - if (particles[dtid.x].IsFix) - c.a = 0; + float4 c = lerp(Color, FixedColor, particles[dtid.x].IsFix); vertex[dtid.x * 4 + i].Color = DecodeFloatRGBA(c); } @@ -667,39 +637,18 @@ void main(uint3 dtid : SV_DispatchThreadID) } "; - var buildVBIB = ComputePipelineState.Create(); - buildVBIB.Shader = Shader.Create("csIntegrate", csBuildVBIB, ShaderStage.Compute); - buildVBIB.SetVector4F("ParticleRadius", new Vector4F(ParticleRadius, 0, 0, 0)); - buildVBIB.SetVector4F("Color", new Vector4F(0.2f, 0.2f, 1f, 1f)); - - var renderTexture = RenderTexture.Create(new Vector2I(300, 300), TextureFormat.R8G8B8A8_UNORM); - - var camera = new CameraNode() - { - Group = 1, - IsColorCleared = true, - ClearColor = new Color(0, 0, 0, 0), - TargetTexture = renderTexture, - }; - Engine.AddNode(camera); - - var camera2 = new CameraNode() - { - IsColorCleared = true, - Group = 2, - }; - Engine.AddNode(camera2); + buildVBIB = ComputePipelineState.Create(); + buildVBIB.Shader = Shader.CreateStrict("csIntegrate", csBuildVBIB, ShaderStage.Compute); + buildVBIB.SetVector4F("ParticleRadius", new Vector4F(ParticleRadius, 0, 0, 0)); + buildVBIB.SetVector4F("Color", new Vector4F(0.2f, 0.2f, 1f, 1f)); + buildVBIB.SetVector4F("FixedColor", new Vector4F(0f, 0f, 0f, 1f)); - var particlesNode = new ParticleNode - { - Material = Material.Create(), - CameraGroup = 1 - }; - var blend = AlphaBlend.Add; - blend.BlendEquationRGB = BlendEquation.Max; - particlesNode.Material.AlphaBlend = blend; + material = Material.Create(); + var blend = AlphaBlend.Add; + blend.BlendEquationRGB = BlendEquation.Max; + material.AlphaBlend = blend; - var psCode = @" + const string psCode = @" struct PS_INPUT { float4 Position : SV_POSITION; @@ -715,64 +664,67 @@ float4 main(PS_INPUT input) : SV_TARGET c = float4(input.Color.rgb, input.Color.a * a); return c; }"; - particlesNode.Material.SetShader(Shader.Create("ps", psCode, ShaderStage.Pixel)); - particlesNode.VertexBuffer = particleVertex; - particlesNode.IndexBuffer = particleIndex; - Engine.AddNode(particlesNode); + material.SetShader(Shader.CreateStrict("ps", psCode, ShaderStage.Pixel)); + } - var finalizeNode = new SpriteNode() + protected override void OnAdded() { - Texture = renderTexture, - Position = Engine.WindowSize / 2 - renderTexture.Size / 2, - CameraGroup = 2, - }; - finalizeNode.Material = Material.Create(); - var psCode2 = @" -Texture2D mainTex : register(t0); -SamplerState mainSamp : register(s0); -struct PS_INPUT -{ - float4 Position : SV_POSITION; - float4 Color : COLOR0; - float2 UV1 : UV0; - float2 UV2 : UV1; -}; -float4 main(PS_INPUT input) : SV_TARGET -{ - float4 c; - if (mainTex.Sample(mainSamp, input.UV1).a < 0.5) - discard; - c = float4(mainTex.Sample(mainSamp, input.UV1).rgb, 1); - return c; -}"; - finalizeNode.Material.SetShader(Shader.Create("ps2", psCode2, ShaderStage.Pixel)); - finalizeNode.Material.SetTexture("mainTex", renderTexture); - Engine.AddNode(finalizeNode); + var particlesInput = Buffer.CreateStrict(BufferUsageType.MapWrite | BufferUsageType.CopySrc, ParticlesCount); + using (var data = particlesInput.LockStrict()) + { + int ind = 0; + for (int y = 0; y < 300 / (ParticleRadius * 2); y++) + { + for (int x = 0; x < 300 / (ParticleRadius * 2); x++) + { + if (x * (ParticleRadius * 2) + ParticleRadius < 8 || + x * (ParticleRadius * 2) + ParticleRadius > 300 - 8 || + y * (ParticleRadius * 2) + ParticleRadius < 8 || + y * (ParticleRadius * 2) + ParticleRadius > 300 - 8) + { + data.Span[ind++] = new Particle() + { + Current = new Vector2F(x * (ParticleRadius * 2) + ParticleRadius, y * (ParticleRadius * 2) + ParticleRadius), + Next = new Vector2F(x * (ParticleRadius * 2) + ParticleRadius, y * (ParticleRadius * 2) + ParticleRadius), + Velocity = new Vector2F(0, 0), + Pscl = 0, + IsFix = true, + }; + } + } + } - var font = Font.LoadDynamicFont("TestData/Font/mplus-1m-regular.ttf", 64); - var text = new TextNode() { Font = font, FontSize = 30, Text = "", ZOrder = 10, CameraGroup = 2 }; - Engine.AddNode(text); + for (int i = ind; i < particlesInput.Count; i++) + { + data.Span[i] = new Particle() + { + Current = new Vector2F(i % 50 * 4 + 10, i / 50 * 4 + 20), + Velocity = new Vector2F(0, 0), + Pscl = 0, + }; + } + } - Engine.Graphics.CommandList.Begin(); + Engine.Graphics.CommandList.Begin(); - Engine.Graphics.CommandList.CopyBuffer(particlesInput, particles); + Engine.Graphics.CommandList.CopyBuffer(particlesInput, particles); - Engine.Graphics.CommandList.End(); - Engine.Graphics.ExecuteCommandList(); - Engine.Graphics.WaitFinish(); + Engine.Graphics.CommandList.End(); + Engine.Graphics.ExecuteCommandList(); + Engine.Graphics.WaitFinish(); + } - bool step = false; - while (Engine.DoEvents()) + protected override void OnUpdate() { Engine.Graphics.CommandList.Begin(); - Engine.Graphics.CommandList.BeginComputePass(); - if (step) + if (Step) { + Engine.Graphics.CommandList.ComputePipelineState = calcExternalPipeline; Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - Engine.Graphics.CommandList.Dispatch(particles.Count, 1, 1); + Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); for (int l = 0; l < 8; l++) { @@ -789,9 +741,11 @@ float4 main(PS_INPUT input) : SV_TARGET for (int i = 0; i < nlog; i++) { inc = 1 << i; + + bitonicSortPipeline.SetVector4F("Dir", new Vector4F(2 << i, 0, 0, 0)); + for (int j = 0; j < i + 1; j++) { - bitonicSortPipeline.SetVector4F("Dir", new Vector4F(2 << i, 0, 0, 0)); bitonicSortPipeline.SetVector4F("Inc", new Vector4F(inc, 0, 0, 0)); Engine.Graphics.CommandList.ComputePipelineState = bitonicSortPipeline; Engine.Graphics.CommandList.Dispatch(gridTable.Count / 2 / 64, 1, 1); @@ -808,29 +762,31 @@ float4 main(PS_INPUT input) : SV_TARGET Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 1); Engine.Graphics.CommandList.Dispatch(gridTable.Count, 1, 1); - Engine.Graphics.CommandList.ComputePipelineState = calcScalingFactorPipeline; - Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); - Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); - Engine.Graphics.CommandList.Dispatch(particles.Count, 1, 1); + // TODO - Engine.Graphics.CommandList.ComputePipelineState = calcCorrectPositionPipeline; - Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); - Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); - Engine.Graphics.CommandList.Dispatch(particles.Count, 1, 1); + //Engine.Graphics.CommandList.ComputePipelineState = calcScalingFactorPipeline; + //Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); + //Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); + //Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); + //Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); + + //Engine.Graphics.CommandList.ComputePipelineState = calcCorrectPositionPipeline; + //Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); + //Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); + //Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); + //Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); } Engine.Graphics.CommandList.ComputePipelineState = integratePipeline; Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - Engine.Graphics.CommandList.Dispatch(particles.Count, 1, 1); + Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); } Engine.Graphics.CommandList.ComputePipelineState = buildVBIB; Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); Engine.Graphics.CommandList.SetComputeBuffer(particleComputeVertex, 1); Engine.Graphics.CommandList.SetComputeBuffer(particleComputeIndex, 2); - Engine.Graphics.CommandList.Dispatch(particles.Count, 1, 1); + Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); Engine.Graphics.CommandList.EndComputePass(); @@ -840,14 +796,92 @@ float4 main(PS_INPUT input) : SV_TARGET Engine.Graphics.CommandList.End(); Engine.Graphics.ExecuteCommandList(); Engine.Graphics.WaitFinish(); + } + + protected override void Draw() + { + Engine.Graphics.CommandList.Material = material; + Engine.Graphics.CommandList.SetIndexBuffer(particleIndex); + Engine.Graphics.CommandList.SetVertexBuffer(particleVertex); + Engine.Graphics.CommandList.Draw(particleIndex.Count / 3); + } + } + + public static void Main(string[] args) + { + Engine.Initialize("Fluids Sim", 640, 480); + Engine.FramerateMode = FramerateMode.Variable; + Engine.TargetFPS = 240; + - text.Text = Engine.CurrentFPS.ToString(); + var renderTexture = RenderTexture.Create(new Vector2I(300, 300), TextureFormat.R8G8B8A8_UNORM); + var camera = new CameraNode() + { + Group = 1, + IsColorCleared = true, + ClearColor = new Color(0, 0, 0, 0), + TargetTexture = renderTexture, + }; + Engine.AddNode(camera); + + var camera2 = new CameraNode() + { + IsColorCleared = true, + Group = 2, + }; + Engine.AddNode(camera2); + + var particlesNode = new ParticleNode + { + CameraGroup = 1, + Step = false, + }; + + Engine.AddNode(particlesNode); + + var finalizeNode = new SpriteNode() + { + Texture = renderTexture, + Position = Engine.WindowSize / 2 - renderTexture.Size / 2, + CameraGroup = 2, + }; + finalizeNode.Material = Material.Create(); + const string psCode2 = @" +Texture2D mainTex : register(t0); +SamplerState mainSamp : register(s0); +struct PS_INPUT +{ + float4 Position : SV_POSITION; + float4 Color : COLOR0; + float2 UV1 : UV0; + float2 UV2 : UV1; +}; +float4 main(PS_INPUT input) : SV_TARGET +{ + float4 c; + if (mainTex.Sample(mainSamp, input.UV1).a < 0.5) + discard; + c = float4(mainTex.Sample(mainSamp, input.UV1).rgb, 1); + return c; +}"; + finalizeNode.Material.SetShader(Shader.CreateStrict("ps2", psCode2, ShaderStage.Pixel)); + finalizeNode.Material.SetTexture("mainTex", renderTexture); + Engine.AddNode(finalizeNode); + + var font = Font.LoadDynamicFont("TestData/Font/mplus-1m-regular.ttf", 64); + var text = new TextNode() { Font = font, FontSize = 30, Text = "", ZOrder = 10, CameraGroup = 2 }; + Engine.AddNode(text); + + while (Engine.DoEvents()) + { if (Engine.Keyboard.GetKeyState(Key.Space) == ButtonState.Push) { - step = !step; + particlesNode.Step = !particlesNode.Step; } + text.Text = $"FPS: {Engine.CurrentFPS}\nIsUpdated: {particlesNode.IsUpdated}"; + Engine.Update(); } From 489afd900e3f0456e07980cfd82c7105d57eb6c8 Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 23:10:33 +0900 Subject: [PATCH 25/49] fix bug (?) temporarily --- Samples/ComputeShader/Fluid.cs | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index de4a2985..80045371 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -1,4 +1,4 @@ -using Altseed2; +using Altseed2; using System; using System.Collections.Generic; using System.Linq; @@ -726,7 +726,8 @@ protected override void OnUpdate() Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); - for (int l = 0; l < 8; l++) + // TODO: 2以上にすると死ぬ + for (int l = 0; l < 1; l++) { Engine.Graphics.CommandList.ComputePipelineState = buildGridPipeline; Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); @@ -762,19 +763,17 @@ protected override void OnUpdate() Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 1); Engine.Graphics.CommandList.Dispatch(gridTable.Count, 1, 1); - // TODO - - //Engine.Graphics.CommandList.ComputePipelineState = calcScalingFactorPipeline; - //Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - //Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); - //Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); - //Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); + Engine.Graphics.CommandList.ComputePipelineState = calcScalingFactorPipeline; + Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); + Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); + Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); + Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); - //Engine.Graphics.CommandList.ComputePipelineState = calcCorrectPositionPipeline; - //Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - //Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); - //Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); - //Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); + Engine.Graphics.CommandList.ComputePipelineState = calcCorrectPositionPipeline; + Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); + Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); + Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); + Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); } Engine.Graphics.CommandList.ComputePipelineState = integratePipeline; From 1da7397aa7bc33b47a53419a4fe559ee2c2d2f9a Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 23:19:03 +0900 Subject: [PATCH 26/49] fix code --- Samples/ComputeShader/Fluid.cs | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 80045371..00241458 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -1,4 +1,4 @@ -using Altseed2; +using Altseed2; using System; using System.Collections.Generic; using System.Linq; @@ -303,7 +303,7 @@ float2 CalcDensityCellPB(int2 gridPos, int i, float2 pos0) float h = EffectiveRadius.x; float dens = 0.0f; - if(startIndex != 0xffffffff){ // セルが空でないかのチェック + if(startIndex != 0xffffffff){ // セルが空でないかのチェック // セル内のパーティクルで反復 int endIndex = gridIndicesTable[gridHash].y; for(int j = startIndex; j < endIndex; ++j){ @@ -332,8 +332,8 @@ float CalcScalingFactorCell(int2 gridPos, int i, float2 pos0) float h = EffectiveRadius.x; float r0 = Density.x; float sd = 0.0f; - float sd2 = 0.0f; - if(startIndex != 0xffffffff){ // セルが空でないかのチェック + float2 sd2 = 0.0f; + if(startIndex != 0xffffffff){ // セルが空でないかのチェック // セル内のパーティクルで反復 uint endIndex = gridIndicesTable[gridHash].y; for(uint j = startIndex; j < endIndex; ++j){ @@ -360,14 +360,13 @@ float CalcScalingFactorCell(int2 gridPos, int i, float2 pos0) void CalcScalingFactor(int id) { - float2 pos = particles[id].Next; // パーティクル位置 + float2 pos = particles[id].Next; // パーティクル位置 float h = EffectiveRadius.x; float r0 = Density.x; // パーティクル周囲のグリッド - int2 grid_pos0, grid_pos1; - grid_pos0 = GetGridPos(pos-h); - grid_pos1 = GetGridPos(pos+h); + int2 grid_pos0 = GetGridPos(pos-h); + int2 grid_pos1 = GetGridPos(pos+h); // 周囲のグリッドも含めて近傍探索,密度計算 float dens = 0.0f; @@ -391,7 +390,7 @@ void CalcScalingFactor(int id) } // スケーリングファクタの計算(式(11)) - particles[id].Pscl = -C/(sd+Eps); + particles[id].Pscl = -C/(sd+Eps.x); } [numthreads(1, 1, 1)] @@ -503,9 +502,8 @@ float2 CalcPositionCorrection(int id) float h = EffectiveRadius.x; // パーティクル周囲のグリッド - int2 grid_pos0, grid_pos1; - grid_pos0 = GetGridPos(pos - h); - grid_pos1 = GetGridPos(pos + h); + int2 grid_pos0 = GetGridPos(pos - h); + int2 grid_pos1 = GetGridPos(pos + h); // 周囲のグリッドも含めて近傍探索,位置修正量を計算 float2 dpij = float2(0.0f); @@ -522,9 +520,8 @@ float2 CalcPositionCorrection(int id) [numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { - if (particles[dtid.x].IsFix) - return; int id = dtid.x; + if (particles[id].IsFix) return; particles[id].Next += CalcPositionCorrection(id); } "; @@ -613,10 +610,10 @@ int DecodeFloatRGBA(float4 rgba) { [numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { + int c = DecodeFloatRGBA(lerp(Color, FixedColor, particles[dtid.x].IsFix)); for (int i = 0; i < 4; i++) - { - float4 c = lerp(Color, FixedColor, particles[dtid.x].IsFix); - vertex[dtid.x * 4 + i].Color = DecodeFloatRGBA(c); + { + vertex[dtid.x * 4 + i].Color = c; } vertex[dtid.x * 4].Position = float3(particles[dtid.x].Current, 0.5) + float3(-1, -1, 0) * ParticleRadius.x * 3; From c51b4c3e1b8a49aa314d5776c5ba6e5c530cf0d2 Mon Sep 17 00:00:00 2001 From: wraikny Date: Sun, 11 Jun 2023 23:57:54 +0900 Subject: [PATCH 27/49] fix --- Samples/ComputeShader/Fluid.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 00241458..c9d3bbd3 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -876,7 +876,7 @@ float4 main(PS_INPUT input) : SV_TARGET particlesNode.Step = !particlesNode.Step; } - text.Text = $"FPS: {Engine.CurrentFPS}\nIsUpdated: {particlesNode.IsUpdated}"; + text.Text = $"FPS: {Engine.CurrentFPS}\nStep: {particlesNode.Step}"; Engine.Update(); } From ae5d17afa3324daddf8529a353c466f48b8c372b Mon Sep 17 00:00:00 2001 From: wraikny Date: Mon, 12 Jun 2023 00:48:02 +0900 Subject: [PATCH 28/49] update shader for mac --- Samples/ComputeShader/Fluid.cs | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index c9d3bbd3..c8c4e0b9 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -1,4 +1,4 @@ -using Altseed2; +using Altseed2; using System; using System.Collections.Generic; using System.Linq; @@ -592,7 +592,7 @@ struct Vertex }; RWStructuredBuffer particles : register(u0); -RWStructuredBuffer vertex : register(u1); +RWStructuredBuffer vertex_ : register(u1); RWStructuredBuffer index : register(u2); int DecodeFloatRGBA(float4 rgba) { @@ -612,19 +612,22 @@ void main(uint3 dtid : SV_DispatchThreadID) { int c = DecodeFloatRGBA(lerp(Color, FixedColor, particles[dtid.x].IsFix)); for (int i = 0; i < 4; i++) - { - vertex[dtid.x * 4 + i].Color = c; + { + vertex_[dtid.x * 4 + i].Color = c; } - vertex[dtid.x * 4].Position = float3(particles[dtid.x].Current, 0.5) + float3(-1, -1, 0) * ParticleRadius.x * 3; - vertex[dtid.x * 4 + 1].Position = float3(particles[dtid.x].Current, 0.5) + float3(1, -1, 0) * ParticleRadius.x * 3; - vertex[dtid.x * 4 + 2].Position = float3(particles[dtid.x].Current, 0.5) + float3(1, 1, 0) * ParticleRadius.x * 3; - vertex[dtid.x * 4 + 3].Position = float3(particles[dtid.x].Current, 0.5) + float3(-1, 1, 0) * ParticleRadius.x * 3; - vertex[dtid.x * 4].UV1 = float2(0, 0); - vertex[dtid.x * 4 + 1].UV1 = float2(1, 0); - vertex[dtid.x * 4 + 2].UV1 = float2(1, 1); - vertex[dtid.x * 4 + 3].UV1 = float2(0, 1); - + float3 pos = float3(particles[dtid.x].Current, 0.5); + + vertex_[dtid.x * 4].Position = pos + float3(-1, -1, 0) * ParticleRadius.x * 3; + vertex_[dtid.x * 4 + 1].Position = pos + float3(1, -1, 0) * ParticleRadius.x * 3; + vertex_[dtid.x * 4 + 2].Position = pos + float3(1, 1, 0) * ParticleRadius.x * 3; + vertex_[dtid.x * 4 + 3].Position = pos + float3(-1, 1, 0) * ParticleRadius.x * 3; + + vertex_[dtid.x * 4].UV1 = float2(0, 0); + vertex_[dtid.x * 4 + 1].UV1 = float2(1, 0); + vertex_[dtid.x * 4 + 2].UV1 = float2(1, 1); + vertex_[dtid.x * 4 + 3].UV1 = float2(0, 1); + index[dtid.x * 6] = dtid.x * 4; index[dtid.x * 6 + 1] = dtid.x * 4 + 1; index[dtid.x * 6 + 2] = dtid.x * 4 + 2; From 18851b209f719382b467a9e4ae230ad9dd17f28d Mon Sep 17 00:00:00 2001 From: wraikny Date: Mon, 12 Jun 2023 01:29:16 +0900 Subject: [PATCH 29/49] fix for mac --- Samples/ComputeShader/Fluid.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index c8c4e0b9..dfbfbfef 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -1,4 +1,4 @@ -using Altseed2; +using Altseed2; using System; using System.Collections.Generic; using System.Linq; @@ -212,7 +212,7 @@ void main(uint3 dtid : SV_DispatchThreadID) const string csClearGridIndices = @" RWStructuredBuffer gridIndicesTable : register(u0); -[numthreads(64, 1, 1)] +[numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { gridIndicesTable[dtid.x] = int2(0xffffffff, 0xffffffff); @@ -376,7 +376,7 @@ void CalcScalingFactor(int id) dens += CalcDensityCellPB(n_grid_pos, id, pos); } } - + // 密度拘束条件(式(1)) float C = dens/r0-1.0; @@ -811,7 +811,7 @@ public static void Main(string[] args) Engine.Initialize("Fluids Sim", 640, 480); Engine.FramerateMode = FramerateMode.Variable; Engine.TargetFPS = 240; - + var renderTexture = RenderTexture.Create(new Vector2I(300, 300), TextureFormat.R8G8B8A8_UNORM); From a7f0923e802df77d58d163bc1b18dc962a6935d8 Mon Sep 17 00:00:00 2001 From: wraikny Date: Mon, 12 Jun 2023 02:05:27 +0900 Subject: [PATCH 30/49] refactoring --- Samples/ComputeShader/Fluid.cs | 128 +++++++++------------------------ 1 file changed, 35 insertions(+), 93 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index dfbfbfef..afb3954b 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -73,6 +73,27 @@ public static float CalcRestDensity(float h) return r0; } + const string CommonCode = @" +struct Particle +{ + float2 Current; + float2 Next; + float2 Velocity; + float Pscl; + bool IsFix; +}; + +int GetHash(int2 gridPos, int num) +{ + return gridPos.x + gridPos.y * num; +} + +int2 GetGridPos(float2 pos, float2 gridSize) +{ + return pos / gridSize; +} +"; + public ParticleNode() { var density = CalcRestDensity(EffectiveRadius); @@ -87,16 +108,7 @@ public ParticleNode() particleVertex = Buffer.CreateStrict(BufferUsageType.Vertex, ParticlesCount * 4); particleIndex = Buffer.CreateStrict(BufferUsageType.Index, ParticlesCount * 6); - const string csCalcExternalForces = @" -struct Particle -{ - float2 Current; - float2 Next; - float2 Velocity; - float Pscl; - bool IsFix; -}; - + const string csCalcExternalForces = CommonCode + @" cbuffer CB : register(b0) { float4 Force; @@ -125,16 +137,7 @@ void main(uint3 dtid : SV_DispatchThreadID) calcExternalPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); calcExternalPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); - const string csBuildGrid = @" -struct Particle -{ - float2 Current; - float2 Next; - float2 Velocity; - float Pscl; - bool IsFix; -}; - + const string csBuildGrid = CommonCode + @" cbuffer CB : register(b0) { float4 GridNum; @@ -145,17 +148,12 @@ struct Particle RWStructuredBuffer particles : register(u0); RWStructuredBuffer gridTable : register(u1); -int GetGridHash(float2 pos) -{ - return (int)(pos.x / GridSize.x) + (int)(pos.y / GridSize.y) * (int)GridNum.x; -} - [numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { if (dtid.x < ParticleNum.x) { - gridTable[dtid.x].x = GetGridHash(particles[dtid.x].Next); + gridTable[dtid.x].x = GetHash(particles[dtid.x].Next / GridSize.xy, GridNum.x); gridTable[dtid.x].y = dtid.x; } else @@ -260,16 +258,7 @@ void main(uint3 dtid : SV_DispatchThreadID) buildGridIndicesPipeline.Shader = Shader.CreateStrict("csBuildGridIndices", csBuildGridIndices, ShaderStage.Compute); buildGridIndicesPipeline.SetVector4F("ParticleNum", new Vector4F(ParticlesCount, 0, 0, 0)); - const string csCalcScalingFactor = @" -struct Particle -{ - float2 Current; - float2 Next; - float2 Velocity; - float Pscl; - bool IsFix; -}; - + const string csCalcScalingFactor = CommonCode + @" cbuffer CB : register(b0) { float4 GridNum; @@ -286,19 +275,9 @@ struct Particle RWStructuredBuffer gridTable : register(u1); RWStructuredBuffer gridIndicesTable : register(u2); -int GetGridHash(float2 pos) -{ - return (int)(pos.x / GridSize.x) + (int)(pos.y / GridSize.y) * (int)GridNum.x; -} - -int2 GetGridPos(float2 pos) -{ - return int2((int)(pos.x / GridSize.x), (int)(pos.y / GridSize.x)); -} - float2 CalcDensityCellPB(int2 gridPos, int i, float2 pos0) { - int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; + int gridHash = GetHash(gridPos, GridNum.x); int startIndex = gridIndicesTable[gridHash].x; float h = EffectiveRadius.x; @@ -326,13 +305,13 @@ float2 CalcDensityCellPB(int2 gridPos, int i, float2 pos0) float CalcScalingFactorCell(int2 gridPos, int i, float2 pos0) { - int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; + int gridHash = GetHash(gridPos, GridNum.x); int startIndex = gridIndicesTable[gridHash].x; float h = EffectiveRadius.x; float r0 = Density.x; float sd = 0.0f; - float2 sd2 = 0.0f; + float2 sd2 = float2(0.0f, 0.0f); if(startIndex != 0xffffffff){ // セルが空でないかのチェック // セル内のパーティクルで反復 uint endIndex = gridIndicesTable[gridHash].y; @@ -365,8 +344,8 @@ void CalcScalingFactor(int id) float r0 = Density.x; // パーティクル周囲のグリッド - int2 grid_pos0 = GetGridPos(pos-h); - int2 grid_pos1 = GetGridPos(pos+h); + int2 grid_pos0 = GetGridPos(pos-h, GridSize.xy); + int2 grid_pos1 = GetGridPos(pos+h, GridSize.xy); // 周囲のグリッドも含めて近傍探索,密度計算 float dens = 0.0f; @@ -412,16 +391,7 @@ void main(uint3 dtid : SV_DispatchThreadID) calcScalingFactorPipeline.SetVector4F("Wpoly6", new Vector4F(4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)), 0, 0, 0)); calcScalingFactorPipeline.SetVector4F("GWspiky", new Vector4F(-30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)), 0, 0, 0)); - const string csCalcCorrectPosition = @" -struct Particle -{ - float2 Current; - float2 Next; - float2 Velocity; - float Pscl; - bool IsFix; -}; - + const string csCalcCorrectPosition = CommonCode + @" cbuffer CB : register(b0) { float4 GridNum; @@ -438,16 +408,6 @@ struct Particle RWStructuredBuffer gridTable : register(u1); RWStructuredBuffer gridIndicesTable : register(u2); -int GetGridHash(float2 pos) -{ - return (int)(pos.x / GridSize.x) + (int)(pos.y / GridSize.y) * (int)GridNum.x; -} - -int2 GetGridPos(float2 pos) -{ - return int2((int)(pos.x / GridSize.x), (int)(pos.y / GridSize.x)); -} - float2 CalcPositionCorrectionCell(int2 gridPos, int i, float2 pos0) { int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; @@ -502,8 +462,8 @@ float2 CalcPositionCorrection(int id) float h = EffectiveRadius.x; // パーティクル周囲のグリッド - int2 grid_pos0 = GetGridPos(pos - h); - int2 grid_pos1 = GetGridPos(pos + h); + int2 grid_pos0 = GetGridPos(pos - h, GridSize.xy); + int2 grid_pos1 = GetGridPos(pos + h, GridSize.xy); // 周囲のグリッドも含めて近傍探索,位置修正量を計算 float2 dpij = float2(0.0f); @@ -537,16 +497,7 @@ void main(uint3 dtid : SV_DispatchThreadID) calcCorrectPositionPipeline.SetVector4F("Wpoly6", new Vector4F(4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)), 0, 0, 0)); calcCorrectPositionPipeline.SetVector4F("GWspiky", new Vector4F(-30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)), 0, 0, 0)); - const string csIntegrate = @" -struct Particle -{ - float2 Current; - float2 Next; - float2 Velocity; - float Pscl; - bool IsFix; -}; - + const string csIntegrate = CommonCode + @" cbuffer CB : register(b0) { float4 Dt; @@ -566,16 +517,7 @@ void main(uint3 dtid : SV_DispatchThreadID) integratePipeline.Shader = Shader.CreateStrict("csIntegrate", csIntegrate, ShaderStage.Compute); integratePipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); - const string csBuildVBIB = @" -struct Particle -{ - float2 Current; - float2 Next; - float2 Velocity; - float Pscl; - bool IsFix; -}; - + const string csBuildVBIB = CommonCode + @" struct Vertex { float3 Position; From 7a62898970e50c8fb52e9db0c896aee80adf7573 Mon Sep 17 00:00:00 2001 From: wraikny Date: Mon, 12 Jun 2023 02:33:19 +0900 Subject: [PATCH 31/49] add IterationCount property --- Samples/ComputeShader/Fluid.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index afb3954b..13a3d7cc 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -29,6 +29,8 @@ class ParticleNode : CommandDrawnNode { public bool Step { get; set; } = false; + public int IterationCount { get; private init; } + private const int ParticlesCount = 2048; private readonly Material material; @@ -96,6 +98,8 @@ int2 GetGridPos(float2 pos, float2 gridSize) public ParticleNode() { + IterationCount = OperatingSystem.IsWindows() ? 1 : 4; + var density = CalcRestDensity(EffectiveRadius); particles = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopyDst, ParticlesCount); @@ -668,8 +672,8 @@ protected override void OnUpdate() Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); - // TODO: 2以上にすると死ぬ - for (int l = 0; l < 1; l++) + // TODO: Windowsでは2以上にすると死ぬ + for (int l = 0; l < IterationCount; l++) { Engine.Graphics.CommandList.ComputePipelineState = buildGridPipeline; Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); @@ -821,7 +825,7 @@ float4 main(PS_INPUT input) : SV_TARGET particlesNode.Step = !particlesNode.Step; } - text.Text = $"FPS: {Engine.CurrentFPS}\nStep: {particlesNode.Step}"; + text.Text = $"FPS: {Engine.CurrentFPS}\nIterationCount:{particlesNode.IterationCount}\nStep: {particlesNode.Step}"; Engine.Update(); } From 77aa6530365c1a1cad14673f9b9dffecc427df96 Mon Sep 17 00:00:00 2001 From: wraikny Date: Mon, 12 Jun 2023 03:40:47 +0900 Subject: [PATCH 32/49] refactoring --- Samples/ComputeShader/Fluid.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 13a3d7cc..9fe237b3 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -10,9 +10,6 @@ namespace Sample { public class Fluid { - const float EffectiveRadius = 6; - const float ParticleRadius = 2; - [StructLayout(LayoutKind.Sequential, Size = 32)] public struct Particle { @@ -31,6 +28,8 @@ class ParticleNode : CommandDrawnNode public int IterationCount { get; private init; } + private const float EffectiveRadius = 6; + private const float ParticleRadius = 2; private const int ParticlesCount = 2048; private readonly Material material; @@ -414,7 +413,7 @@ void main(uint3 dtid : SV_DispatchThreadID) float2 CalcPositionCorrectionCell(int2 gridPos, int i, float2 pos0) { - int gridHash = gridPos.x + gridPos.y * (int)GridNum.x; + int gridHash = GetHash(gridPos, GridNum.x); int startIndex = gridIndicesTable[gridHash].x; float h = EffectiveRadius.x; From 0b77026844055aede4b766635d72562b9b57b70b Mon Sep 17 00:00:00 2001 From: wraikny Date: Wed, 28 Jun 2023 18:09:25 +0900 Subject: [PATCH 33/49] =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E6=95=B4?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Samples/ComputeShader/Fluid.cs | 95 ++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 46 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 9fe237b3..52aa7c62 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -62,7 +62,7 @@ public static float CalcRestDensity(float h) { for (int y = -n; y <= n; ++y) { - Vector2F rij = new Vector2F(x * l, y * l); + var rij = new Vector2F(x * l, y * l); var r = rij.Length; if (r >= 0.0 && r <= h) { @@ -94,12 +94,18 @@ int2 GetGridPos(float2 pos, float2 gridSize) return pos / gridSize; } "; - public ParticleNode() { IterationCount = OperatingSystem.IsWindows() ? 1 : 4; + var gridNum = new Vector4F(60, 60, 0, 0); + var gridSize = new Vector4F(5, 5, 0, 0); + var density = CalcRestDensity(EffectiveRadius); + var eps = 0.1f; + var dt = 1.0f / 60; + var wpoly6 = 4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)); + var gwspiky = -30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)); particles = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopyDst, ParticlesCount); gridTable = Buffer.CreateStrict(BufferUsageType.Compute, ParticlesCount); @@ -137,8 +143,8 @@ void main(uint3 dtid : SV_DispatchThreadID) calcExternalPipeline.Shader = Shader.CreateStrict("csCalcExternalForces", csCalcExternalForces, ShaderStage.Compute); calcExternalPipeline.SetVector4F("Force", new Vector4F(0, 0, 0, 0)); calcExternalPipeline.SetVector4F("Gravity", new Vector4F(0, 100, 0, 0)); - calcExternalPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); - calcExternalPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + calcExternalPipeline.SetVector4F("GridNum", gridNum); + calcExternalPipeline.SetVector4F("GridSize", gridSize); const string csBuildGrid = CommonCode + @" cbuffer CB : register(b0) @@ -169,8 +175,8 @@ void main(uint3 dtid : SV_DispatchThreadID) buildGridPipeline = ComputePipelineState.Create(); buildGridPipeline.Shader = Shader.CreateStrict("csBuildGrid", csBuildGrid, ShaderStage.Compute); - buildGridPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); - buildGridPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + buildGridPipeline.SetVector4F("GridSize", gridSize); + buildGridPipeline.SetVector4F("GridNum", gridNum); buildGridPipeline.SetVector4F("ParticleNum", new Vector4F(ParticlesCount, 0, 0, 0)); const string csBitonicSort = @" @@ -232,14 +238,17 @@ void main(uint3 dtid : SV_DispatchThreadID) RWStructuredBuffer gridTable : register(u0); RWStructuredBuffer gridIndicesTable : register(u1); +int getValidId(int id) { + int n = ParticleNum.x; + return id - n * floor(id / n); +} + [numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { int id = dtid.x; - int idPrev = (id == 0) ? (int)ParticleNum : id; - idPrev--; - int idNext = id + 1; - if (idNext == (int)ParticleNum) { idNext = 0; } + int idPrev = getValidId(id - 1); + int idNext = getValidId(id + 1); int cell = gridTable[id].x; int cellPrev = gridTable[idPrev].x; @@ -283,21 +292,20 @@ float2 CalcDensityCellPB(int2 gridPos, int i, float2 pos0) int gridHash = GetHash(gridPos, GridNum.x); int startIndex = gridIndicesTable[gridHash].x; - float h = EffectiveRadius.x; + float h2 = EffectiveRadius.x * EffectiveRadius.x; float dens = 0.0f; if(startIndex != 0xffffffff){ // セルが空でないかのチェック // セル内のパーティクルで反復 int endIndex = gridIndicesTable[gridHash].y; for(int j = startIndex; j < endIndex; ++j){ - //if(j == i) continue; + // if(j == i) continue; float2 pos1 = particles[gridTable[j].y].Next; - float2 rij = pos0 - pos1; - float r = length(rij); + float r2 = dot(pos0 - pos1, pos0 - pos1); - if(r <= h){ - float q = h * h - r * r; + if(r2 <= h2){ + float q = h2 - r2; dens += Wpoly6.x * q * q * q; } } @@ -322,15 +330,15 @@ float CalcScalingFactorCell(int2 gridPos, int i, float2 pos0) float2 pos1 = particles[gridTable[j].y].Next; - float2 rij = pos0-pos1; + float2 rij = pos0 - pos1; float r = length(rij); if(r <= h && r > 0.0){ float q = h - r; // Spikyカーネルで位置変動を計算 - float2 dp = -(GWspiky.x * q * q * rij / r) / r0; - sd2 -= dp; + float2 dp = (GWspiky.x * q * q * rij / r) / r0; + sd2 += dp; if(gridTable[j].y != i) sd += dot(dp, dp); @@ -347,31 +355,26 @@ void CalcScalingFactor(int id) float r0 = Density.x; // パーティクル周囲のグリッド - int2 grid_pos0 = GetGridPos(pos-h, GridSize.xy); - int2 grid_pos1 = GetGridPos(pos+h, GridSize.xy); + int2 grid_pos0 = GetGridPos(pos-float2(h, h), GridSize.xy); + int2 grid_pos1 = GetGridPos(pos+float2(h, h), GridSize.xy); - // 周囲のグリッドも含めて近傍探索,密度計算 + float dens = 0.0f; + float sd = 0.0f; for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ int2 n_grid_pos = int2(x, y); + // 周囲のグリッドも含めて近傍探索,密度計算 dens += CalcDensityCellPB(n_grid_pos, id, pos); + // 周囲のグリッドも含めて近傍探索,スケーリングファクタの分母項計算 + sd += CalcScalingFactorCell(n_grid_pos, id, pos); } } - // 密度拘束条件(式(1)) + // 密度拘束条件 float C = dens/r0-1.0; - // 周囲のグリッドも含めて近傍探索,スケーリングファクタの分母項計算 - float sd = 0.0f; - for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ - for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ - int2 n_grid_pos = int2(x, y); - sd += CalcScalingFactorCell(n_grid_pos, id, pos); - } - } - - // スケーリングファクタの計算(式(11)) + // スケーリングファクタの計算 particles[id].Pscl = -C/(sd+Eps.x); } @@ -385,14 +388,14 @@ void main(uint3 dtid : SV_DispatchThreadID) calcScalingFactorPipeline = ComputePipelineState.Create(); calcScalingFactorPipeline.Shader = Shader.CreateStrict("csCalcScalingFactor", csCalcScalingFactor, ShaderStage.Compute); - calcScalingFactorPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); - calcScalingFactorPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + calcScalingFactorPipeline.SetVector4F("GridNum", gridNum); + calcScalingFactorPipeline.SetVector4F("GridSize", gridSize); calcScalingFactorPipeline.SetVector4F("EffectiveRadius", new Vector4F(EffectiveRadius, 0, 0, 0)); calcScalingFactorPipeline.SetVector4F("Density", new Vector4F(density, 0, 0, 0)); - calcScalingFactorPipeline.SetVector4F("Eps", new Vector4F(0.1f, 0, 0, 0)); - calcScalingFactorPipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); - calcScalingFactorPipeline.SetVector4F("Wpoly6", new Vector4F(4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)), 0, 0, 0)); - calcScalingFactorPipeline.SetVector4F("GWspiky", new Vector4F(-30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)), 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Eps", new Vector4F(eps, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Dt", new Vector4F(dt, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("Wpoly6", new Vector4F(wpoly6, 0, 0, 0)); + calcScalingFactorPipeline.SetVector4F("GWspiky", new Vector4F(gwspiky, 0, 0, 0)); const string csCalcCorrectPosition = CommonCode + @" cbuffer CB : register(b0) @@ -491,14 +494,14 @@ void main(uint3 dtid : SV_DispatchThreadID) calcCorrectPositionPipeline = ComputePipelineState.Create(); calcCorrectPositionPipeline.Shader = Shader.CreateStrict("csCalcCorrectPosition", csCalcCorrectPosition, ShaderStage.Compute); - calcCorrectPositionPipeline.SetVector4F("GridNum", new Vector4F(60, 60, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("GridSize", new Vector4F(5, 5, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("GridNum", gridNum); + calcCorrectPositionPipeline.SetVector4F("GridSize", gridSize); calcCorrectPositionPipeline.SetVector4F("EffectiveRadius", new Vector4F(EffectiveRadius, 0, 0, 0)); calcCorrectPositionPipeline.SetVector4F("Density", new Vector4F(density, 0, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("Eps", new Vector4F(0.1f, 0, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("Wpoly6", new Vector4F(4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)), 0, 0, 0)); - calcCorrectPositionPipeline.SetVector4F("GWspiky", new Vector4F(-30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)), 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Eps", new Vector4F(eps, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Dt", new Vector4F(dt, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("Wpoly6", new Vector4F(wpoly6, 0, 0, 0)); + calcCorrectPositionPipeline.SetVector4F("GWspiky", new Vector4F(gwspiky, 0, 0, 0)); const string csIntegrate = CommonCode + @" cbuffer CB : register(b0) @@ -518,7 +521,7 @@ void main(uint3 dtid : SV_DispatchThreadID) integratePipeline = ComputePipelineState.Create(); integratePipeline.Shader = Shader.CreateStrict("csIntegrate", csIntegrate, ShaderStage.Compute); - integratePipeline.SetVector4F("Dt", new Vector4F(1.0f / 60, 0, 0, 0)); + integratePipeline.SetVector4F("Dt", new Vector4F(dt, 0, 0, 0)); const string csBuildVBIB = CommonCode + @" struct Vertex From f7471feb0f918d7e6c76ef8fe4caa078390277e8 Mon Sep 17 00:00:00 2001 From: wraikny Date: Wed, 28 Jun 2023 20:16:08 +0900 Subject: [PATCH 34/49] little fix --- Samples/ComputeShader/Fluid.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 52aa7c62..1c67151f 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -1,4 +1,4 @@ -using Altseed2; +using Altseed2; using System; using System.Collections.Generic; using System.Linq; @@ -421,7 +421,7 @@ float2 CalcPositionCorrectionCell(int2 gridPos, int i, float2 pos0) float h = EffectiveRadius.x; float r0 = Density.x; - float2 dp = float2(0.0); + float2 dp = float2(0.0f, 0.0f); float dt = Dt.x; @@ -472,7 +472,7 @@ float2 CalcPositionCorrection(int id) int2 grid_pos1 = GetGridPos(pos + h, GridSize.xy); // 周囲のグリッドも含めて近傍探索,位置修正量を計算 - float2 dpij = float2(0.0f); + float2 dpij = float2(0.0f, 0.0f); for(int y = grid_pos0.y; y <= grid_pos1.y; ++y){ for(int x = grid_pos0.x; x <= grid_pos1.x; ++x){ int2 n_grid_pos = int2(x, y); From 97b5237fe30ef1c0edb5f77d847359b1fb3f37b5 Mon Sep 17 00:00:00 2001 From: wraikny Date: Wed, 28 Jun 2023 22:34:37 +0900 Subject: [PATCH 35/49] add unit test of bitonic sort --- Test/ComputeShader.cs | 112 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs index 80c52503..55f8baf7 100644 --- a/Test/ComputeShader.cs +++ b/Test/ComputeShader.cs @@ -192,5 +192,117 @@ void main(uint3 dtid : SV_DispatchThreadID) tc.End(); } + + [StructLayout(LayoutKind.Sequential, Size = 32)] + public struct MyStruct + { + [MarshalAs(UnmanagedType.I4)] + public int Key; + [MarshalAs(UnmanagedType.I4)] + public int Index; + } + [Test, Apartment(ApartmentState.STA)] + public void BitonicSort() + { + var tc = new TestCore(); + tc.Init(); + + const string csBitonicSort = @" +cbuffer CB : register(b0) +{ + float4 Inc_Dir; +}; + +struct MyStruct +{ + int key; + int index; +}; + +bool compareMyStruct(MyStruct a, MyStruct b) { return a.key < b.key; } + +RWStructuredBuffer myData : register(u0); + +[numthreads(64, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + int inc = (int)Inc_Dir.x; + int dir = (int)Inc_Dir.y; + int t = dtid.x; // thread index + int low = t & (inc - 1); // low order bits (below INC) + int i = (t << 1) - low; // insert 0 at position INC + bool reverse = ((dir & i) == 0); + + // Load + MyStruct x0 = myData[i]; + MyStruct x1 = myData[inc + i]; + + // Sort + MyStruct auxa = x0; + MyStruct auxb = x1; + if (compareMyStruct(x0, x1) ^ reverse) { x0 = auxb; x1 = auxa; } + + // Store + myData[i] = x0; + myData[inc + i] = x1; +} +"; + var bitonicSortPipeline = ComputePipelineState.Create(); + bitonicSortPipeline.Shader = Shader.CreateStrict("csBitonicSort", csBitonicSort, ShaderStage.Compute); + + const int Count = 2048; + var input = Buffer.CreateStrict(BufferUsageType.CopySrc | BufferUsageType.MapWrite, Count); + var computeBuffer = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.Compute, Count); + var output = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, Count); + + using (var c = input.LockStrict()) + { + var rand = new Random(); + + for (int i = 0; i < Count; i++) + { + c.Span[i] = new MyStruct { Key = rand.Next(), Index = i }; + } + } + + Engine.Graphics.CommandList.Begin(); + Engine.Graphics.CommandList.CopyBuffer(input, computeBuffer); + + Engine.Graphics.CommandList.BeginComputePass(); + + Engine.Graphics.CommandList.SetComputeBuffer(computeBuffer, 0); + + for (int i = 0; i < (int)MathF.Log(computeBuffer.Count, 2); i++) + { + int inc = 1 << i; + + for (int j = 0; j < i + 1; j++) + { + bitonicSortPipeline.SetVector4F("Inc_Dir", new Vector4F(inc, 2 << i, 0, 0)); + + Engine.Graphics.CommandList.ComputePipelineState = bitonicSortPipeline; + Engine.Graphics.CommandList.Dispatch(computeBuffer.Count / 2 / 64, 1, 1); + + inc /= 2; + } + } + Engine.Graphics.CommandList.EndComputePass(); + + Engine.Graphics.CommandList.CopyBuffer(computeBuffer, output); + + Engine.Graphics.CommandList.End(); + Engine.Graphics.ExecuteCommandList(); + Engine.Graphics.WaitFinish(); + + using (var c = output.LockStrict()) + { + for (int i = 0; i < Count; i++) + { + Console.WriteLine($"{i}: {c.Span[i].Key}"); + } + } + + tc.End(); + } } } From cf4f4f779dd72bb0109b3c3a5cedb0213cfe338b Mon Sep 17 00:00:00 2001 From: wraikny Date: Wed, 28 Jun 2023 23:15:10 +0900 Subject: [PATCH 36/49] fix test --- Test/ComputeShader.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs index 55f8baf7..1f89612a 100644 --- a/Test/ComputeShader.cs +++ b/Test/ComputeShader.cs @@ -193,7 +193,7 @@ void main(uint3 dtid : SV_DispatchThreadID) tc.End(); } - [StructLayout(LayoutKind.Sequential, Size = 32)] + [StructLayout(LayoutKind.Sequential)] public struct MyStruct { [MarshalAs(UnmanagedType.I4)] @@ -296,6 +296,11 @@ void main(uint3 dtid : SV_DispatchThreadID) using (var c = output.LockStrict()) { + for (int i = 0; i < Count - 1; i++) + { + Assert.True(c.Span[i].Key < c.Span[i + 1].Key); + } + for (int i = 0; i < Count; i++) { Console.WriteLine($"{i}: {c.Span[i].Key}"); From 257bb3147dcc0309b3119e06cfd0a0b28362c761 Mon Sep 17 00:00:00 2001 From: wraikny Date: Wed, 28 Jun 2023 23:22:35 +0900 Subject: [PATCH 37/49] update bitonicsort test --- Test/ComputeShader.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs index 1f89612a..9bbcd626 100644 --- a/Test/ComputeShader.cs +++ b/Test/ComputeShader.cs @@ -1,4 +1,4 @@ -using NUnit.Framework; +using NUnit.Framework; using System; using System.Collections.Generic; using System.Linq; @@ -296,14 +296,14 @@ void main(uint3 dtid : SV_DispatchThreadID) using (var c = output.LockStrict()) { - for (int i = 0; i < Count - 1; i++) + for (int i = 0; i < Count; i++) { - Assert.True(c.Span[i].Key < c.Span[i + 1].Key); + Console.WriteLine($"{i}: {c.Span[i].Key}"); } - for (int i = 0; i < Count; i++) + for (int i = 0; i < Count - 1; i++) { - Console.WriteLine($"{i}: {c.Span[i].Key}"); + Assert.True(c.Span[i].Key < c.Span[i + 1].Key); } } From 9e6173184a9368a6d759b5c966434d112b2b797f Mon Sep 17 00:00:00 2001 From: wraikny Date: Wed, 28 Jun 2023 23:22:47 +0900 Subject: [PATCH 38/49] add computetiming test --- Test/ComputeShader.cs | 72 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs index 9bbcd626..f8787455 100644 --- a/Test/ComputeShader.cs +++ b/Test/ComputeShader.cs @@ -1,4 +1,4 @@ -using NUnit.Framework; +using NUnit.Framework; using System; using System.Collections.Generic; using System.Linq; @@ -193,6 +193,76 @@ void main(uint3 dtid : SV_DispatchThreadID) tc.End(); } + [Test, Apartment(ApartmentState.STA)] + public void ComputeTiming() + { + var tc = new TestCore(); + tc.Init(); + + const string code = @" +RWStructuredBuffer myData : register(u0); + +[numthreads(1, 1, 1)] +void main(uint3 dtid : SV_DispatchThreadID) +{ + myData[dtid.x] = 1; +} +"; + var pipeline = ComputePipelineState.Create(); + pipeline.Shader = Shader.CreateStrict("csBitonicSort", code, ShaderStage.Compute); + + const int Count = 4; + var input = Buffer.CreateStrict(BufferUsageType.CopySrc | BufferUsageType.MapWrite, Count); + var computeBuffer = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.Compute, Count); + var output1 = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, Count); + var output2 = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, Count); + + using (var c = input.LockStrict()) + { + for (int i = 0; i < Count; i++) + { + c.Span[i] = 0; + } + } + + Engine.Graphics.CommandList.Begin(); + Engine.Graphics.CommandList.CopyBuffer(input, computeBuffer); + + Engine.Graphics.CommandList.BeginComputePass(); + + Engine.Graphics.CommandList.SetComputeBuffer(computeBuffer, 0); + Engine.Graphics.CommandList.ComputePipelineState = pipeline; + Engine.Graphics.CommandList.Dispatch(computeBuffer.Count, 1, 1); + + Engine.Graphics.CommandList.CopyBuffer(computeBuffer, output1); + + Engine.Graphics.CommandList.EndComputePass(); + + Engine.Graphics.CommandList.CopyBuffer(computeBuffer, output2); + + Engine.Graphics.CommandList.End(); + Engine.Graphics.ExecuteCommandList(); + Engine.Graphics.WaitFinish(); + + using (var c = output1.LockStrict()) + { + for (int i = 0; i < Count - 1; i++) + { + Assert.True(c.Span[i] == 1); + } + } + + using (var c = output2.LockStrict()) + { + for (int i = 0; i < Count - 1; i++) + { + Assert.True(c.Span[i] == 1); + } + } + + tc.End(); + } + [StructLayout(LayoutKind.Sequential)] public struct MyStruct { From 2798984f7b6da196fa8fa503c2263f60d0e03a76 Mon Sep 17 00:00:00 2001 From: wraikny Date: Wed, 28 Jun 2023 23:58:27 +0900 Subject: [PATCH 39/49] update test --- Test/ComputeShader.cs | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs index f8787455..26663c6c 100644 --- a/Test/ComputeShader.cs +++ b/Test/ComputeShader.cs @@ -200,12 +200,17 @@ public void ComputeTiming() tc.Init(); const string code = @" +cbuffer CB : register(b0) +{ + float4 Value; +}; + RWStructuredBuffer myData : register(u0); [numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { - myData[dtid.x] = 1; + myData[dtid.x] += Value.x; } "; var pipeline = ComputePipelineState.Create(); @@ -231,32 +236,30 @@ void main(uint3 dtid : SV_DispatchThreadID) Engine.Graphics.CommandList.BeginComputePass(); Engine.Graphics.CommandList.SetComputeBuffer(computeBuffer, 0); + pipeline.SetVector4F("Value", new Vector4F(1, 0, 0, 0)); Engine.Graphics.CommandList.ComputePipelineState = pipeline; Engine.Graphics.CommandList.Dispatch(computeBuffer.Count, 1, 1); - Engine.Graphics.CommandList.CopyBuffer(computeBuffer, output1); - Engine.Graphics.CommandList.EndComputePass(); - + Engine.Graphics.CommandList.SetComputeBuffer(computeBuffer, 0); + pipeline.SetVector4F("Value", new Vector4F(2, 0, 0, 0)); + Engine.Graphics.CommandList.ComputePipelineState = pipeline; + Engine.Graphics.CommandList.Dispatch(computeBuffer.Count, 1, 1); Engine.Graphics.CommandList.CopyBuffer(computeBuffer, output2); + Engine.Graphics.CommandList.EndComputePass(); + Engine.Graphics.CommandList.End(); Engine.Graphics.ExecuteCommandList(); Engine.Graphics.WaitFinish(); - using (var c = output1.LockStrict()) - { - for (int i = 0; i < Count - 1; i++) - { - Assert.True(c.Span[i] == 1); - } - } - - using (var c = output2.LockStrict()) + using (var c1 = output1.LockStrict()) + using (var c2 = output2.LockStrict()) { for (int i = 0; i < Count - 1; i++) { - Assert.True(c.Span[i] == 1); + Assert.AreEqual(1, c1.Span[i], $"output1[{i}]"); + Assert.AreEqual(3, c2.Span[i], $"output2[{i}]"); } } @@ -344,12 +347,11 @@ void main(uint3 dtid : SV_DispatchThreadID) for (int i = 0; i < (int)MathF.Log(computeBuffer.Count, 2); i++) { - int inc = 1 << i; - + var inc = 1 << i; + var dir = 2 << i; for (int j = 0; j < i + 1; j++) { - bitonicSortPipeline.SetVector4F("Inc_Dir", new Vector4F(inc, 2 << i, 0, 0)); - + bitonicSortPipeline.SetVector4F("Inc_Dir", new Vector4F(inc, dir, 0, 0)); Engine.Graphics.CommandList.ComputePipelineState = bitonicSortPipeline; Engine.Graphics.CommandList.Dispatch(computeBuffer.Count / 2 / 64, 1, 1); @@ -373,7 +375,7 @@ void main(uint3 dtid : SV_DispatchThreadID) for (int i = 0; i < Count - 1; i++) { - Assert.True(c.Span[i].Key < c.Span[i + 1].Key); + Assert.Less(c.Span[i].Key, c.Span[i + 1].Key); } } From 1ddbcaa0eb0ca1470b4227cc4c99707e5ed073b7 Mon Sep 17 00:00:00 2001 From: wraikny Date: Fri, 7 Jul 2023 18:49:20 +0900 Subject: [PATCH 40/49] update bitonic sort for windows --- Samples/ComputeShader/Fluid.cs | 4 ++-- Test/ComputeShader.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 1c67151f..3aec3fb3 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -188,7 +188,7 @@ void main(uint3 dtid : SV_DispatchThreadID) RWStructuredBuffer gridTable : register(u0); -[numthreads(64, 1, 1)] +[numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { int inc = (int)Inc.x; @@ -697,7 +697,7 @@ protected override void OnUpdate() { bitonicSortPipeline.SetVector4F("Inc", new Vector4F(inc, 0, 0, 0)); Engine.Graphics.CommandList.ComputePipelineState = bitonicSortPipeline; - Engine.Graphics.CommandList.Dispatch(gridTable.Count / 2 / 64, 1, 1); + Engine.Graphics.CommandList.Dispatch(gridTable.Count / 2, 1, 1); inc /= 2; } } diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs index 26663c6c..2d4896fc 100644 --- a/Test/ComputeShader.cs +++ b/Test/ComputeShader.cs @@ -296,7 +296,7 @@ struct MyStruct RWStructuredBuffer myData : register(u0); -[numthreads(64, 1, 1)] +[numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { int inc = (int)Inc_Dir.x; @@ -353,7 +353,7 @@ void main(uint3 dtid : SV_DispatchThreadID) { bitonicSortPipeline.SetVector4F("Inc_Dir", new Vector4F(inc, dir, 0, 0)); Engine.Graphics.CommandList.ComputePipelineState = bitonicSortPipeline; - Engine.Graphics.CommandList.Dispatch(computeBuffer.Count / 2 / 64, 1, 1); + Engine.Graphics.CommandList.Dispatch(computeBuffer.Count / 2, 1, 1); inc /= 2; } From 261071658cf8a85ef0c2aa2f1ff4b59f731258ad Mon Sep 17 00:00:00 2001 From: wraikny Date: Fri, 7 Jul 2023 18:37:38 +0900 Subject: [PATCH 41/49] update test --- Test/ComputeShader.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs index 2d4896fc..972b5d4c 100644 --- a/Test/ComputeShader.cs +++ b/Test/ComputeShader.cs @@ -368,14 +368,13 @@ void main(uint3 dtid : SV_DispatchThreadID) using (var c = output.LockStrict()) { + var prev = c.Span[0].Key; for (int i = 0; i < Count; i++) { - Console.WriteLine($"{i}: {c.Span[i].Key}"); - } - - for (int i = 0; i < Count - 1; i++) - { - Assert.Less(c.Span[i].Key, c.Span[i + 1].Key); + var current = c.Span[i].Key; + Console.WriteLine($"{i}: {current}"); + Assert.GreaterOrEqual(current, prev); + prev = current; } } From faf4f07057d76e06d59f6578308dda0e2c787432 Mon Sep 17 00:00:00 2001 From: wraikny Date: Fri, 7 Jul 2023 18:59:58 +0900 Subject: [PATCH 42/49] fix iteration count --- Samples/ComputeShader/Fluid.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 3aec3fb3..6f47d5a2 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -96,7 +96,7 @@ int2 GetGridPos(float2 pos, float2 gridSize) "; public ParticleNode() { - IterationCount = OperatingSystem.IsWindows() ? 1 : 4; + IterationCount = 4; var gridNum = new Vector4F(60, 60, 0, 0); var gridSize = new Vector4F(5, 5, 0, 0); From d1d54fa170083563f511463159914cf8fe25da74 Mon Sep 17 00:00:00 2001 From: wraikny Date: Fri, 7 Jul 2023 19:21:21 +0900 Subject: [PATCH 43/49] refactor iteration count --- Samples/ComputeShader/Fluid.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 6f47d5a2..b4951446 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -26,7 +26,7 @@ class ParticleNode : CommandDrawnNode { public bool Step { get; set; } = false; - public int IterationCount { get; private init; } + public int IterationCount { get; set; } private const float EffectiveRadius = 6; private const float ParticleRadius = 2; @@ -96,8 +96,6 @@ int2 GetGridPos(float2 pos, float2 gridSize) "; public ParticleNode() { - IterationCount = 4; - var gridNum = new Vector4F(60, 60, 0, 0); var gridSize = new Vector4F(5, 5, 0, 0); @@ -782,6 +780,7 @@ public static void Main(string[] args) var particlesNode = new ParticleNode { CameraGroup = 1, + IterationCount = 4, Step = false, }; From 00c896c05dd0cc69cd2a33cb8d085c6270655ff2 Mon Sep 17 00:00:00 2001 From: wraikny Date: Fri, 7 Jul 2023 19:21:39 +0900 Subject: [PATCH 44/49] =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E6=95=B4?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Samples/ComputeShader/Fluid.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index b4951446..af96a7fb 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -120,6 +120,7 @@ public ParticleNode() { float4 Force; float4 Gravity; + float4 Dt; float4 GridNum; float4 GridSize; }; @@ -130,8 +131,8 @@ public ParticleNode() void main(uint3 dtid : SV_DispatchThreadID) { if (particles[dtid.x].IsFix) return; - particles[dtid.x].Velocity += (Gravity.xy + Force.xy) * (1.0 / 60); - particles[dtid.x].Next = particles[dtid.x].Current + particles[dtid.x].Velocity * (1.0 / 60); + particles[dtid.x].Velocity += (Gravity.xy + Force.xy) * Dt.x; + particles[dtid.x].Next = particles[dtid.x].Current + particles[dtid.x].Velocity * Dt.x; particles[dtid.x].Next.x = clamp(particles[dtid.x].Next.x, 8, GridNum.x * GridSize.x - 8); particles[dtid.x].Next.y = clamp(particles[dtid.x].Next.y, 8, GridNum.y * GridSize.y - 8); } @@ -141,6 +142,7 @@ void main(uint3 dtid : SV_DispatchThreadID) calcExternalPipeline.Shader = Shader.CreateStrict("csCalcExternalForces", csCalcExternalForces, ShaderStage.Compute); calcExternalPipeline.SetVector4F("Force", new Vector4F(0, 0, 0, 0)); calcExternalPipeline.SetVector4F("Gravity", new Vector4F(0, 100, 0, 0)); + calcExternalPipeline.SetVector4F("Dt", new Vector4F(dt, 0, 0, 0)); calcExternalPipeline.SetVector4F("GridNum", gridNum); calcExternalPipeline.SetVector4F("GridSize", gridSize); @@ -238,7 +240,7 @@ void main(uint3 dtid : SV_DispatchThreadID) int getValidId(int id) { int n = ParticleNum.x; - return id - n * floor(id / n); + return fmod(id + n, n); } [numthreads(1, 1, 1)] @@ -512,7 +514,7 @@ void main(uint3 dtid : SV_DispatchThreadID) [numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { - particles[dtid.x].Velocity = (particles[dtid.x].Next - particles[dtid.x].Current) * (1.0 / Dt.x); + particles[dtid.x].Velocity = (particles[dtid.x].Next - particles[dtid.x].Current) / Dt.x; particles[dtid.x].Current = particles[dtid.x].Next; } "; From f4460963b81ded17d7ff60167c8f4235b039b7b3 Mon Sep 17 00:00:00 2001 From: wraikny Date: Fri, 7 Jul 2023 19:32:33 +0900 Subject: [PATCH 45/49] remove comment --- Samples/ComputeShader/Fluid.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index af96a7fb..0efecf22 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -674,7 +674,6 @@ protected override void OnUpdate() Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); - // TODO: Windowsでは2以上にすると死ぬ for (int l = 0; l < IterationCount; l++) { Engine.Graphics.CommandList.ComputePipelineState = buildGridPipeline; From 8ba9e0a019e6c4c92dd92a688df8f1e2417cb3eb Mon Sep 17 00:00:00 2001 From: wraikny Date: Fri, 7 Jul 2023 21:44:44 +0900 Subject: [PATCH 46/49] =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E6=95=B4?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Samples/ComputeShader/Fluid.cs | 136 +++++++++++++++++---------------- 1 file changed, 69 insertions(+), 67 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 0efecf22..12402607 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -26,7 +26,7 @@ class ParticleNode : CommandDrawnNode { public bool Step { get; set; } = false; - public int IterationCount { get; set; } + public int IterationCount { get; set; } = 1; private const float EffectiveRadius = 6; private const float ParticleRadius = 2; @@ -94,20 +94,19 @@ int2 GetGridPos(float2 pos, float2 gridSize) return pos / gridSize; } "; + private readonly Vector2I gridNum = new(60, 60); + private readonly Vector4F gridSize = new(5, 5, 0, 0); + private readonly float density = CalcRestDensity(EffectiveRadius); + private readonly float eps = 0.1f; + private readonly float dt = 1.0f / 60; + private readonly float wpoly6 = 4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)); + private readonly float gwspiky = -30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)); + public ParticleNode() { - var gridNum = new Vector4F(60, 60, 0, 0); - var gridSize = new Vector4F(5, 5, 0, 0); - - var density = CalcRestDensity(EffectiveRadius); - var eps = 0.1f; - var dt = 1.0f / 60; - var wpoly6 = 4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)); - var gwspiky = -30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)); - particles = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopyDst, ParticlesCount); - gridTable = Buffer.CreateStrict(BufferUsageType.Compute, ParticlesCount); - gridIndicesTable = Buffer.CreateStrict(BufferUsageType.Compute, 60 * 60); + gridTable = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, ParticlesCount); + gridIndicesTable = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, gridNum.X * gridNum.Y); particleComputeVertex = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, ParticlesCount * 4); particleComputeIndex = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, ParticlesCount * 6); @@ -132,9 +131,12 @@ void main(uint3 dtid : SV_DispatchThreadID) { if (particles[dtid.x].IsFix) return; particles[dtid.x].Velocity += (Gravity.xy + Force.xy) * Dt.x; - particles[dtid.x].Next = particles[dtid.x].Current + particles[dtid.x].Velocity * Dt.x; - particles[dtid.x].Next.x = clamp(particles[dtid.x].Next.x, 8, GridNum.x * GridSize.x - 8); - particles[dtid.x].Next.y = clamp(particles[dtid.x].Next.y, 8, GridNum.y * GridSize.y - 8); + + float2 pos = particles[dtid.x].Current + particles[dtid.x].Velocity * Dt.x; + pos.x = clamp(pos.x, 8, GridNum.x * GridSize.x - 8); + pos.y = clamp(pos.y, 8, GridNum.y * GridSize.y - 8); + + particles[dtid.x].Next = pos; } "; @@ -143,7 +145,7 @@ void main(uint3 dtid : SV_DispatchThreadID) calcExternalPipeline.SetVector4F("Force", new Vector4F(0, 0, 0, 0)); calcExternalPipeline.SetVector4F("Gravity", new Vector4F(0, 100, 0, 0)); calcExternalPipeline.SetVector4F("Dt", new Vector4F(dt, 0, 0, 0)); - calcExternalPipeline.SetVector4F("GridNum", gridNum); + calcExternalPipeline.SetVector4F("GridNum", new Vector4F(gridNum.X, gridNum.Y, 0, 0)); calcExternalPipeline.SetVector4F("GridSize", gridSize); const string csBuildGrid = CommonCode + @" @@ -176,7 +178,7 @@ void main(uint3 dtid : SV_DispatchThreadID) buildGridPipeline = ComputePipelineState.Create(); buildGridPipeline.Shader = Shader.CreateStrict("csBuildGrid", csBuildGrid, ShaderStage.Compute); buildGridPipeline.SetVector4F("GridSize", gridSize); - buildGridPipeline.SetVector4F("GridNum", gridNum); + buildGridPipeline.SetVector4F("GridNum", new Vector4F(gridNum.X, gridNum.Y, 0, 0)); buildGridPipeline.SetVector4F("ParticleNum", new Vector4F(ParticlesCount, 0, 0, 0)); const string csBitonicSort = @" @@ -339,9 +341,7 @@ float CalcScalingFactorCell(int2 gridPos, int i, float2 pos0) // Spikyカーネルで位置変動を計算 float2 dp = (GWspiky.x * q * q * rij / r) / r0; sd2 += dp; - - if(gridTable[j].y != i) - sd += dot(dp, dp); + sd += dot(dp, dp); } } } @@ -388,7 +388,7 @@ void main(uint3 dtid : SV_DispatchThreadID) calcScalingFactorPipeline = ComputePipelineState.Create(); calcScalingFactorPipeline.Shader = Shader.CreateStrict("csCalcScalingFactor", csCalcScalingFactor, ShaderStage.Compute); - calcScalingFactorPipeline.SetVector4F("GridNum", gridNum); + calcScalingFactorPipeline.SetVector4F("GridNum", new Vector4F(gridNum.X, gridNum.Y, 0, 0)); calcScalingFactorPipeline.SetVector4F("GridSize", gridSize); calcScalingFactorPipeline.SetVector4F("EffectiveRadius", new Vector4F(EffectiveRadius, 0, 0, 0)); calcScalingFactorPipeline.SetVector4F("Density", new Vector4F(density, 0, 0, 0)); @@ -494,7 +494,7 @@ void main(uint3 dtid : SV_DispatchThreadID) calcCorrectPositionPipeline = ComputePipelineState.Create(); calcCorrectPositionPipeline.Shader = Shader.CreateStrict("csCalcCorrectPosition", csCalcCorrectPosition, ShaderStage.Compute); - calcCorrectPositionPipeline.SetVector4F("GridNum", gridNum); + calcCorrectPositionPipeline.SetVector4F("GridNum", new Vector4F(gridNum.X, gridNum.Y, 0, 0)); calcCorrectPositionPipeline.SetVector4F("GridSize", gridSize); calcCorrectPositionPipeline.SetVector4F("EffectiveRadius", new Vector4F(EffectiveRadius, 0, 0, 0)); calcCorrectPositionPipeline.SetVector4F("Density", new Vector4F(density, 0, 0, 0)); @@ -664,24 +664,25 @@ protected override void OnAdded() protected override void OnUpdate() { - Engine.Graphics.CommandList.Begin(); - Engine.Graphics.CommandList.BeginComputePass(); + var commandList = Engine.Graphics.CommandList; + + commandList.Begin(); + commandList.BeginComputePass(); if (Step) { - - Engine.Graphics.CommandList.ComputePipelineState = calcExternalPipeline; - Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); + commandList.ComputePipelineState = calcExternalPipeline; + commandList.SetComputeBuffer(particles, 0); + commandList.Dispatch(ParticlesCount, 1, 1); for (int l = 0; l < IterationCount; l++) { - Engine.Graphics.CommandList.ComputePipelineState = buildGridPipeline; - Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); - Engine.Graphics.CommandList.Dispatch(gridTable.Count, 1, 1); + commandList.ComputePipelineState = buildGridPipeline; + commandList.SetComputeBuffer(particles, 0); + commandList.SetComputeBuffer(gridTable, 1); + commandList.Dispatch(gridTable.Count, 1, 1); - Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 0); + commandList.SetComputeBuffer(gridTable, 0); int nlog = (int)MathF.Log(gridTable.Count, 2); int inc; @@ -695,51 +696,52 @@ protected override void OnUpdate() for (int j = 0; j < i + 1; j++) { bitonicSortPipeline.SetVector4F("Inc", new Vector4F(inc, 0, 0, 0)); - Engine.Graphics.CommandList.ComputePipelineState = bitonicSortPipeline; - Engine.Graphics.CommandList.Dispatch(gridTable.Count / 2, 1, 1); + commandList.ComputePipelineState = bitonicSortPipeline; + commandList.Dispatch(gridTable.Count / 2, 1, 1); inc /= 2; } } - Engine.Graphics.CommandList.ComputePipelineState = clearGridIndicesPipeline; - Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 0); - Engine.Graphics.CommandList.Dispatch(gridIndicesTable.Count, 1, 1); - - Engine.Graphics.CommandList.ComputePipelineState = buildGridIndicesPipeline; - Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 0); - Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 1); - Engine.Graphics.CommandList.Dispatch(gridTable.Count, 1, 1); - - Engine.Graphics.CommandList.ComputePipelineState = calcScalingFactorPipeline; - Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); - Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); - Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); - - Engine.Graphics.CommandList.ComputePipelineState = calcCorrectPositionPipeline; - Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - Engine.Graphics.CommandList.SetComputeBuffer(gridTable, 1); - Engine.Graphics.CommandList.SetComputeBuffer(gridIndicesTable, 2); - Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); + commandList.ComputePipelineState = clearGridIndicesPipeline; + commandList.SetComputeBuffer(gridIndicesTable, 0); + commandList.Dispatch(gridIndicesTable.Count, 1, 1); + + commandList.ComputePipelineState = buildGridIndicesPipeline; + commandList.SetComputeBuffer(gridTable, 0); + commandList.SetComputeBuffer(gridIndicesTable, 1); + commandList.Dispatch(gridTable.Count, 1, 1); + + + commandList.ComputePipelineState = calcScalingFactorPipeline; + commandList.SetComputeBuffer(particles, 0); + commandList.SetComputeBuffer(gridTable, 1); + commandList.SetComputeBuffer(gridIndicesTable, 2); + commandList.Dispatch(ParticlesCount, 1, 1); + + commandList.ComputePipelineState = calcCorrectPositionPipeline; + commandList.SetComputeBuffer(particles, 0); + commandList.SetComputeBuffer(gridTable, 1); + commandList.SetComputeBuffer(gridIndicesTable, 2); + commandList.Dispatch(ParticlesCount, 1, 1); } - Engine.Graphics.CommandList.ComputePipelineState = integratePipeline; - Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); + commandList.ComputePipelineState = integratePipeline; + commandList.SetComputeBuffer(particles, 0); + commandList.Dispatch(ParticlesCount, 1, 1); } - Engine.Graphics.CommandList.ComputePipelineState = buildVBIB; - Engine.Graphics.CommandList.SetComputeBuffer(particles, 0); - Engine.Graphics.CommandList.SetComputeBuffer(particleComputeVertex, 1); - Engine.Graphics.CommandList.SetComputeBuffer(particleComputeIndex, 2); - Engine.Graphics.CommandList.Dispatch(ParticlesCount, 1, 1); + commandList.ComputePipelineState = buildVBIB; + commandList.SetComputeBuffer(particles, 0); + commandList.SetComputeBuffer(particleComputeVertex, 1); + commandList.SetComputeBuffer(particleComputeIndex, 2); + commandList.Dispatch(ParticlesCount, 1, 1); - Engine.Graphics.CommandList.EndComputePass(); + commandList.EndComputePass(); - Engine.Graphics.CommandList.CopyBuffer(particleComputeIndex, particleIndex); - Engine.Graphics.CommandList.CopyBuffer(particleComputeVertex, particleVertex); + commandList.CopyBuffer(particleComputeIndex, particleIndex); + commandList.CopyBuffer(particleComputeVertex, particleVertex); - Engine.Graphics.CommandList.End(); + commandList.End(); Engine.Graphics.ExecuteCommandList(); Engine.Graphics.WaitFinish(); } From ddd77075b04e9f2ed7070099aba74f436f9b281c Mon Sep 17 00:00:00 2001 From: wraikny Date: Fri, 7 Jul 2023 21:54:11 +0900 Subject: [PATCH 47/49] wip: add assertion?? --- Samples/ComputeShader/Fluid.cs | 86 ++++++++++++++++++++++++++++++---- 1 file changed, 77 insertions(+), 9 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 12402607..c137e380 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -28,6 +28,8 @@ class ParticleNode : CommandDrawnNode public int IterationCount { get; set; } = 1; + public bool AssertionEnabled { get; private init; } + private const float EffectiveRadius = 6; private const float ParticleRadius = 2; private const int ParticlesCount = 2048; @@ -42,6 +44,10 @@ class ParticleNode : CommandDrawnNode private readonly Buffer gridTable; private readonly Buffer gridIndicesTable; + private readonly Buffer particlesForAssertion; + private readonly Buffer gridTableForAssertion; + private readonly Buffer gridIndicesTableForAssertion; + private readonly ComputePipelineState calcExternalPipeline; private readonly ComputePipelineState buildGridPipeline; private readonly ComputePipelineState bitonicSortPipeline; @@ -84,6 +90,8 @@ struct Particle bool IsFix; }; +#define EMPTY_CELL 0x7fffffff + int GetHash(int2 gridPos, int num) { return gridPos.x + gridPos.y * num; @@ -101,9 +109,11 @@ int2 GetGridPos(float2 pos, float2 gridSize) private readonly float dt = 1.0f / 60; private readonly float wpoly6 = 4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)); private readonly float gwspiky = -30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)); - - public ParticleNode() + + public ParticleNode(bool assertionEnabled) { + AssertionEnabled = assertionEnabled; + particles = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopyDst, ParticlesCount); gridTable = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, ParticlesCount); gridIndicesTable = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, gridNum.X * gridNum.Y); @@ -114,6 +124,13 @@ public ParticleNode() particleVertex = Buffer.CreateStrict(BufferUsageType.Vertex, ParticlesCount * 4); particleIndex = Buffer.CreateStrict(BufferUsageType.Index, ParticlesCount * 6); + if (assertionEnabled) + { + particlesForAssertion = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, ParticlesCount); + gridTableForAssertion = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, ParticlesCount); + gridIndicesTableForAssertion = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, gridNum.X * gridNum.Y); + } + const string csCalcExternalForces = CommonCode + @" cbuffer CB : register(b0) { @@ -169,7 +186,7 @@ void main(uint3 dtid : SV_DispatchThreadID) } else { - gridTable[dtid.x].x = 0xffffffff; + gridTable[dtid.x].x = EMPTY_CELL; gridTable[dtid.x].y = dtid.x; } } @@ -218,13 +235,13 @@ void main(uint3 dtid : SV_DispatchThreadID) bitonicSortPipeline = ComputePipelineState.Create(); bitonicSortPipeline.Shader = Shader.CreateStrict("csBitonicSort", csBitonicSort, ShaderStage.Compute); - const string csClearGridIndices = @" + const string csClearGridIndices = CommonCode + @" RWStructuredBuffer gridIndicesTable : register(u0); [numthreads(1, 1, 1)] void main(uint3 dtid : SV_DispatchThreadID) { - gridIndicesTable[dtid.x] = int2(0xffffffff, 0xffffffff); + gridIndicesTable[dtid.x] = int2(EMPTY_CELL, EMPTY_CELL); } "; @@ -296,7 +313,7 @@ float2 CalcDensityCellPB(int2 gridPos, int i, float2 pos0) float h2 = EffectiveRadius.x * EffectiveRadius.x; float dens = 0.0f; - if(startIndex != 0xffffffff){ // セルが空でないかのチェック + if(startIndex != EMPTY_CELL){ // セルが空でないかのチェック // セル内のパーティクルで反復 int endIndex = gridIndicesTable[gridHash].y; for(int j = startIndex; j < endIndex; ++j){ @@ -325,7 +342,7 @@ float CalcScalingFactorCell(int2 gridPos, int i, float2 pos0) float r0 = Density.x; float sd = 0.0f; float2 sd2 = float2(0.0f, 0.0f); - if(startIndex != 0xffffffff){ // セルが空でないかのチェック + if(startIndex != EMPTY_CELL){ // セルが空でないかのチェック // セル内のパーティクルで反復 uint endIndex = gridIndicesTable[gridHash].y; for(uint j = startIndex; j < endIndex; ++j){ @@ -427,7 +444,7 @@ float2 CalcPositionCorrectionCell(int2 gridPos, int i, float2 pos0) float si = particles[i].Pscl; - if(startIndex != 0xffffffff){ // セルが空でないかのチェック + if(startIndex != EMPTY_CELL){ // セルが空でないかのチェック // セル内のパーティクルで反復 uint endIndex = gridIndicesTable[gridHash].y; for(uint j = startIndex; j < endIndex; ++j){ @@ -677,6 +694,12 @@ protected override void OnUpdate() for (int l = 0; l < IterationCount; l++) { + if (AssertionEnabled) + { + // TODO: これを入れるとなぜか動く + commandList.CopyBuffer(particles, particlesForAssertion); + } + commandList.ComputePipelineState = buildGridPipeline; commandList.SetComputeBuffer(particles, 0); commandList.SetComputeBuffer(gridTable, 1); @@ -702,6 +725,26 @@ protected override void OnUpdate() } } + if (AssertionEnabled) + { + // commandList.CopyBuffer(gridTable, gridTableForAssertion); + + //using var c = gridTableForAssertion.LockStrict(); + //var prev = c.Span[0]; + //for (int i = 1; i < c.Span.Length; i++) + //{ + // var current = c.Span[i]; + + // if (current.X == 0x7fffffff) break; + + // if (prev.X > current.X) + // { + // throw new Exception($"The result of bitonic sort is invalid at index {i}. prev:{prev} current:{current}"); + // } + // prev = current; + //} + } + commandList.ComputePipelineState = clearGridIndicesPipeline; commandList.SetComputeBuffer(gridIndicesTable, 0); commandList.Dispatch(gridIndicesTable.Count, 1, 1); @@ -711,6 +754,31 @@ protected override void OnUpdate() commandList.SetComputeBuffer(gridIndicesTable, 1); commandList.Dispatch(gridTable.Count, 1, 1); + if (AssertionEnabled) + { + //commandList.CopyBuffer(gridIndicesTable, gridIndicesTableForAssertion); + + //using var cp = particlesForAssertion.LockStrict(); + //using var ci = gridIndicesTableForAssertion.LockStrict(); + //using var ct = gridTableForAssertion.LockStrict(); + + //for (int i = 0; i < ci.Span.Length; i++) + //{ + // var current = ci.Span[i]; + // if (current.X == 0x7fffffff) continue; + + // for (var j = current.X; j < current.Y; j++) + // { + // var particle = cp.Span[ct.Span[j].Y]; + // var cell = (particle.Next / new Vector2F(gridSize.X, gridSize.Y)).To2I(); + // var hash = cell.X + cell.Y * gridNum.X; + // if (hash != i) + // { + // throw new Exception($"Assert hash '{hash}' is equal to the cell index '{i}'."); + // } + // } + //} + } commandList.ComputePipelineState = calcScalingFactorPipeline; commandList.SetComputeBuffer(particles, 0); @@ -780,7 +848,7 @@ public static void Main(string[] args) }; Engine.AddNode(camera2); - var particlesNode = new ParticleNode + var particlesNode = new ParticleNode(true) { CameraGroup = 1, IterationCount = 4, From d23342288dea524eba0ae71e83827514bd3ae0e8 Mon Sep 17 00:00:00 2001 From: wraikny Date: Fri, 7 Jul 2023 22:33:58 +0900 Subject: [PATCH 48/49] remove asserting --- Samples/ComputeShader/Fluid.cs | 74 ++++------------------------------ 1 file changed, 7 insertions(+), 67 deletions(-) diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index c137e380..0ef67b1a 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -28,8 +28,6 @@ class ParticleNode : CommandDrawnNode public int IterationCount { get; set; } = 1; - public bool AssertionEnabled { get; private init; } - private const float EffectiveRadius = 6; private const float ParticleRadius = 2; private const int ParticlesCount = 2048; @@ -44,9 +42,7 @@ class ParticleNode : CommandDrawnNode private readonly Buffer gridTable; private readonly Buffer gridIndicesTable; - private readonly Buffer particlesForAssertion; - private readonly Buffer gridTableForAssertion; - private readonly Buffer gridIndicesTableForAssertion; + private readonly Buffer particlesToBeCopied; private readonly ComputePipelineState calcExternalPipeline; private readonly ComputePipelineState buildGridPipeline; @@ -110,10 +106,8 @@ int2 GetGridPos(float2 pos, float2 gridSize) private readonly float wpoly6 = 4f / (MathF.PI * MathF.Pow(EffectiveRadius, 8f)); private readonly float gwspiky = -30f / (MathF.PI * MathF.Pow(EffectiveRadius, 5f)); - public ParticleNode(bool assertionEnabled) + public ParticleNode() { - AssertionEnabled = assertionEnabled; - particles = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopyDst, ParticlesCount); gridTable = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, ParticlesCount); gridIndicesTable = Buffer.CreateStrict(BufferUsageType.Compute | BufferUsageType.CopySrc, gridNum.X * gridNum.Y); @@ -124,13 +118,8 @@ public ParticleNode(bool assertionEnabled) particleVertex = Buffer.CreateStrict(BufferUsageType.Vertex, ParticlesCount * 4); particleIndex = Buffer.CreateStrict(BufferUsageType.Index, ParticlesCount * 6); - if (assertionEnabled) - { - particlesForAssertion = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, ParticlesCount); - gridTableForAssertion = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, ParticlesCount); - gridIndicesTableForAssertion = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, gridNum.X * gridNum.Y); - } - + particlesToBeCopied = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, ParticlesCount); + const string csCalcExternalForces = CommonCode + @" cbuffer CB : register(b0) { @@ -694,11 +683,8 @@ protected override void OnUpdate() for (int l = 0; l < IterationCount; l++) { - if (AssertionEnabled) - { - // TODO: これを入れるとなぜか動く - commandList.CopyBuffer(particles, particlesForAssertion); - } + // TODO: DirectX12ではこれを入れるとdispatchの完了を待つので正しく動く + commandList.CopyBuffer(particles, particlesToBeCopied); commandList.ComputePipelineState = buildGridPipeline; commandList.SetComputeBuffer(particles, 0); @@ -725,26 +711,6 @@ protected override void OnUpdate() } } - if (AssertionEnabled) - { - // commandList.CopyBuffer(gridTable, gridTableForAssertion); - - //using var c = gridTableForAssertion.LockStrict(); - //var prev = c.Span[0]; - //for (int i = 1; i < c.Span.Length; i++) - //{ - // var current = c.Span[i]; - - // if (current.X == 0x7fffffff) break; - - // if (prev.X > current.X) - // { - // throw new Exception($"The result of bitonic sort is invalid at index {i}. prev:{prev} current:{current}"); - // } - // prev = current; - //} - } - commandList.ComputePipelineState = clearGridIndicesPipeline; commandList.SetComputeBuffer(gridIndicesTable, 0); commandList.Dispatch(gridIndicesTable.Count, 1, 1); @@ -754,32 +720,6 @@ protected override void OnUpdate() commandList.SetComputeBuffer(gridIndicesTable, 1); commandList.Dispatch(gridTable.Count, 1, 1); - if (AssertionEnabled) - { - //commandList.CopyBuffer(gridIndicesTable, gridIndicesTableForAssertion); - - //using var cp = particlesForAssertion.LockStrict(); - //using var ci = gridIndicesTableForAssertion.LockStrict(); - //using var ct = gridTableForAssertion.LockStrict(); - - //for (int i = 0; i < ci.Span.Length; i++) - //{ - // var current = ci.Span[i]; - // if (current.X == 0x7fffffff) continue; - - // for (var j = current.X; j < current.Y; j++) - // { - // var particle = cp.Span[ct.Span[j].Y]; - // var cell = (particle.Next / new Vector2F(gridSize.X, gridSize.Y)).To2I(); - // var hash = cell.X + cell.Y * gridNum.X; - // if (hash != i) - // { - // throw new Exception($"Assert hash '{hash}' is equal to the cell index '{i}'."); - // } - // } - //} - } - commandList.ComputePipelineState = calcScalingFactorPipeline; commandList.SetComputeBuffer(particles, 0); commandList.SetComputeBuffer(gridTable, 1); @@ -848,7 +788,7 @@ public static void Main(string[] args) }; Engine.AddNode(camera2); - var particlesNode = new ParticleNode(true) + var particlesNode = new ParticleNode() { CameraGroup = 1, IterationCount = 4, From 5692b34a5edaec98f3d90384010280de116d5d08 Mon Sep 17 00:00:00 2001 From: wraikny Date: Fri, 7 Jul 2023 23:55:41 +0900 Subject: [PATCH 49/49] update buffer lock --- Engine/CorePartial/Buffer.cs | 97 +++++++++++++++++++++++++++---- Engine/CorePartial/CommandList.cs | 3 + Samples/ComputeShader/Fluid.cs | 14 ++++- Test/ComputeShader.cs | 40 ++++++++----- 4 files changed, 124 insertions(+), 30 deletions(-) diff --git a/Engine/CorePartial/Buffer.cs b/Engine/CorePartial/Buffer.cs index cf3881ed..888059de 100644 --- a/Engine/CorePartial/Buffer.cs +++ b/Engine/CorePartial/Buffer.cs @@ -73,28 +73,67 @@ public static Buffer CreateStrict(BufferUsageType usage, int count) /// /// バッファのデータへアクセスする /// - /// バッファのデータを持つ - public Container Lock() + /// バッファのデータを持つ + public ReadContainer ReadLock() { unsafe { var lockPtr = InternalBuffer.Lock(); - if (lockPtr == IntPtr.Zero) + + if (lockPtr == IntPtr.Zero + || ((InternalBuffer.BufferUsage & BufferUsageType.MapRead) == 0 + && (InternalBuffer.BufferUsage & BufferUsageType.MapWrite) == 0) + ) + { + return new ReadContainer(null, null); + } + return new ReadContainer(this, new ReadOnlySpan(lockPtr.ToPointer(), Count)); + } + } + + /// + /// バッファのデータへアクセスする。 + /// + /// バッファのデータを持つ + /// バッファのロックに失敗 + public ReadContainer ReadLockStrict() + { + var container = ReadLock(); + + if (container.Span == null) + { + throw new InvalidOperationException("バッファのロックに失敗しました。"); + } + + return container; + } + + /// + /// バッファのデータへアクセスする + /// + /// バッファのデータを持つ + public WriteContainer WriteLock() + { + unsafe + { + var lockPtr = InternalBuffer.Lock(); + + if (lockPtr == IntPtr.Zero || ((InternalBuffer.BufferUsage & BufferUsageType.MapWrite) == 0)) { - return new Container(null, null); + return new WriteContainer(null, null); } - return new Container(this, new Span(lockPtr.ToPointer(), Count)); + return new WriteContainer(this, new Span(lockPtr.ToPointer(), Count)); } } /// /// バッファのデータへアクセスする。 /// - /// バッファのデータを持つ + /// バッファのデータを持つ /// バッファのロックに失敗 - public Container LockStrict() + public WriteContainer WriteLockStrict() { - var container = Lock(); + var container = WriteLock(); if (container.Span == null) { @@ -105,10 +144,41 @@ public Container LockStrict() } /// - /// バッファへの書き込みを開始します + /// バッファへ書き込みを行うための情報を保持する構造体。 /// /// - public ref struct Container + public ref struct ReadContainer + { + private readonly Buffer buffer; + + /// + /// バッファのデータ + /// + /// + public ReadOnlySpan Span { get; private init; } + + /// + /// がnullではない。 + /// + public bool IsValid => Span != null; + + internal ReadContainer(Buffer buffer, ReadOnlySpan span) + { + this.buffer = buffer; + Span = span; + } + + /// + /// バッファのアンロックを行う + /// + public void Dispose() => buffer?.InternalBuffer.Unlock(); + } + + /// + /// バッファへ書き込みを行うための情報を保持する構造体。 + /// + /// + public ref struct WriteContainer { private readonly Buffer buffer; @@ -118,7 +188,12 @@ public ref struct Container /// public Span Span { get; private init; } - internal Container(Buffer buffer, Span span) + /// + /// がnullではない。 + /// + public bool IsValid => Span != null; + + internal WriteContainer(Buffer buffer, Span span) { this.buffer = buffer; Span = span; diff --git a/Engine/CorePartial/CommandList.cs b/Engine/CorePartial/CommandList.cs index f6fd10f0..30cc3448 100644 --- a/Engine/CorePartial/CommandList.cs +++ b/Engine/CorePartial/CommandList.cs @@ -7,6 +7,8 @@ namespace Altseed2 { public partial class CommandList { + private const int TextureSlotMax = 8; + /// /// GPUのデータをコピーする /// @@ -51,6 +53,7 @@ public void SetVertexBuffer(Buffer vertexBuffer, int offset = 0) where T : /// public void SetComputeBuffer(Buffer computeBuffer, int unit, ShaderStage shaderStage = ShaderStage.Compute) where T : struct { + if (unit >= TextureSlotMax) throw new ArgumentOutOfRangeException(nameof(unit), $""); int stride = Marshal.SizeOf(); SetComputeBuffer(computeBuffer.InternalBuffer, stride, unit, shaderStage); } diff --git a/Samples/ComputeShader/Fluid.cs b/Samples/ComputeShader/Fluid.cs index 0ef67b1a..c4b17658 100644 --- a/Samples/ComputeShader/Fluid.cs +++ b/Samples/ComputeShader/Fluid.cs @@ -624,7 +624,7 @@ float4 main(PS_INPUT input) : SV_TARGET protected override void OnAdded() { var particlesInput = Buffer.CreateStrict(BufferUsageType.MapWrite | BufferUsageType.CopySrc, ParticlesCount); - using (var data = particlesInput.LockStrict()) + using (var data = particlesInput.WriteLockStrict()) { int ind = 0; for (int y = 0; y < 300 / (ParticleRadius * 2); y++) @@ -680,16 +680,18 @@ protected override void OnUpdate() commandList.ComputePipelineState = calcExternalPipeline; commandList.SetComputeBuffer(particles, 0); commandList.Dispatch(ParticlesCount, 1, 1); + commandList.ResetComputeBuffers(); for (int l = 0; l < IterationCount; l++) { - // TODO: DirectX12ではこれを入れるとdispatchの完了を待つので正しく動く + // TODO: ResourceBarrierの関係でDirectX12ではこれを入れるとdispatchの完了を待つので正しく動く commandList.CopyBuffer(particles, particlesToBeCopied); commandList.ComputePipelineState = buildGridPipeline; commandList.SetComputeBuffer(particles, 0); commandList.SetComputeBuffer(gridTable, 1); commandList.Dispatch(gridTable.Count, 1, 1); + commandList.ResetComputeBuffers(); commandList.SetComputeBuffer(gridTable, 0); @@ -710,32 +712,38 @@ protected override void OnUpdate() inc /= 2; } } + commandList.ResetComputeBuffers(); commandList.ComputePipelineState = clearGridIndicesPipeline; commandList.SetComputeBuffer(gridIndicesTable, 0); commandList.Dispatch(gridIndicesTable.Count, 1, 1); + commandList.ResetComputeBuffers(); commandList.ComputePipelineState = buildGridIndicesPipeline; commandList.SetComputeBuffer(gridTable, 0); commandList.SetComputeBuffer(gridIndicesTable, 1); commandList.Dispatch(gridTable.Count, 1, 1); + commandList.ResetComputeBuffers(); commandList.ComputePipelineState = calcScalingFactorPipeline; commandList.SetComputeBuffer(particles, 0); commandList.SetComputeBuffer(gridTable, 1); commandList.SetComputeBuffer(gridIndicesTable, 2); commandList.Dispatch(ParticlesCount, 1, 1); + commandList.ResetComputeBuffers(); commandList.ComputePipelineState = calcCorrectPositionPipeline; commandList.SetComputeBuffer(particles, 0); commandList.SetComputeBuffer(gridTable, 1); commandList.SetComputeBuffer(gridIndicesTable, 2); commandList.Dispatch(ParticlesCount, 1, 1); + commandList.ResetComputeBuffers(); } commandList.ComputePipelineState = integratePipeline; commandList.SetComputeBuffer(particles, 0); commandList.Dispatch(ParticlesCount, 1, 1); + commandList.ResetComputeBuffers(); } commandList.ComputePipelineState = buildVBIB; @@ -743,6 +751,7 @@ protected override void OnUpdate() commandList.SetComputeBuffer(particleComputeVertex, 1); commandList.SetComputeBuffer(particleComputeIndex, 2); commandList.Dispatch(ParticlesCount, 1, 1); + commandList.ResetComputeBuffers(); commandList.EndComputePass(); @@ -769,7 +778,6 @@ public static void Main(string[] args) Engine.FramerateMode = FramerateMode.Variable; Engine.TargetFPS = 240; - var renderTexture = RenderTexture.Create(new Vector2I(300, 300), TextureFormat.R8G8B8A8_UNORM); var camera = new CameraNode() diff --git a/Test/ComputeShader.cs b/Test/ComputeShader.cs index 972b5d4c..10c77d60 100644 --- a/Test/ComputeShader.cs +++ b/Test/ComputeShader.cs @@ -36,7 +36,7 @@ public void Buffer() var input = Buffer.CreateStrict(BufferUsageType.MapWrite | BufferUsageType.CopySrc, dataSize); Assert.NotNull(input); - using (var data = input.LockStrict()) + using (var data = input.WriteLockStrict()) { for (int i = 0; i < input.Count; i++) { @@ -122,7 +122,7 @@ void main(uint3 dtid : SV_DispatchThreadID) var input = Buffer.CreateStrict(BufferUsageType.MapWrite | BufferUsageType.CopySrc, dataSize); Assert.NotNull(input); - using (var data = input.LockStrict()) + using (var data = input.WriteLockStrict()) { for (int i = 0; i < input.Count; i++) { @@ -155,15 +155,17 @@ void main(uint3 dtid : SV_DispatchThreadID) Engine.Graphics.CommandList.BeginComputePass(); + Engine.Graphics.CommandList.ComputePipelineState = pip1; Engine.Graphics.CommandList.SetComputeBuffer(inputBuffer, 0); Engine.Graphics.CommandList.SetComputeBuffer(write1, 1); - Engine.Graphics.CommandList.ComputePipelineState = pip1; Engine.Graphics.CommandList.Dispatch(dataSize, 1, 1); + Engine.Graphics.CommandList.ResetComputeBuffers(); + Engine.Graphics.CommandList.ComputePipelineState = pip2; Engine.Graphics.CommandList.SetComputeBuffer(inputBuffer, 0); Engine.Graphics.CommandList.SetComputeBuffer(write2, 1); - Engine.Graphics.CommandList.ComputePipelineState = pip2; Engine.Graphics.CommandList.Dispatch(dataSize, 1, 1); + Engine.Graphics.CommandList.ResetComputeBuffers(); Engine.Graphics.CommandList.EndComputePass(); @@ -174,10 +176,9 @@ void main(uint3 dtid : SV_DispatchThreadID) Engine.Graphics.ExecuteCommandList(); Engine.Graphics.WaitFinish(); - - using (var readValues = input.LockStrict()) - using (var write1Values = write1Dst.LockStrict()) - using (var write2Values = write2Dst.LockStrict()) + using (var readValues = input.ReadLockStrict()) + using (var write1Values = write1Dst.ReadLockStrict()) + using (var write2Values = write2Dst.ReadLockStrict()) { for (int i = 0; i < readValues.Span.Length; i++) { @@ -216,13 +217,13 @@ void main(uint3 dtid : SV_DispatchThreadID) var pipeline = ComputePipelineState.Create(); pipeline.Shader = Shader.CreateStrict("csBitonicSort", code, ShaderStage.Compute); - const int Count = 4; + const int Count = 1; var input = Buffer.CreateStrict(BufferUsageType.CopySrc | BufferUsageType.MapWrite, Count); var computeBuffer = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.Compute, Count); var output1 = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, Count); var output2 = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, Count); - using (var c = input.LockStrict()) + using (var c = input.WriteLockStrict()) { for (int i = 0; i < Count; i++) { @@ -235,16 +236,20 @@ void main(uint3 dtid : SV_DispatchThreadID) Engine.Graphics.CommandList.BeginComputePass(); - Engine.Graphics.CommandList.SetComputeBuffer(computeBuffer, 0); pipeline.SetVector4F("Value", new Vector4F(1, 0, 0, 0)); Engine.Graphics.CommandList.ComputePipelineState = pipeline; + Engine.Graphics.CommandList.SetComputeBuffer(computeBuffer, 0); Engine.Graphics.CommandList.Dispatch(computeBuffer.Count, 1, 1); + Engine.Graphics.CommandList.ResetComputeBuffers(); + Engine.Graphics.CommandList.CopyBuffer(computeBuffer, output1); - Engine.Graphics.CommandList.SetComputeBuffer(computeBuffer, 0); pipeline.SetVector4F("Value", new Vector4F(2, 0, 0, 0)); Engine.Graphics.CommandList.ComputePipelineState = pipeline; + Engine.Graphics.CommandList.SetComputeBuffer(computeBuffer, 0); Engine.Graphics.CommandList.Dispatch(computeBuffer.Count, 1, 1); + Engine.Graphics.CommandList.ResetComputeBuffers(); + Engine.Graphics.CommandList.CopyBuffer(computeBuffer, output2); Engine.Graphics.CommandList.EndComputePass(); @@ -253,8 +258,8 @@ void main(uint3 dtid : SV_DispatchThreadID) Engine.Graphics.ExecuteCommandList(); Engine.Graphics.WaitFinish(); - using (var c1 = output1.LockStrict()) - using (var c2 = output2.LockStrict()) + using (var c1 = output1.ReadLockStrict()) + using (var c2 = output2.ReadLockStrict()) { for (int i = 0; i < Count - 1; i++) { @@ -328,7 +333,7 @@ void main(uint3 dtid : SV_DispatchThreadID) var computeBuffer = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.Compute, Count); var output = Buffer.CreateStrict(BufferUsageType.CopyDst | BufferUsageType.MapRead, Count); - using (var c = input.LockStrict()) + using (var c = input.WriteLockStrict()) { var rand = new Random(); @@ -358,6 +363,9 @@ void main(uint3 dtid : SV_DispatchThreadID) inc /= 2; } } + + Engine.Graphics.CommandList.ResetComputeBuffers(); + Engine.Graphics.CommandList.EndComputePass(); Engine.Graphics.CommandList.CopyBuffer(computeBuffer, output); @@ -366,7 +374,7 @@ void main(uint3 dtid : SV_DispatchThreadID) Engine.Graphics.ExecuteCommandList(); Engine.Graphics.WaitFinish(); - using (var c = output.LockStrict()) + using (var c = output.ReadLockStrict()) { var prev = c.Span[0].Key; for (int i = 0; i < Count; i++)