Page 1 of 3

Current .NET compatibility

Posted: Sat May 07, 2005 9:44 am
by Walter
I've been involved in developing with Irrlicht since early last year and our developing team is completly focused on the future of developing. This means we already use .NET Developing for several months and we just cant wait for Irrlicht to have full compatibility with the future of programming: the framework.

Now what is the current compatibility with .NET (VB)?
There was a time that it was described at the development-page but since a while it seems that the current update's are to the basics of the engine and ofcourse thats good but when is the strugle for .NET compatibility coming back?

Posted: Sat May 14, 2005 12:34 pm
by niko
Yes, sorry, I should write that down. For the next release, I want to make available at least animators. So that .NET users have collision detection stuff etc. I should have written down this on the development page.
However, I am currently a little bit confused if I should rewrite the .NET wrapper completely, because those ยง$% at microsoft seem to drop support for managed C++ and favor C++/CLI slowly: For example the .xml output only works with C++/CLI in the VS Beta. Maybe this wouldn't be a lot of work, just changing some identifiers etc. But if it is, I think I would ignore C++/CLI and keep on pushing Irrlicht.NET forward so it has more features.
Sorry for this confusing text, just thinking loud. :)

Question regarding .NET Compatibility

Posted: Wed May 25, 2005 9:13 am
by CrimsonShadow
Just a quick question about the .NET API...

Does it support the 2D interface objects? (ie. Can I make the equivalent of a IGUIStaticText object with the .NET API?)

Thanks,
-CrimsonShadow

Re: Question regarding .NET Compatibility

Posted: Wed May 25, 2005 8:52 pm
by niko
CrimsonShadow wrote:Does it support the 2D interface objects? (ie. Can I make the equivalent of a IGUIStaticText object with the .NET API?)
Currently no GUI elements are supported, sorry. But I just released version 0.10.0 of Irrlicht, and the new Irrlicht.NET can at least now draw fonts and 2D stuff. Maybe that helps a bit.

Posted: Thu May 26, 2005 1:05 am
by AlexL
Niko, I haven't played around with the .NET side of Irrlicht much at this time. But I was pondering if the same idea as the Win32 example could be implamented into the .NET version; in the aspect of using forms and having a rendering device placed in one. This is just something that I believe would help with Irrlicht Applications for level design or the such, and if this is already implamented I must appologize for my ignorance in reading through the .NET docs fully.

Posted: Thu May 26, 2005 3:09 am
by Duncan Mac Leod
Hi all!

I have been trying to implement the call to createDeviceEx into the Irrlicht.NET.dll to be able to host the Engine in existing Controls on my Form...

...but the Engine always show up with a Caption :( inside the Control!

Any suggestions on how to implement this?

thx in advance,
Duncan

Posted: Thu May 26, 2005 8:09 am
by niko
Duncan Mac Leod wrote:I have been trying to implement the call to createDeviceEx into the Irrlicht.NET.dll
Hm, I don't know what your are doing, but createDeviceEx is not available in the .NET version currently.

Posted: Thu May 26, 2005 10:05 am
by Duncan Mac Leod
niko wrote:
Duncan Mac Leod wrote:I have been trying to implement the call to createDeviceEx into the Irrlicht.NET.dll
Hm, I don't know what your are doing, but createDeviceEx is not available in the .NET version currently.
That's right!

Code: Select all

IrrlichtDevice::IrrlichtDevice(Video::DriverType driverType, int hWnd)
: Device(0), ManagedVideoDriver(0), ManagedSceneManager(0), ManagedCursorControl(0),
 ManagedEventReceiver(0)
{
	irr::SIrrlichtCreationParameters param;
	param.WindowId = hWnd;
	param.DriverType = (irr::video::E_DRIVER_TYPE)driverType;
	Device = irr::createDeviceEx(param);
    
	if (!Device)
		throw new System::Exception(new System::String("Specified device could not be created."));

	ManagedVideoDriver = new Video::IVideoDriver(Device->getVideoDriver());
	ManagedSceneManager = new Scene::ISceneManager(Device->getSceneManager());
	ManagedCursorControl = new GUI::ICursorControl(Device->getCursorControl());
	ManagedFileSystem = new IO::IFileSystem(Device->getFileSystem());
	ManagedGUIEnvironment = new GUI::IGUIEnvironment(Device->getGUIEnvironment());
}
...so Ihave have added another (overloaded) Method to your Irrlicht.NET.dll featuring a Window-Handle - this works, but the Engine make some trouble :roll: ...

Posted: Thu May 26, 2005 2:38 pm
by Duncan Mac Leod
Okay, Niko!

It works now 8) !

http://www.excelsior-online.org/images/ ... tainer.jpg

