TML
🎮 Simple 2D graphics library for C++
Install / Use
/learn @ToniLipponen/TMLREADME

TML is a simple library for making games and applications. It provides interfaces for window creation, graphics rendering, audio playback and keyboard/mouse/controller input.
Notable features
- 2D batch renderer, including sprite batching
- No external dependencies
- Modular design
- Written in C++17
- OpenGL 3.3 and up or OpenGL ES 3.0 and up
Modules
- Audio
- Graphics
- Network
- System
- Window
Supported platforms
- <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Unofficial_Windows_logo_variant_-_2002–2012_%28Multicolored%29.svg/1161px-Unofficial_Windows_logo_variant_-_2002–2012_%28Multicolored%29.svg.png" width=14 height=14 alt=""> Windows
- <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Tux.svg/1200px-Tux.svg.png" width=14 height=14 alt=""> Linux
- <img src="https://seeklogo.com/images/F/freebsd-logo-542DF4765A-seeklogo.com.png" width=14 height=14 alt=""> FreeBSD
Currently, I have no way of supporting macOS.
Building
If you wish to build the project from source, there are some instructions in BUILDING.md
Using
Currently, there is no API documentation or tutorials on how to use this library. Once this project is a bit more matured, I will take the time to document the API and make some tutorials.
Basic example
#include <TML/TML.h> //Include everything
int main()
{
tml::RenderWindow window(800, 600, "Hello world");
while(window.IsOpen(true))
{
window.Clear();
window.DrawCircle(window.GetSize() / 2, 100, tml::Color::Green);
window.Display();
}
}
Contributing
If you're interested in this project, you can help by testing, contributing code, reporting bugs or other issues, and suggesting new features or changes.
License
This project is licensed under the Zlib License.
Credits
|Author| Repo | Library |License| |------|-----------------------------|-----|-------| |Sean Barret| https://github.com/nothings/stb | stb libraries |Public Domain| |David Reid | https://github.com/mackron/miniaudio | miniaudio |Public Domain| |glfw| https://github.com/glfw/glfw | glfw |Zlib| |David Herberth| https://github.com/Dav1dde/glad | glad |MIT| |Nwutobo Samuel Ugochukwu | https://github.com/sammycage/lunasvg | lunasvg |MIT| |Jakob Riedle | https://github.com/DuffsDevice/tiny-utf8 | tiny-utf8 | BSD-3-Clause|
And a special thank you to JetBrains for providing me with a free license for CLion.
Contact
You can contact me by email.
toni.lipponen@protonmail.com
Related Skills
node-connect
342.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.7kCommit, push, and open a PR
