void glControl1_Load(object sender, EventArgs e) { Scene = new Graphics.Scene(); Application.Idle += HandleApplicationIdle; Scene.OnFrameReady += Scene_OnFrameReady; glControl1.Resize += glControl1_Resize; glControl1.MouseDown += Scene.Camera.OnMouseDown; glControl1.MouseMove += Scene.Camera.OnMouseMove; glControl1.MouseUp += Scene.Camera.OnMouseUp; glControl1.MouseCaptureChanged += Scene.Camera.OnMouseCaptureChanged; var fileName = @"C:\Users\seed\Documents\Halo 2 Modding\mainmenu.map"; var directory = Path.GetDirectoryName(fileName); var maps = Directory.GetFiles(directory, "*.map", SearchOption.TopDirectoryOnly); var resourceMaps = maps.GroupBy( x => { return(Halo2.CheckMapType(x)); } ).Where(x => x.Key == MapType.MainMenu || x.Key == MapType.Shared || x.Key == MapType.SinglePlayerShared) .Select(g => g.First()).ToList(); resourceMaps.ForEach(x => Halo2.LoadResource(new MapStream(x))); Map = new MapStream(fileName); Scene.ObjectManager.Add(Map["hlmt", "masterchief"].Meta.Identifier, new ScenarioObject((ModelBlock)(Map["hlmt", "masterchief"].Deserialize()))); var shaderTags = Map.Tags.Where(x => x.Type.ToString() == "shad").ToArray(); listBox1.Items.AddRange(shaderTags); listBox1.DisplayMember = "Path"; // firing this method is meant to load the view-projection matrix values into // the shader uniforms, and initalizes the camera glControl1_Resize(this, new EventArgs()); }