Files
JGL/README.md
josh eae3c794fa
All checks were successful
Run ReCI Build Test / Explore-Gitea-Actions (push) Successful in 2m46s
Update README.md
Added extended J2D member functions. (TODO: Document new usability of J2D contexts)
2025-02-04 15:51:52 -05:00

82 lines
2.2 KiB
Markdown

# Josh's Graphics Library
Yet Another C++ Rendering Toolkit
[![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](http://unlicense.org/) ![Static Badge](https://img.shields.io/badge/Lit-Based-%20)
## Features
* Modern C++ (20).
* Cross Platform (Linux & Windows 10 1909 or newer).
* Provides single-function-calls to render various graphics in 2D and 3D.
* Integrates right into an existing OpenGL rendering system.
* Quick Rendering of Text, Shapes, Sprites / Textures, etc.
* High-performance text rendering.
* Little-to-no overhead.
## API Overview
### J2D
* DrawPoint
* DrawLine / DrawGradientLine / DrawDottedLine / DrawDashedLine / DrawLines
* DrawSprite / DrawPartialSprite
* DrawRenderTarget / DrawPartialRenderTarget
* OutlineRect / OutlineRoundedRect / OutlineChamferRect
* FillRect / FillGradientRect / FillRoundedRect / FillChamferRect
* OutlineCircle / FillCircle
* OutlineTriangle / FillTriangle / FillGradientTriangle
* DrawString
* DrawCubicBezierCurve
* DrawArc
* OutlineEllipse / FillEllipse
### J3D
* DrawLine
* DrawString
* DrawMatrixGizmo (WIP)
* DrawAxisAngleGizmo (WIP)
* DrawQuaternionGizmo (WIP)
### Types
* RenderTarget
* VRamList
* Texture
* Font
## Usage
```cpp
// Makes sure the glViewport will be the correct size.
// Typically done once per frame.
JGL::Update(window_size);
JGL::J2D::Begin();
JGL::J2D::FillRect(Colors::Blue, {0,0}, {16,16});
JGL::J2D::End();
// See the example program in main.cpp for more in-depth usage.
```
## Requirements
An OpenGL 2.1 or newer accelerator with at-least two texture mappers that supports the `GL_ARB_framebuffer_object` extension or
an implementation that can provide those features through alternative means (common on ArmSoC and Risc-V).
## Compatability
* AMD ✓
* NVIDIA ✓
* Intel ✓
* Zink (OpenGL-on-Vulkan) ✓
* GL4ES ✓
## Documentation
Documentation is available [here](https://doc.redacted.cc/JGL/d3/dcc/md__r_e_a_d_m_e.html).
## Contributing
Contributions to JGL are welcome! If you find a bug, have a feature request, or would like to contribute code, please submit an issue or pull request to our repository!
## Acknowledgements
JGL is developed and maintained by Josh O'Leary @ Co from Redacted Software and contributors. Special thanks to Redacted.