Skip to content

RaphiMC/ThinGL

Repository files navigation

ThinGL

Lightweight Java wrapper for many common OpenGL functions.

Features

  • Easy to integrate in any LWJGL3 (>= 3.3.3) project
    • ThinGL reverts all OpenGL states to the previous state after rendering
    • Confirmed to work in Minecraft and Cosmic Reach
    • Supports GLFW and SDL3
  • Uses modern OpenGL (OpenGL 4.5)
  • Builtin shaders
    • Simple color and texture shaders
    • Variable width lines
    • Post-processing, such as blur or object outlining
  • Text rendering
    • TrueType font support
    • Bitmap, SDF and BSDF text rendering
    • Optional HarfBuzz integration for complex text
  • Easy to use rendering abstraction
    • Draw call batching
    • Immediate mode rendering
    • Retained mode rendering
    • Basic Instancing support
    • Basic Multidraw support
  • Wrapper classes for OpenGL objects and functions
  • Pretty fast (Built with performance in mind without sacrificing usability and readability)
  • And much more...

Releases

Gradle/Maven

To use ThinGL with Gradle/Maven you can get it from Lenni0451's Maven or Jitpack. You can also find instructions how to implement it into your build script there.

Jar File

If you just want the latest jar file you can download it from GitHub Actions or Lenni0451's Jenkins.

Usage and Examples

Examples can be found in the src/example directory.

Logging

ThinGL by default logs to System.out and System.err. You can however easily change this by calling LoggerFactory.setBuilder(Slf4jLogger::new); to for example log using SLF4J.

Contact

If you encounter any issues, please report them on the issue tracker.
If you just want to talk or need help implementing ThinGL feel free to join my Discord.

About

Lightweight Java wrapper for many common OpenGL functions

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •