internal void CreateEngineAndShow() { RenderFormSurface surface = new RenderFormSurface(this); CLogger logger = new CLogger("game.log", true, true, true); CInitializer initializer = new CInitializer(); initializer.Add("Viewport"); initializer.Add <IRenderSurface>(surface); initializer.Add(logger); CEngine.Create(initializer, true); CKlaxScriptRegistry dummy = CKlaxScriptRegistry.Instance; Input.SetReferenceHWND(Handle); Input.CursorVisibilitySetter = (arg) => { if (arg) { Cursor.Show(); } else { Cursor.Hide(); } }; Width = WindowWidth; Height = WindowHeight; CEngine.Instance.Dispatch(EEngineUpdatePriority.BeginFrame, () => { CEngine.Instance.LoadWorld(null, WorldLoadedCallback); }); Point size = new Point(ClientSize.Width, ClientSize.Height); System.Drawing.Point topLeft = PointToScreen(new System.Drawing.Point(0, 0)); IntPtr handlePtr = Handle; CRenderer renderer = CRenderer.Instance; CEngine.Instance.Dispatch(EEngineUpdatePriority.BeginFrame, () => { renderer.Resize(size.X, size.Y, topLeft.X, topLeft.Y, handlePtr); CEngine.Instance.CurrentWorld.StartPlayMode(); }); }
private void InitializeEngine() { CInitializer initializer = new CInitializer(); CLogger editorLogger = new CLogger("editor.log", true, true, true); initializer.Add(editorLogger); CEngine.Create(initializer, true); Input.CursorVisibilitySetter = (arg) => { Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)(() => { if (arg) { System.Windows.Forms.Cursor.Show(); } else { System.Windows.Forms.Cursor.Hide(); } })); }; }