Boogiwoogie's picture

deploying opentk project

Hi there!
I am rather new to all this .net stuff, being so Windows-related kept me away from it for a long time. But now that mono is at a pretty mature stage, I think about not sticking to C++ any more. However, what I am curios about is your "compile once, run anywhere"-Philosophy. If I create some nice little program that uses OpenGL and OpenAL, how do I make it run on all those supported Platforms? I doubt that its simply adding OpenTK.dll to the installation directory... Can someone put some lines down on what the steps are to support all Windows, Linux and MacOS in both 32 and 64 bit versions? What I dont want is to go like "yes, just unzip it and start my program, but be sure you have xxx.so and yyy.so, otherwise do some "apt-get install"-magic... oh, you use Windows... you better go to someurl.com and download and install all that stuff."

Cheers,
boogi


Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
the Fiddler's picture
Quote:

I doubt that its simply adding OpenTK.dll to the installation directory...

It actually is: add OpenTK.dll and OpenTK.dll.config to the installation directory and your application will run on any OS that comes with Mono/.Net and the necessary OpenGL and OpenAL drivers.

Of course, there are some complications:

  • Whereas most operating systems come with Mono/.Net preinstalled, Mac OS X doesn't. Users will either have to install Mono themselves (ugly) or you will have to create a bundle that contains both Mono and your app (best solution).
  • Many Windows installations don't have up to date OpenGL and OpenAL drivers. For OpenAL, simply run Creative's oalinst.exe during installation. For OpenGL, use GL.GetString(StringName.Version/Vendor/Renderer) and prompt the user to upgrade his driver if necessary (if the renderer contains "Microsoft", then no driver is installed). Linux and Mac OS X don't suffer from this.

These issues aren't specific to OpenTK, all games / .Net apps have to face one or the other. Fortunately, most gamers keep their drivers up to date and Mono makes it easy to create bundles.

Boogiwoogie's picture

Wow, that sounds promising. Actually it sounds like software development should have always been that way ;)
Is OpenCL a library that comes in by installing nVidia/ATI drivers, or is it kept seperately?

nythrix's picture

Is OpenCL a library that comes in by installing nVidia/ATI drivers
Yes.