Skip to main content

If you have problems with this code, be sure to first check and make sure the namespace matches in all sections of your program.

The Program

Copy to clipboard
using System; using System.Collections.Generic; using System.Windows.Forms; using Mogre; namespace Tutorial06 { static class Program { [STAThread] static void Main() { OgreForm form = new OgreForm(); form.Init(); form.Go(); } } } == The Form == using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Mogre; namespace Tutorial06 { public partial class OgreForm : Form { Root mRoot; RenderWindow mWindow; public OgreForm() { InitializeComponent(); this.Size = new Size(800, 600); Disposed += new EventHandler(OgreForm_Disposed); Resize += new EventHandler(OgreForm_Resize); } void OgreForm_Resize(object sender, EventArgs e) { mWindow.WindowMovedOrResized(); } void OgreForm_Disposed(object sender, EventArgs e) { mRoot.Dispose(); mRoot = null; } public void Go() { Show(); while (mRoot != null && mRoot.RenderOneFrame()) Application.DoEvents(); } public void Init() { // Create root object mRoot = new Root(); // Define Resources ConfigFile cf = new ConfigFile(); cf.Load("resources.cfg", "\t:=", true); ConfigFile.SectionIterator seci = cf.GetSectionIterator(); String secName, typeName, archName; while (seci.MoveNext()) { secName = seci.CurrentKey; ConfigFile.SettingsMultiMap settings = seci.Current; foreach (KeyValuePair<string, string> pair in settings) { typeName = pair.Key; archName = pair.Value; ResourceGroupManager.Singleton.AddResourceLocation(archName, typeName, secName); } } // Setup RenderSystem RenderSystem rs = mRoot.GetRenderSystemByName("Direct3D9 Rendering Subsystem"); // or use "OpenGL Rendering Subsystem" mRoot.RenderSystem = rs; rs.SetConfigOption("Full Screen", "No"); rs.SetConfigOption("Video Mode", "800 x 600 @ 32-bit colour"); // Create Render Window mRoot.Initialise(false, "Main Ogre Window"); NameValuePairList misc = new NameValuePairList(); misc["externalWindowHandle"] = Handle.ToString(); mWindow = mRoot.CreateRenderWindow("Main RenderWindow", 800, 600, false, misc); // Init resources TextureManager.Singleton.DefaultNumMipmaps = 5; ResourceGroupManager.Singleton.InitialiseAllResourceGroups(); // Create a Simple Scene SceneManager mgr = mRoot.CreateSceneManager(SceneType.ST_GENERIC); Camera cam = mgr.CreateCamera("Camera"); cam.AutoAspectRatio = true; mWindow.AddViewport(cam); Entity ent = mgr.CreateEntity("ninja", "ninja.mesh"); mgr.RootSceneNode.CreateChildSceneNode().AttachObject(ent); cam.Position = new Vector3(0, 200, -400); cam.LookAt(ent.BoundingBox.Center); } } }


Alias: Mogre Basic Tutorial 6 Source (old page name)