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.


closed as off-topic by trichoplax Jun 1 '16 at 9:28

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend or find a book, tool, software, tutorial or other off-site resource are off-topic for Computer Graphics as they tend to attract opinionated answers and spam. Instead, describe your problem or need and the steps, if any, you've taken to solve it." – trichoplax
If this question can be reworded to fit the rules in the help center, please edit the question.

  • $\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

  • $\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.