
Brenta Engine is a simple 3D engine written in modern C++/OpenGL using the Entity Component System architecture. The engine was created by Giovanni Santini in the summer of 2024, the name is inspired by the Brenta Dolimites in the Italian Alps.
#include <brenta/engine.hpp>
int main()
{
// Setup
engine::builder()
.with(logger::builder()
.level(oak::level::debug))
.with(window::builder()
.title("load opengl test")
.width(screen_width)
.height(screen_height))
.build();
auto engine = engine::managed();
// Loop
while (!window::should_close())
{
if (window::is_key_pressed(GLFW_KEY_ESCAPE))
window::close();
// Update logic...
// Draw...
gl::set_color(0.2f, 0.3f, 0.3f, 1.0f);
gl::clear();
window::poll_events();
window::swap_buffers();
}
return 0;
}examples/shadertoy.cpp:
examples/mandelbrot-set.cpp:
examples/logger.cpp:
$ ./build/logger
[ level=info ] logger: set log file to /tmp/brenta_logs
[ level=info ] logger: initialized
[ level=info ] window: set context to OpenGL version: 3.3
[ level=info ] window: set OpenGL profile to core
[ level=info ] window: disabled MSAA
[ level=info ] window: disabled VSync
[ level=info ] window: mouse capture disabled
[ level=debug ] window: set framebuffer size callback
[ level=info ] window: initialized
[ level=info ] gl: enabled GL_DEPTH_TEST
[ level=info ] gl: enabled GL_BLEND (transparency)
[ level=info ] gl: enabled GL_CULL_FACE
[ level=info ] gl: enabled GL_MULTISAMPLE
[ level=info ] gl: initialized
[ level=info ] engine: initialized
[ level=info ] Hello, World!
[ level=info ] gl: terminated
[ level=info ] window: terminated
examples/demo/src/main.cpp:
The Engine is composed of several submodules, which are mostly independent from each other:
Additionally, the engine provides multiple classes for various
functionalities such as wrappers around opengl primitives, or managing
the camera or the time. Classes often provide a Builder to
initalize them nicely.
The engine is released under the MIT license.
./>