public void CheckError() { GLError err = this._gl.GetError(); if (err != GLError.NoError) { global::Uno.Diagnostics.Debug.Log(("GL error (" + (object)err) + ")", global::Uno.Diagnostics.DebugMessageType.Error); global::System.Diagnostics.StackFrame[] frames = new global::System.Diagnostics.StackTrace().GetFrames(); for (int i = 3; i < frames.Length; i++) { global::System.Diagnostics.StackFrame f = frames[i]; if (f.GetMethod().Name == "Main") { break; } global::Uno.Diagnostics.Debug.Log(((("in " + f.GetMethod().DeclaringType) + ".") + f.GetMethod().Name) + "()", global::Uno.Diagnostics.DebugMessageType.Debug); } } }
protected override void Load() { base.Load(); LogOpenGLDrivers(); //if (AL.Efx == null) // throw new Exception("Sound card does not support OpenAL Efx!"); AL.DistanceModel(ALDistanceModel.LinearDistance); // 1 meter = 1 block Camera.Active.AudioListener.EfxMetersPerUnit = 1f / Block.CUBE_SIZE; LoadFromConfig(); DashCMD.SetCVar("r_vsync", GetVSync()); DashCMD.SetCVar("r_targfps", TargetFrameRate); DashCMD.SetCVar("r_exp_shadows", false); GLError.Begin(); Renderer.AddRenderer(new VoxelRenderer(Renderer)); Renderer.AddRenderer(new EntityRenderer(Renderer)); Renderer.AddRenderer(new ChunkRenderer(Renderer)); Renderer.AddRenderer(new DebugRenderer(Renderer)); Light sun = new Light(new Vector3(2, 1, 2), LightType.Directional, 1.75f, new Color(255, 255, 255, 255)); Renderer.Lights.Add(sun); Renderer.Sun = sun; Camera.Active.SetMode(CameraMode.ArcBall); Camera.Active.SmoothCamera = true; StaticGui = new StaticGui(this, Renderer); SetupDefaultBinds(); AddScreen(new MainMenuScreen(this)); AddScreen(new SingleplayerScreen(this)); AddScreen(new MultiplayerScreen(this)); AddScreen(new NewText.NewTextScreen(this)); DashCMD.AddScreen(new DashCMDScreen("dt", "", true, (screen) => { screen.WriteLine("DeltaTime: {0}s", lastDeltaTime); }) { SleepTime = 30 }); #if DEBUG DashCMD.AddCommand("connect", "Connects to a server", "connect <ip:port>", (args) => { if (args.Length < 1) { DashCMD.ShowSyntax("connect"); return; } string[] parts = args[0].Split(':'); if (parts.Length != 2) { DashCMD.WriteError("Invalid arguments. (connect ip:port)"); return; } IPAddress ip; if (!NetHelper.TryParseIP(parts[0], out ip)) { DashCMD.WriteError("Invalid ip address"); return; } int port; if (!int.TryParse(parts[1], out port)) { DashCMD.WriteError("Invalid port."); return; } SwitchScreen("Multiplayer", new IPEndPoint(ip, port), "TestPlayer1"); }); #endif SwitchScreen("MainMenu"); }