using System; using System.Runtime.InteropServices; using Decal.Interop.Render; namespace Decal.Adapter.Wrappers; [CLSCompliant(true)] public class Hud : HudRenderScalable { private HUDView internalView; internal HUDView Underlying => internalView; public bool Enabled { get { return internalView.Enabled; } set { internalView.Enabled = value; } } public int Id => internalView.ID; /// /// Angle in Radians for rotation of the HUD /// public float Angle { get { return internalView.Angle; } set { internalView.Angle = value; } } /// /// Alpha for entire hud /// public int Alpha { get { return internalView.Alpha; } set { internalView.Alpha = value; } } internal event EventHandler Disposing; internal Hud(HUDView view) : base(view) { internalView = view; } public void SetBackground(Background background) { if (background != null) { internalView.SetBackground(background.Underlying); return; } throw new ArgumentNullException("background"); } protected override void Dispose(bool disposing) { try { if (disposing && this.Disposing != null) { this.Disposing(this, new EventArgs()); } Marshal.ReleaseComObject(internalView); internalView = null; } finally { base.Dispose(disposing); } } }