Sign in to follow this  
TTK-Bandit

Unity Gloot - yet another GL window mangement api

Recommended Posts

Weird coincidence 2 libraries for the same purpose posted just a few days appart, but well while the topic is still hot..
(@Mad Fish: Do you want to join forces ?)

In the process of refactoring the Open Game Libraries I'm working on, I'm releasing Gloot.
I've been working on this for quite some time alongside studying:

The OpenGL Object Oriented Toolkit is a library similar to SDL, GLFW, SFML, etc.
Its purpose is to create OpenGL windows and capture input from the user.
Gloot uses some (heavily rewritten) code from GLFW 2.6 ( Camilla Berglund, http://glfw.sourceforge.net/ ).

Language: C++
License: zLib
  • Heavily rewritten GLFW 2.6 code( Object Oriented, optimized )
    • ..by now, there's not much left of the original code.

  • Create multiple windows
  • Create OpenGL 1,2,3,4 contexts
  • Window messages are handled in a different thread, which enables:
    • Moving and resizing windows without the game freezing
    • Smooth drawing without hickups

  • Do fast fullscreen toggle (without losing OpenGL context)
  • Use native or custom resolution.
  • Support for Multiple monitors (when you toggle fullscreen on the 2nd monitor, it will do it there.)
    • with some extra code on the client, dual monitor drawing should be no problem, maybe even tripple monitor?.

  • Possibility to change Gamma
  • Extended keyboard input code (more keys, simplified input handling)
  • RAW Mouse input ( Win32 ) and native input
  • Joystick code has been removed, working on a separate library for this purpose tho
  • Input is very basic, nothing is stored inside gloot, since you will store your own array mostly anyway.
    • Besides, sometimes it's good to have keyrepeating, for example in the menu, chat or developer console.

  • A seperate header file for input constants/interfaces, so you don't have to mix opengl headers into your gamelogic files.
  • Removed GLFW threading code for the most part, since there are way better libraries to perform multithreading out there.
  • Removed image loading, there are other libraries much better for that kinda stuff.
  • Full unicode (UTF-8) support


Planned
  • Linux Support (work in progress)
  • Mac support (rewritten from scratch, the glfw mac code is not very popular within the mac community)
  • A few more demo applications
  • More optimizations


Please Keep in mind, I'm still working on some refactoring, altho the interface itself shouldn't change much anymore.
Even tho the interface should be quite intuitive, I've started working on doxygen comments(not complete yet).

You can find the gloot interface headers here: svn view
( You can use Gloot separately from the other libraries )
Demo Source for multiple window and opengl 3 context creation is available here: svn view
The sourceforge project is a little out of date, so don't take the info you find there seriously.
The Project has moved to Google Code: Open Game Libraries

demo binaries(win32) are available here: Download

Criticism or ideas on the api are greatly appreciated.
Also, if anyone is interested in helping on the project let me know.. I've been working on this mostly solo for quite some time alongside studying, so progress isn't as fast as I hoped.

[Edited by - TTK-Bandit on October 4, 2010 12:28:11 PM]

Share this post


Link to post
Share on other sites
I like where you are going with this - looks like you did some solid market research beforehand, as you have filled most of the areas I complain about with existing toolkits.

Also looks like you have a very large feature overlap with the GLFW v3 development. Have you considered approaching them about merging your improvements back?

Share this post


Link to post
Share on other sites
Thanks.
Well I didn't actually do much research, I just collected all the negative points I experienced myself trying all the different windowing libraries out there.
Best api I found to that point was glfw, but it was lacking quite a few features I needed, so I started forking it.

When I started writing gloot, it looked like glfw was kinda dead in development.
I haven't looked too deeply into the glfw 3.0 sources yet, but since it's still c and as mentioned my code is very different by now, I see a lot of work in getting all the stuff back into glfw. and since my time is limited, I don't see me doing this. They are welcome to look into my source and find the code themselves tho, I'd be honored.

Linux Port: I've started working on it, but since my linux harrdisk had a horrible heart attack, I need to set up linux from scratch (sources are backed up luckily), so that will take some time. I'm heading for early 2011, but I can't say for sure how hard the next semester will be and how much time I can spend on it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this