All checks were successful
Run ReCI Build Test / Explore-Gitea-Actions (push) Successful in 2m46s
Added extended J2D member functions. (TODO: Document new usability of J2D contexts)
82 lines
2.2 KiB
Markdown
82 lines
2.2 KiB
Markdown
# Josh's Graphics Library
|
|
|
|
Yet Another C++ Rendering Toolkit
|
|
|
|
[](http://unlicense.org/) 
|
|
|
|
|
|
## 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. |