OGRE Wiki
Support and community documentation for Ogre3D
Ogre Forums
ogre3d.org
Log in
Username:
Password:
CapsLock is on.
Remember me (for 1 year)
Log in
Home
Tutorials
Tutorials Home
Basic Tutorials
Intermediate Tutorials
Mad Marx Tutorials
In Depth Tutorials
Older Tutorials
External Tutorials
Cookbook
Cookbook Home
CodeBank
Snippets
Experiences
Ogre Articles
Libraries
Libraries Home
Alternative Languages
Assembling A Toolset
Development Tools
OGRE Libraries
List of Libraries
Tools
Tools Home
DCC Tools
DCC Tutorials
DCC Articles
DCC Resources
Assembling a production pipeline
Development
Development Home
Roadmap
Building Ogre
Installing the Ogre SDK
Setting Up An Application
Ogre Wiki Tutorial Framework
Frequently Asked Questions
Google Summer Of Code
Help Requested
Ogre Core Articles
Community
Community Home
Projects Using Ogre
Recommended Reading
Contractors
Wiki
Immediate Wiki Tasklist
Wiki Ideas
Wiki Guidelines
Article Writing Guidelines
Wiki Styles
Wiki Page Tracker
Ogre Wiki Help
Ogre Wiki Help Overview
Help - Basic Syntax
Help - Images
Help - Pages and Structures
Help - Wiki Plugins
Toolbox
Freetags
Categories
List Pages
Structures
Trackers
Statistics
Rankings
List Galleries
Ogre Lexicon
Comments
History: Mogre MyGUI wrapper
View page
Source of version: 23
(current)
{maketoc} {img src="img/wiki_up/MyGUI_logo.png" alt="MyGUI_logo.png" align="right"} With the Mogre MyGUI wrapper it's possible to use the ((MyGUI)) system by ((MOGRE|Mogre)). {QUOTE(replyto="mstoyke")}I'm currently using a slightly extended version of MyGUI with their C++/CLI wrapper. It's a __very good GUI system__ and the __.NET bindings work very well__. You can even use their __layout editor__ and use the GUI layouts easily. I'm too busy right now to write detailed instructions on how to get it work but I can offer to post a patch in unified diff format with my changes and some lines of example code.{QUOTE} More information you find at the MyGUI website [http://mygui.info|mygui.info]. Ogre related information you find in the [http://www.ogre3d.org/addonforums/viewforum.php?f=17|MyGUI forum] (section of the Ogre forum). Related to the Mogre wrapper there is a special forum topic: [http://www.ogre3d.org/addonforums/viewtopic.php?f=17&t=9529|Managed MyGUI] %info% For Mogre related questions you can open a thread in the [http://www.ogre3d.org/addonforums/viewforum.php?f=8|Mogre forum]. Additionally you could invite user [http://www.ogre3d.org/addonforums/memberlist.php?mode=viewprofile&u=12833|mstoyke] to answer. (Please don't discuss by message - do it in public so that it helps other people, too.) !Videos {YOUTUBE(movie="http://www.youtube.com/watch?v=A37iIil3T68&feature=player_embedded",width="320",height="240",allowFullScreen="y")}{YOUTUBE} {YOUTUBE(movie="http://www.youtube.com/watch?v=J-FeieAFLGM&feature=player_embedded",width="320",height="240",allowFullScreen="y")}{YOUTUBE} %%% !Download The source code you can get in the [http://mygui.info/#ui-tabs-17|download area] of the MyGUI website. The Mogre/.NET wrapper is part of the MyGUI project and can be found in the [http://sourceforge.net/projects/my-gui/|MyGUI repository]. Additionally look to the [http://sourceforge.net/projects/my-gui/files/|binary download section]. It contains the Mogre wrapper, dependencies, demos and the layout editor. I also packed a workable MyGUI wrapper for MOGRE 1.7.1, here is the download link: [https://www.mediafire.com/file/6x87xd70s85imp7/MyGUI_Wrapper_for_MOGRE_1.7.1.7z/file|MediaFire download] or you can extract the full MOGRE libraries (including Physx, MyGUI) from my Billardgames: [https://github.com/cookgreen/BilliardGame|Github Repository] !Usage {QUOTE(replyto="Tubulii")} I am using MyGui in my mogre app successfully. It wasn't hard, anything you need is [http://sourceforge.net/projects/my-gui/files/Managed%20MyGUI%20for%20Mogre/MyGUI%20for%20Mogre%201.6.5/Managed_for_MogreSDK_1.6.zip/download|here] and [http://sourceforge.net/projects/my-gui/files/Managed%20MyGUI%20for%20Mogre/MyGUI%20for%20Mogre%201.6.5/MogreFramework_MyGUI_3.0.zip/download|here](all for Mogre 1.6.5.) The second one is optional, but there is one file you need: __export.vs__ . This codefile contains some functions to init and destroy MyGui. I never tried to use the MOGREframework in that package, I used the one in the Wiki. Some classes aren't wrapped, but all basic things seams to work fine. (Quoted from [http://www.ogre3d.org/addonforums/viewtopic.php?p=78293#p78293|this forum post] in January 2010) {QUOTE} First of all, we need to create a class called "Export" which will import some necessary functions from "MyGUI.OgrePlatform.Export.dll" {CODE(theme="C#")} public class Export { #region Export [DllImport("MyGUI.OgrePlatform.Export.dll", CallingConvention = CallingConvention.Cdecl)] private static extern void Export_CreateGUI(); [DllImport("MyGUI.OgrePlatform.Export.dll", CallingConvention = CallingConvention.Cdecl)] private static extern void Export_DestroyGUI(); [DllImport("MyGUI.OgrePlatform.Export.dll", CallingConvention = CallingConvention.Cdecl)] private static extern void Export_SetRenderWindow([MarshalAs(UnmanagedType.LPStr)] string _name); [DllImport("MyGUI.OgrePlatform.Export.dll", CallingConvention = CallingConvention.Cdecl)] private static extern void Export_SetSceneManager([MarshalAs(UnmanagedType.LPStr)] string _name); [DllImport("MyGUI.OgrePlatform.Export.dll", CallingConvention = CallingConvention.Cdecl)] private static extern void Export_SetActiveViewport(int _index); #endregion public static void CreateGUI() { Export_CreateGUI(); } public static void DestroyGUI() { Export_DestroyGUI(); } public static void SetRenderWindow(RenderWindow _renderWindow) { Export_SetRenderWindow(_renderWindow.Name); } public static void SetSceneManager(SceneManager _sceneManager) { Export_SetSceneManager(_sceneManager.Name); } public static void SetActiveViewport(int _index) { Export_SetActiveViewport(_index); } } {CODE} and then, in your ui creation code part, we need to create the GUI firstlty: {CODE(theme="C#")} Export.CreateGUI(); Export.SetRenderWindow(YourRenderWindowObject); Export.SetSceneManager(YourSceneManager); Export.SetActiveViewport(Viewport ID, set 0 to be a first viewport); {CODE} After creating the GUI, you can create any widgets as you want When you want to destroy the GUI, make sure you use the following code: {CODE(theme="C#")} Export.DestroyGUI(); {CODE} !Wrapper details The MyGUI repository has the directory [https://my-gui.svn.sourceforge.net/svnroot/my-gui/trunk/Wrappers|Wrappers]. This contains several subdirectories. For some we know the meaning: * __MyGUI.Export (C++):__ . . . . Exports all needed functions of the native MyGui * __MyGUI.Sharp:__ . . . . A C# Wrapper of MyGui (needs file ''MyGui.export'') ** The depencies are ''MyGUIEngine.dll'' and ''MyGui.export.dll'' (and .NET) ** For Mogre is only an indirect depency: You need Mogre for creating ''MyGui.export.dll'' * __MyGUI.OgrePlatform.Export(C++):__ . . . . Exports all needed functions of the native MyGui * __MyGUI.Managed:__ . . . . A CLI/C++ Wrapper (needs ''MyGUI.OgrePlatform.Export'') Note: ''MyGui.managed'' and ''MyGui.sharp'' seems to be equal. Maybe the C# one is a port of the managed one and not a build from scratch. The original post from Altren: {QUOTE(replyto=Altren)}Hello from MyGUI project! We have implemented generator wrappers for the library. Generator parsed data from doxygen, and with the help of templates, performs the generation of wrappers. At the moment there are templates for C# and Managed C++. It is also possible to setup generator for other languages if the need arises. 1. C# - MyGUI.Export.dll (exported functions) + MyGUI.Sharp.dll (wrapper using P/Invoke) 2. Managed C++ - MyGUI.Managed.dll (wrapper using CLR) [...]{QUOTE} !Compilation 1. Download MyGUI and compile it with same Ogre version and with same visual studio as Mogre was built with (also MYGUI_BUILD_WRAPPER option in CMake should be enabled). See also http://www.ogre3d.org/tikiwiki/MyGUI+Compiling 2. Compile MyGUI.OgrePlatform.Export(_d).dll 3. Generate Managed wrapper (to do this run WrapperGenerator that comes with MyGUI -> (in app select one by one)Generate Solution, Doxygen, Managed). 4. Compile MyGUI.Managed.dll in newly generated solution. 5. In Mogre add MyGUI.Managed.dll as referecnce 6. Use MyGUI initialisation from MyGUI.OgrePlatform.Export(_d).dll Whole post: http://www.ogre3d.org/addonforums/viewtopic.php?f=17&t=9529 Note: It seems that with .Net 4 the wrapper does not work anymore. The OgrePlattform.Export.dll ist not found (although its in the same directory). An workaround would be to merge it with the main wrapper project and so totally avoid all P/Invoke calls. !See also __MyGUI related:__ * [http://mygui.info|mygui.info] - official Website * [http://mygui.info/docs|API reference] - documentation of MyGUI interface * [http://www.ogre3d.org/addonforums/viewforum.php?f=17|MyGUI forum] section - (in Ogre add-ons forum) ** [http://www.ogre3d.org/addonforums/viewtopic.php?f=17&t=9529|Managed MyGUI] - Forum topic for the Mogre wrapper * [http://sourceforge.net/projects/my-gui/|Repository] - SVN with source code ** [https://my-gui.svn.sourceforge.net/svnroot/my-gui/trunk/Wrappers/|Mogre wrapper] (part of the same repository) ** [http://sourceforge.net/projects/my-gui/files/Managed%20MyGUI%20for%20Mogre/|Managed MyGUI for Mogre] (pre-compiled binary) ** [http://sourceforge.net/projects/my-gui/files/MyGUI%20binary%20demos/|Demos] (pre-compiled) ** [http://sourceforge.net/projects/my-gui/files/MyGUI%20dependencies/|Dependencies] ** [http://sourceforge.net/projects/my-gui/files/LayoutEditor/|Layout editor] * ((MyGUI)) - much Ogre related stuff * MyGUI 3.0 for MogreSDK 1.6.5 ** [https://sourceforge.net/projects/my-gui/files/Managed%20MyGUI%20for%20Mogre/MyGUI%20for%20Mogre%201.6.5/Managed_for_MogreSDK_1.6.zip/download|binary] (9 MB) ** [https://sourceforge.net/projects/my-gui/files/Managed%20MyGUI%20for%20Mogre/MyGUI%20for%20Mogre%201.6.5/MogreFramework_MyGUI_3.0.zip/download|source code] (27 KB) __Common:__ * ((-GUI|GUI)) - an overview of GUI systems * ((Comparison of GUIs)) * ((Miyagi)) - an alternative GUI system for ((Mogre)) * ((Hikari Wrapper for MOGRE)) - embed Adobe Flash into Mogre (e.g. GUI menus) * ((Easy Debug Text for MOGRE)) - for plain text display * ((Prototype steps of GUI development)) * ((MQuickGUI)) - an outdated C# port of ((QuickGUI))
Search by Tags
Search Wiki by Freetags
Latest Changes
Minimal Ogre Collision
Artifex Terra
OpenMB
Advanced Mogre Framework
MogreSocks
Critter AI
Mogre Add-ons
MOGRE
Mogre MyGUI wrapper
MOGRE Editable Terrain Manager
...more
Search
Find
Advanced
Search Help
Online Users
34 online users