protected override void OnPaint(PaintEventArgs pe) { //base.OnPaint(pe); // do self render m_gameTimer.Tick(); NGameEngine gameEngine = Program.g_GameEngine; if (gameEngine != null) { gameEngine.FrameTick(m_gameTimer.DeltaTime, m_viewport); } }
protected virtual void NRenderContorl_SizeChanged(object sender, EventArgs e) { if (m_HWND == 0) { return; } m_viewport.Width = (uint)this.ClientSize.Width; m_viewport.Height = (uint)this.ClientSize.Height; NEngineConfig cfg = NGameEngine.Instance().Config; m_viewport.Camera.SetPerspective(MathConst.PI / 4, ClientSize.Width, ClientSize.Height, 20, 500000); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); try { g_GameEngine = new NGameEngine(); g_GameEngine.InitCore(); form = GUITesterMainForm.App; //-- create engine config NEngineConfig engineCfg = new NEngineConfig(); engineCfg.RenderWndHandle = form.RenderPanelHandle; engineCfg.ClientWidth = Screen.PrimaryScreen.Bounds.Width; engineCfg.ClientHeight = Screen.PrimaryScreen.Bounds.Height; engineCfg.ColorBits = 32; engineCfg.FullScreen = false; engineCfg.EnableHDR = false; engineCfg.RenderClass = "nrenderer_d3d9"; engineCfg.FileSystemClass = "nstd_file_system"; engineCfg.EngineDataPkg = "engine_data"; // 设置File System根目录为包含EngineDataPkg的目录 //engineCfg.FileSystemRoot = "/work/nexus_engine"; DirectoryInfo DirInfo = new DirectoryInfo("."); DirectoryInfo DirIter = DirInfo.Parent; while (DirIter != null && engineCfg.FileSystemRoot == null) { foreach (DirectoryInfo SubDir in DirIter.GetDirectories()) { if (SubDir.Name == engineCfg.EngineDataPkg) { // 如果该目录的子目录中包含EngineDataPkg,则取该目录为FileSystemRoot engineCfg.FileSystemRoot = DirIter.FullName; break; } } DirIter = DirIter.Parent; } if (engineCfg.FileSystemRoot == null) { // 如果没有找到则设置缺省的目录 engineCfg.FileSystemRoot = DirInfo.Parent.FullName; } //-- g_GameEngine.InitModules(engineCfg); //-- create Viewport form.CreateViewport(); Application.Run(form); } catch (System.Exception e) { MessageBox.Show(e.Message, e.GetType().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Warning); } //-- close g_GameEngine.Close(); g_GameEngine.Dispose(); }