/// <summary> /// Create an engine cvar to register /// </summary> /// <param name="name"></param> /// <param name="value"></param> /// <param name="flags"></param> internal EngineCVar(string name, string value, CVarFlags flags) { if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentException(nameof(name)); } if (value == null) { throw new ArgumentNullException(nameof(value)); } Data = (Native *)Marshal.AllocHGlobal(Marshal.SizeOf <Native>()).ToPointer(); Data->name = InterfaceUtils.AllocateUnmanagedString(name); Data->stringValue = InterfaceUtils.AllocateUnmanagedString(value); Data->flags = flags; IsOwned = true; }