Any higher level graphics?

Sep 1, 2009 at 3:50 PM
Edited Sep 1, 2009 at 6:01 PM

Hello,

Is there a way in singularity to render graphics that are "higher level" as lines and rectangles, like images or text? Of cause, you can render bitmaps (Besides, the keyboard cannot be detected by slideshow example), but is there a way to render *.png with transparancy or rendering text at a given screen position, like you do in GDI+ with drawText or drawImage? I'm not an expert in programming on in-development operating systems (I have not even seen I line of code from e.g. Linux kernel) so I don't know whether and with which efford it is possible doing so.

Regards, Farok

Sep 6, 2009 at 9:15 PM
Edited Sep 6, 2009 at 9:18 PM

Hello Farok,

Nothing is easy yet unfortunately but it is possible to write your own line drawing functions by drawing pixels at specific points in the direction to the next point.

I am working on a very simple GUI library using such a method.

I have not looked into getting a PNG with transparency rendered but I have used a bitmap with color (0, 255, 0) to be transparent. (transparency mask)

Would you be interested in working with me on an image / gui library?

Regards,

 EDIT: And I have text working but its done much like it is done in oldschool games such as final fantasy where it is bitted from a texture. I.e it is not scalable and is really only decent displayed at its original size :)

Sep 9, 2009 at 10:41 AM

Since our short chat on MSN, I would like to add (for anyone else who is interested)

In the video device contract you can see all avaliable messages you can send

http://singularity.codeplex.com/sourcecontrol/changeset/view/17067?projectName=singularity#324166

SendFill, SendPlot etc...

Nov 6, 2009 at 11:20 PM

Perhaps a group of interested individuals can work on such a library.  Does anyone know how difficult it would be to port open-source C libraries such as OpenGL and OpenAL over to completely managed versions to run on Singularity?

Nov 20, 2009 at 6:47 PM
Edited Nov 20, 2009 at 6:53 PM

Thats gonna be beyond the scope of my knowledge but would be quite brilliant. Although I don't believe hardware accelleration is going to be feasible for some time.

OpenGL is a specification rather than a library and looking at an open source implementation of it (MesaGL) its gonna be an awful lot of work.

I am currently working on an X Server (much like a simplified xorg) so that applications can display their GUI on a single display. I think this is one of the easiest ways to get a desktop type thing going. It is proving to be good fun :)

I am going to try for a simple gfx library such as SDL and Cairo once this is complete and so then I can work on some GUI components. It will be very much modelled after javax.swing or GTKmm.

Due to sharing my coding time between this, my work and the Imagine cup I cannot say a deadline for when it will be usable unfortunately.

May 12, 2010 at 9:46 AM
Kpedersen, I'll be very thankful to you if you'll finish your X server. Maybe then we could make it start some De as XFCE or LXDE, then Gnome, then KDE, lol.
May 12, 2010 at 9:58 AM

Hmm it is impossible.

win7qt, are you provoker?

May 12, 2010 at 5:30 PM

Seems very promising! Nice to know that I am not the only one working on the Singularity project :)

I am currently working on implementing bus device drivers in SIPs (outside of the kernel). The implementation will be most of the work for my Master thesis. Currently I am very busy, however in the future I would very much like to help you all. Singularity seems a very interesting project to me.

By the way, do you use any source control system? Maybe Microsoft could make a separate branch for us on their SVN server, or we could create a distributed repository (for example Git). I would love to see your code and share mine, when I have something working.

May 13, 2010 at 3:56 PM
Edited May 13, 2010 at 4:01 PM

@win7gt,

Thank you for your interest. A desktop environment would be a pretty great outcome abeit quite a long way from fruition haha.

(An additional project of mine which you might be interested in http://www.opencde.org)

@MpDzik,

That sounds pretty interesting and I certainly believe Singularity requires as much attention as it can get :). It also seems like a very good project for a Masters thesis. How is it coming along?

I am toying with the idea of putting the work I have done so far into my University Dissertation which I start within the next year but I am worried that the Dissertation part might suck all the fun away haha.

I currently use a local CVS for the majority of my code and think it would be great to set up a system so that we can share at some point. Ideally I would like to create a standalone project for the display server (Xsing), but due to the build environment, it needs to be merged with the whole Singularity source tree which is a pain. My ultimate dream would be to code in a console editor (like vi) and compile within Singularity itself whilst running natively on an IBM Laptop :D

MpDzik wrote:

Nice to know that I am not the only one working on the Singularity project :)

Lol I know the feeling. The community around here is either very quiet, or non-existant :p

Best Regards,

Karsten

May 13, 2010 at 6:56 PM

I think Singularity is a great projects for dissertations and it doesn't have to be boring at all :) Ever since I downloaded Singularity I wanted to do something with it for my Master thesis, however I couldn't find a topic which would be interesting and large enough. I wrote an e-mail to Mr. Galen Hunt from the Singularity team and asked for suggestions in this matter. I got a quick reply with the idea to implement bus drivers in SIPs.

Lately I've been learning how Singularity's I/O system works, to know how to implement new drivers. I still have very little new code written, however I plan to implement a USB bus driver, so I can test dynamic device detection and driver loading (for example pluging in a USB pen drive).

For source control, I use SVN. I have a local repository with all projects and I put new Singularity source code there. However I think that sharing code with the rest of the community is a very good idea.

Best Regards,
Marek