Skip to content

tlazaro/sloth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

====================================
Scala LWJGL OpenGL Toolkit from Hell
====================================

This toolkit was created in order to help people work with OpenGL via LWJGL. The problem most people have is that documentation like the OpenGL SuperBible book makes use of some helper libraries and it becomes quite complex to follow the book without those.

In this toolkit we will attempt to provide a syntax as close as possible to the code in the book. That would allow people to use it as if they were working on C++.

** We have just started the project, it is a work in progress **
** The plan is to implement all the helper libraries as well as the examples provided with the book **

We chose Scala because it is a much better language to work with than Java while taking full advantage of the JVM, libraries and ecosystem. It is also easier to convert C++ into Scala than it is to Java.

"Sloth" was chosen as compared to Glut (Gluttony).
Could have been "Lwjgl Utility Scala Toolkit" ... Lust!

"from Hell" stands for the massive suffering caused by C/C++ code conversion :P

-------------------------------
Status
-------------------------------

- All examples from the book until Chapter 5 are converted and fully working.
- Most of the utility code is converted.
- UI capabilities of Glut are not implemented at all and I don't think they will ever be. It's probably better to use Nifty GUI for a real life application anyway.
- Glew is not implemented at all but would be nice to have for real life applications.

-------------------------------
KNOWN BUGS - Fixes are welcome
-------------------------------

- There is some problem with the window resizing that I can't seem to completely fix, it may crash if the window is resized so I removed resizing.

-------------------------------
Prerequisites
-------------------------------

- OS: Linux and Windows work fine, Mac should work too (let me know if it doesn't)
- Scala 2.8.1 final installed with SCALA_HOME configured and SCALA_HOME/bin added to PATH.
- Maven 2
- Opengl 3.3 support. Update your graphic card drivers just in case. More info http://en.wikipedia.org/wiki/OpenGL#OpenGL_3.3

-------------------------------
Downloads
-------------------------------

Check the downloads section for an already packaged version.

-------------------------------
Setup
-------------------------------

This project uses Maven to build and manage dependencies because most IDEs don't understand SBT. SBT could be added but make sure you solve the natives and packaging.

0. Make sure you have Scala installed working from the command line, otherwise code will not compile due to the configuration of the Fast Scala Compiler in the Maven pom.
1. Checkout from GitHub
2. Until LWJGL is in the standard Maven repository we must install it locally
	a. Enter the lib/ folder and run mvn-lib-install.sh, or mvn-lib-install.bat if you are using Windows.
3. Option Command Line) Run the pom with "mvn -P Release install" and it will generate the file Sloth-0.5-SNAPSHOT-release.zip in the target folder
3. Option Netbeans) Open the project with Netbeans, right click project in Project Viewer -> "Set Configuration" -> "Release" then run the project.

Profiles :
The default profile should be used while developing as it works in offline mode
The Release profile creates a complete .zip file ready to be run anywhere with a run.sh and run.bat files.

Future Usage:
Sloth should actually be just a library to be included in a custom project, for now use this and add your own code to it to test your OpenGL skills. You can fork it using git to make it easier to track your own changes.

We could later provide and archetype to make it easier to use.

-------------------------------
Source Code
-------------------------------

When editing source code use tab size 2 instead of 4 to see what I see when I develop. I use auto format but sometimes whitespace does not get fully converted to tabs and will not look nice with tab size of 4.

-------------------------------
IDE Support
-------------------------------

Netbeans 6.9 - 6.9.1 and 7.0 is fully working. I provided nbactions.xml that will allow the project to be run and find the native files without configuration on your end. You should have the Netbeans Scala Plugin so the IDE actually helps you with your scala code.
I recommend Netbeans 7.0 as it supports Git via a plugin.

Feel free to provide additional files or patches to make it easier to use in other IDEs

About

Scala LWJGL OpenGL Toolkit from Hell

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published