Elix is a lightweight graphics engine designed for creating simple 2D interfaces with support for text fields, buttons, and other minimal UI elements. The engine is focused on using the GPU for accelerated rendering and features a flexible font management system with dynamic resizing and pre-generated textures.
- Text Field Support: Easy creation of text fields with font rendering supported through the GPU.
- Flexible Font Handling: Supports TTF fonts with dynamic resizing and pre-generated textures for faster rendering.
- UI Elements: Minimal set of basic UI elements such as buttons and labels.
- GPU Acceleration: Rendering is accelerated by leveraging GPU capabilities (OpenGL).
- Scalability and Caching: Optimized texture caching system for fonts to enhance performance.
The project uses the following external libraries:
- FreeType: For font rendering and working with TTF files.
- OpenGL: For graphics rendering.
- GLFW/SDL (optional): For window creation and user input handling.
The project uses CMake as its build system. Follow the steps below to set up and compile the project.
- Clone the repository:
git clone https://github.com/ElverseCopr/elix
cd elix-engine
- Create a build directory:
mkdir build
cd build
- Generate the Makefile with CMake:
cmake ..
- Build the project:
make
- Run the example:
After a successful build, you can run the example:
./elix_example
Elix allows for quick creation of interfaces with text fields and buttons, with flexible font handling. An example of code to create a text field can be found in the examples
directory.
- Adding new UI elements (sliders, checkboxes).
- Optimizing rendering and working with texture atlases.
- Supporting more advanced font effects and animations.
This project is licensed under the GPL 3.0 License. See the license
file for details.