ANX and Cosmos

Sep 12, 2012 at 2:59 AM

For a while now I have been playing around with the idea of an XNA based OS.  Over the past couple days, I ran across Cosmos (C# Open Source Managed Operating System) and ANX and it seems that these could be two potential pieces to the same puzzle.

My question is, what would it take in order to use ANX to create the GUI on a Cosmos based OS? I know compatible drivers would have to be written, but what else would be involved?

Sep 12, 2012 at 7:54 AM

You don't need that much for this task. ANX already has everything you need I think.

As a starting point for the GUI you have a couple of (XNA) options: starLiGHT.GUI, Nuclex, neoforce controls are good starting points. They don't run out of the box (I will change that soon for starLiGHT.GUI) with ANX but it should not be that much work to change the namespaces and tweak some things.

The bigger part is the RenderSystem, InputSystem and maybe the PlatformSystem. All of them needs working drivers. If you are able to run OpenTK (or maybe SharpGL) on cosmos this will be very easy. The default RenderSystem (and in case of OpenTK the InputSystem) should work out of the box. If not you have to call the drivers somehow.

BTW: This is a great idea. I saw Cosmos a couple of month ago and I think it is a very promising and interesting project. If I can assist you to get ANX run on Cosmos let met know.


Sep 12, 2012 at 4:10 PM

The current release of Cosmos has video drivers that support 320x200, but I have seen recent activity on their forum stating that they now up to Standard VGA (640x480).  This would be basic video support, without DirectX or OpenGL support.

Sep 13, 2012 at 6:45 AM

I just came to a realization...

My main computer is an IMac running VMWare Fusion and Windows XP.  The video drivers for the XP VM are VMWare SVGA II drivers.  These happens to be the drivers that Cosmos currently is using.  Though they aren't specifically DirectX drivers, by setting the project to use Reach, I can do pretty well everything that I have to in developing my game GUI.

Does ANX have the equivalent of XNA's Reach? If so, it would be a possible stepping stone so ANX could be used with Cosmos.  Then as compatible DirectX and OpenGL drivers are developed for Cosmos, ANX would be able to utilize the advanced capabilities of the cards.

Am I thinking correctly here?

Sep 13, 2012 at 7:30 AM

If Cosmos are able to run XNA games with Reach profile it has at least a subset of DirectX 9.

Are you able to provide a step-by-step walkthrough how to setup VMWare Fusion and Cosmos in a virtual machine? Maybe I'll find the time to have a look at this thing to run ANX in the next couple of days (or maybe weeks).

BTW: ANX will have something like Reach and maybe some more profiles available.

Sep 15, 2012 at 4:47 PM
Glatzemann wrote:  ANX will have something like Reach and maybe some more profiles available.


I was thinking about Reach and how you said that ANX will have something like it, but maybe with more profiles.  Would it be possible to have a limited subset of XNA/ANX, where you have access to basic 2D graphics, without requiring GL or DX driver support.  With most of what I do, I use a lot of Draw(), DrawString() and the occasional MeasureString() to create my user interfaces.  The rest is mostly basic C# programming.  My programming skills are somewhat limited, so I typically use what I know and add to my skill set as needed.  Up to this point I haven't gotten into the more complex aspects of XNA.  If you are interested, here is the project that I am working on:  

With the way you've set up ANX, would it be possible to use a limited subset, like what I am talking about, without needing the GL or DX driver support?

Sep 19, 2012 at 7:52 AM

Im sorry, but this doesn't work or is at least very hard to develop. Even the very basic 2D graphics stuff in XNA (and in ANX) needs at least textured triangles (each sprite which is used for Draw() and DrawString() is made from two textured triangles) and some basic blending stuff.


I think it is possible, but it will be very slow and much work... OpenGL or DirectX drivers are the much better solution and I think it is less work. DirectX is unrealistic I think (closed source), but OpenGL should be possible...