...but I had to dig deeper into your source-code as I actually wanted...

I did some modifications on your Engine Code and some on your .NET Wrapper 'Irrlicht.NET' Code and had to rebuild both (Engine and Wrapper) from Source...

Now we are able to host the engine in a container widget for our .NET-Applications...

Sorry for bothering you :roll: ... - keep up your excellent work and especially the .NET Support :D ...

bye,
Duncan
--
Tucan Entertainment

P.S.: maybe, you are remembering me from your eMail Box - I was the guy who was asking for a .NET Wrapper for Mono. - I am glad to tell you, that our Dev.-Team has decided to implement your Engine into our Project - ...and we will make a .NET Wrapper when our Project is released for Win32 :roll: - maybe, someone else will finish a wrapper for Mono first, so we won't have to do such a wrapper on our own 8) ...

Posted: Thu May 26, 2005 4:07 pm
by AlexL
Duncan Mac Leod, do you think it possible to get the two newly compiled *.dll files and an example of how to implament it from you. This would really help out the development of our world editor application, thanks in advance :)

Posted: Thu May 26, 2005 6:36 pm
by Duncan Mac Leod
AlexL wrote:Duncan Mac Leod, do you think it possible to get the two newly compiled *.dll files and an example of how to implament it from you. This would really help out the development of our world editor application, thanks in advance :)
Okay 8) - we are coding a Toolset on Irrlicht for our upcoming RPG, too...

http://www.excelsior-online.org/downloa ... ne_builds/

or use our Mirror-Server:

http://secondary-download.excelsior-onl ... ne_builds/

Our additions to IrrlichtDevice are:

IrrlichtDevice - Overloaded. Initializes a new instance of the IrrlichtDevice class.

public IrrlichtDevice(DriverType); // exists in irrlicht-0.10.0 .NET

public IrrlichtDevice(DriverType,int); // NEW in our Custom Build

public IrrlichtDevice(DriverType,Dimension2D,int,bool,bool,bool); // exists in irrlicht-0.10.0 .NET

...therefore you can call in C#:

//create a winform
//create a panel on the Form

IrrlichtDevice device = new IrrlichtDevice(DriverType.OPENGL, (int)this.panel1.Handle);
device.ResizeAble = true;

...we have only tested the Custom Build with one small sample app., yet! ...and only on OpenGL - USE AT YOUR OWN RISK!
...IMPORTANT: we have removed ALL Window-Captions/Borders/etc. on any Window created by the Engine, so you also won't have Borders/etc. if you are not calling our new overloaded Method using the original ones - THIS IS WANTED BY DESIGN and not a bug!

Have Fun,
Duncan
--
Tucan Entertainment

WARNING: this Custom Build of Irrlicht is NOT supported! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED... :wink:

Posted: Thu May 26, 2005 7:03 pm
by MeMyselfAndI
I know .NET is important but can someone tell me, a good reason for leaving the old api's behind and using .NET at this stage (Besides that .NET offers acces to OS components and COM objects faster and more reliable).

Posted: Thu May 26, 2005 7:26 pm
by Duncan Mac Leod
MeMyselfAndI wrote:I know .NET is important but can someone tell me, a good reason for leaving the old api's behind and using .NET at this stage (Besides that .NET offers acces to OS components and COM objects faster and more reliable).
First of all, we are able to advance our Project much quicker using C# - it's more productive. Second, we want to run our Game on Linux without the need of porting it. Of course, we need an API-Wrapper on Mono, but we will write one when our Game is done...

...and keep in mind, that everyone should use his Language of choice - there is no need to discuss, which Language is better!

just my 2 cents,
Duncan
--
Tucan Entertainment

P.S.: cause we are developing a tile-based game like NWN, we will have to alter much more things from time to time in Niko's excellent code than adding some .NET specific things only 8)...

Posted: Thu May 26, 2005 7:54 pm
by enni
Duncan Mac Leod wrote:there is no need to discuss, which Language is better!
Yeah! Of course.
It's C (K&R C - the only lang for real Men)

(For everyone who didn't get the joke - calm down, it IS one :-D )

Re: Question regarding .NET Compatibility

Posted: Thu May 26, 2005 10:05 pm
by CrimsonShadow
niko wrote:
CrimsonShadow wrote:Does it support the 2D interface objects? (ie. Can I make the equivalent of a IGUIStaticText object with the .NET API?)
Currently no GUI elements are supported, sorry. But I just released version 0.10.0 of Irrlicht, and the new Irrlicht.NET can at least now draw fonts and 2D stuff. Maybe that helps a bit.
Cool. I just noticed the 0.10.0 release today. The 2D drawing stuff is much appreciated.

Thanks,
-CrimsonShadow