I am a some-what experienced programer, and I have been working on creating a 3D graphics engine utilizing the OpenGL system, primarily focused on use in games. However, I also want to do some work with functional programming, and wanted to create a clean UI for more functional programs, like a task manager. An example of the kind of effect that I want to create could be somewhat like the Visual Studio Code UI. My question is: is there a specific library that I should use for creating desktop programs, or should I continue to use OpenGL's 3D aspects, but keep everything in a single Z axis plane, effectively creating a 2D program? Or is there a better way to create normal program visuals, that wont be cheating out of a 3D graphical space?

Thanks for your help.

EDIT: I am currently using C++/C, but I am also happy to expand my knowledge base to include new languages.

  • $\begingroup$ What i understand is that you want to make User interface that will not be used in a game. right ? $\endgroup$ – A---B May 30 '16 at 17:43
  • $\begingroup$ Yes, My current goal is to create my own pomodoro time management application, so I want to create a simple User Interface that can be used for that purpose. $\endgroup$ – Arden Rasmussen May 30 '16 at 18:57
  • $\begingroup$ Check the answer i posted just now $\endgroup$ – A---B May 30 '16 at 19:55

As you said you want to create something like this

As you know these are not graphic intense rendering. Thus, (i guess but not 100%) Windows do these rendering on CPU not on GPU. GPU is for intense rendering with lighting, textures, 3D models, etc. Where you can take the benefit of algorithm built in GPU circuit, Which is what OpenGL does.

So i would recommend to use built-in libraries that don't use GPU and use CPU for rendering, Although you can use OpenGL or Direct3D as well.

Some libraries that are built in different programming languages are :-

Java - Jframe, Graphics, Buffered image, Canvas. (Note : all these libraries have different functionality and you have to use them together for software rendering See this for more detail)

C# - System.drawing, (i don't have much experience of C#, So i can't name any more libraries), also C# form application.

JavaScript - Canvas check this out

C++ - you need third party libraries like QT, GTX etc. Qt learning resource, related resource

Python - Pygame (No personnal eperience) See this for detail

| improve this answer | |
  • $\begingroup$ @ArdenRasmussen So what are you using to make UI ? $\endgroup$ – A---B May 30 '16 at 21:49
  • $\begingroup$ I am going to take a look at QT, as that uses c++ which I know best, and seems like a good multi platform utility. $\endgroup$ – Arden Rasmussen Jun 3 '16 at 3:48

Not the answer you're looking for? Browse other questions tagged or ask your own question.