About this project
eepp (Entropia Engine++) is an open-source, cross-platform C++ framework for building games and applications, with a strong emphasis on rich graphical user interfaces. It officially targets Linux, Windows, macOS, FreeBSD, Haiku, Android and iOS, and can be exported to HTML5 via Emscripten with some limitations.
The UI module provides a node-based widget system with input events (clicks, keypress, hover, focus), animation, scaling, rotation, clipping, themes and skins, pixel-density scaling, and common widgets such as buttons, text boxes, combo boxes, menus, list boxes and scrollbars. Layouts resemble Android's (LinearLayout, RelativeLayout, GridLayout) and can be loaded and styled from XML. Styling uses a custom Cascading Style Sheets implementation covering many CSS2 rules plus CSS3 features like animations, transitions, custom properties, media queries and @font-face. An HTML+CSS compatibility layer renders HTML documents natively through a UIWebView component, also used for Markdown rendering, with support for block, inline, flex, grid and table display modes, positioning, rich text and document-scoped stylesheets.
The graphics module offers OpenGL 2/3, OpenGL ES 1/2 and Core Profile renderers, automatic batching, TrueType/BMFont/XNA font support, framebuffers, shaders, VBOs, particles, animated sprites, texture atlases with an editor, clipping masks, nine-patch bitmaps and many image formats including rasterized SVG. The window module is backend-based (currently SDL2) and handles clipboard, hardware cursors, displays and joysticks. Audio uses OpenAL (with mojoAL as a drop-in default) supporting OGG, WAV, MP3 and FLAC. Other modules cover threading, a virtual file system, memory management, UTF string handling, math utilities, HTTP/FTP networking with TLS, a node-based scene system, and optional Chipmunk physics and Tiled map modules.
Included tools are a UI editor with live layout/CSS preview, a texture atlas editor and a 2D map editor. The project ships examples, tests and 7GUIs benchmark implementations. Building requires SDL2 and premake4/premake5 to generate Makefiles or IDE projects; platform-specific instructions are given for Linux, Windows (Visual Studio or MinGW/w64devkit), macOS (Makefiles or Xcode), Android (Gradle) and iOS. Documentation is partially complete, with the UI module receiving the most attention.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.