A Library to Simplify Life

Started by CodeBunny, March 08, 2012, 13:40:19

Previous topic - Next topic

CodeBunny

I've been on these forums for a while, and I think it's time I gave something back.

I spent a lot of effort typing up a README, so I'll just paste it here:




    The Mind's Eye Games LWJGL Wrapper README
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    About.......................................................................
        The MEG LWJGL Wrapper is meant to provide a contained, simple method of
        packaging LWJGL in a Java Application. It gives a developer the
        following benefits:
       
            1: Not have to manually install the LWJGL natives along with the
               program, but instead have them automatically extracted to the
               user's hard drive at startup.
            2: Simplify the process for initializing the LWJGL library to a
               single line of code.
            3: By using the wrapper library with multiple programs, the
               extracted files are shared between those programs, meaning that
               multiple installs will have the minimum of data on the user's
               computer. Programs using different versions of LWJGL will
               coexist automatically, as the natives are organized by version
               number.
            4: Allows for easy updating of the LWJGL version of a program
               without worrying about deleting old files.
       
        In short, using the LWJGL Wrapper library allows you to make compact,
        executable jars that launch easily, share native libraries, and require
        no installation. In fact, you can make a single jar file that can
        seamlessly be copied from Windows, to Mac, to Linux, and back, working
        perfectly on each platform.

       

    How It Works................................................................
        The operations performed by the wrapper are actually very simple. Here
        is what the must call:
       
            new LWJGLLibrary().load(SystemInfo.detectCurrent());
           
        Pretty simple, right? Looks friendly? Well, here's what happens in that
        little call:
       
            1. A LWJGLLibrary object is created.
                    a. The LWJGLLibrary determines the LibraryInfo that
                        describes it, and sets the classloader it will use for
                    b. The LWJGLLibrary sets the paths to all files it should
                        extract, for all supported operating systems and system
                        architectures.
            2. The load(SystemInfo) method of the created library is called. The
                supplied SystemInfo describes the current computer running the
                program.
                    a. The LWJGLLibrary determines the target directory on the
                        user's computer.
                            i. If a specific directory has been chosen with
                               the setExtractDir(String) method, the described
                               file is chosen.
                            ii. Otherwise, a default directory is chosen -
                               the application directory on the host OS.
                    b. The files are extracted to the directory.
                            i. If there is a file conflict when extracting any
                               of the files, that file is skipped - the program
                               assumes that the preexisting file was the
                               product of an earlier extraction, and doesn't
                               waste time with an overwrite.
                    c. The System property "org.lwjgl.librarypath" is set to
                        match the extraction directory. LWJGL is loaded
                        automatically!

       
       
    Contents of this Distribution...............................................
        The following files should be found in this distribution:
       
            1: "MEG LWJGL Wrapper.jar" - A jar file containing the wrapper
                    library! Simply add this to the build path of a java
                    application, and there you are.
            2: "Mind's Eye Games LWJGL Wrapper License.txt" - A text file
                    describing the license for this distribution.
            3: "LWJGLLibraryExample.java" - A simple java class illustrating
                    the use of this library.
            4: "MEG LWJGL Wrapper Javadoc.zip" - A zipped archive of the
                    javadoc.
            5: "MEG LWJGL Wrapper README.txt" - This file, that you are reading
                    right now.
            6. Contents of the "LWJGL Docs" folder - This directory contains all
                    the documentation and licenses associated with LWJGL and its
                    third-party libraries.

       
       
    Notes.......................................................................
        A couple of notes:
       
            1: The jar files "jinput.jar", "lwjgl.jar", and "lwjgl_util.jar"
               have all been repackaged into the "MEG LWJGL Wrapper.jar" file.
               This was deemed necessary, because the LWJGL version being used
               is dependent on the native libraries for that version. If a user
               attempts to use different lwjgl jars, it may cause a crash. So,
               in an attempt to head that off, the jars were combined.
               
               Additionally, this makes the jar much more compact. Instead of
               needing to keep track of 4 different jars, this allows the
               developer to have a single jar managing the entire LWJGL package.
               
            2: The direct source code is not included in this distribution. This
               is not because I envision this as a closed-source project, but
               because the code used here is based on a larger, generalized
               library that I have not completely finished. When that library is
               finished, the source for both it and this will be made available.
   
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Thank you!

Chris Molini
Mind's Eye Games




The download is here: http://www.minds-eye-games.com/downloads/libs/lwjgl_wrapper/Mind%27s%20Eye%20Games%20LWJGL%20Wrapper.zip

Penny

Hiya!
I see this post was made several years ago so I am hopeful that you can provide a link to the source code :)
I just want to compile my own version of lwjgl with the source of all the supporting jars as well, just because thats the way I roll! :)
Regards