Skip to content

Calvin-CS/TSGL

Repository files navigation

TSGL

Thread Safe Graphics Library

You can generate Doxygen locally using 'make docs', or view the TSGL API here.

Contact us with any questions you have. Dr. Joel Adams, adams@calvin.edu Elizabeth Koning, erk24@students.calvin.edu Ian Adams, isa3@students.calvin.edu


Description

TSGL is a thread-safe graphics library perfect for drawing graphics. You can do a wide variety of things with TSGL, including: image manipulation and rendering (.bmp, .jpeg, and .png image formats supported), 2D polygon drawing (rectangles, circles, triangles, etc.), text rendering, animations with keyboard and/or mouse events, and much more. All drawing and rendering is done with threads and in parallel. This library is currently supported on Windows, Mac OS, and Linux. 3D graphics are currently not supported by this library.

If you would like TSGL in your local git repository, use the following command:

git clone https://github.com/Calvin-CS/TSGL.git

Otherwise, click the "Download zip" button to download a zipped up version.


Goals

The main goal of this library is to provide a thread-safe graphics library for 2D graphics. Other goals include: Helping beginning programming students learn about the complex process of parallelization by giving them hands-on tools to use in order to learn about parallelization without having them to worry about the problems associated with parallelization such as race conditions, mutexes, and more. It also helps educators teach programming students about parallelization through simple visualizations.


Installation

To install TSGL, please see our installing TSGL page.


Tutorials

Want to learn how to utilize the TSGL library? Check out the wiki pages for some tutorials!


docs and docs-wiki

docs and docs-wiki are both submodules located inside of the TSGL root directory. docs contains the documentation for TSGL classes and docs-wiki contains the wiki pages. See the READMEMISC.txt file for information on how to initialize and update these submodules in your local git repository.