All Projects → linux4sam → egt

linux4sam / egt

Licence: Apache-2.0 license
Ensemble Graphics Toolkit - Modern C++ GUI Toolkit for AT91/SAMA5 Microprocessors

Programming Languages

C++
36643 projects - #6 most used programming language
M4
1887 projects
c
50402 projects - #5 most used programming language
Makefile
30231 projects
shell
77523 projects
SWIG
194 projects
assembly
5116 projects

Projects that are alternatives of or similar to egt

LudOS
Just enough OS for libretro using the Ludo frontend on a LibreELEC 9.2 base
Stars: ✭ 36 (-23.4%)
Mutual labels:  embedded-linux
RFKit
Toolkit for daily Cocoa development. Since 2012.
Stars: ✭ 20 (-57.45%)
Mutual labels:  toolkit
GLPT
GLPT :: OpenGL Pascal Toolkit. A multi-platform library for OpenGL and OpenGL ES
Stars: ✭ 26 (-44.68%)
Mutual labels:  toolkit
frontend-tools
Links to front-end development tools
Stars: ✭ 143 (+204.26%)
Mutual labels:  toolkit
merchant-center-application-kit
Tools and components for developing Merchant Center Applications 🛠
Stars: ✭ 61 (+29.79%)
Mutual labels:  toolkit
VRQuestionnaireToolkit
🎓 ---- VRQuestionnaireToolkit ---- 🎓Enables the community to easily collect subjective measures in virtual environments.
Stars: ✭ 86 (+82.98%)
Mutual labels:  toolkit
meta-iota
OpenEmbedded layer for the IOTA Distributed Ledger
Stars: ✭ 41 (-12.77%)
Mutual labels:  embedded-linux
Awesome-Tools-For-WebDevelopers
Awesome Tools For Web Developers
Stars: ✭ 57 (+21.28%)
Mutual labels:  toolkit
DGFraud-TF2
A Deep Graph-based Toolbox for Fraud Detection in TensorFlow 2.X
Stars: ✭ 84 (+78.72%)
Mutual labels:  toolkit
VPS-Bug-Bounty-Tools
Script that automates the installation of the main tools used for web application penetration testing and Bug Bounty.
Stars: ✭ 44 (-6.38%)
Mutual labels:  toolkit
go-bsbmp
Golang library to interact with Bosch Sensortec BMP180/BMP280/BME280/BMP388 temperature, pressure and humidity sensors via I2C-bus from Raspberry PI.
Stars: ✭ 41 (-12.77%)
Mutual labels:  embedded-linux
streamsx.kafka
Repository for integration with Apache Kafka
Stars: ✭ 13 (-72.34%)
Mutual labels:  toolkit
styleguide-starterkit
A starterkit to create styleguides with Fractal and Webpack.
Stars: ✭ 35 (-25.53%)
Mutual labels:  toolkit
VCL-explorer
Shows all virtual/dynamic/interface methods inside a given BPL in a tree-like view with searching
Stars: ✭ 17 (-63.83%)
Mutual labels:  toolkit
spicescript
A Handy-Dandy Personal Toolkit for Enumeration and a headstart on attacking a machine!
Stars: ✭ 20 (-57.45%)
Mutual labels:  toolkit
ymir-js
This toolkit is created to make it easier for you to develop games like chess, checkers, go, match 3 puzzle and more. It is still under development.
Stars: ✭ 30 (-36.17%)
Mutual labels:  toolkit
rubick
🔧 Electron based open source toolbox, free integration of rich plug-ins. 基于 electron 的开源工具箱,自由集成丰富插件。
Stars: ✭ 3,901 (+8200%)
Mutual labels:  toolkit
benchkit
A developer-centric toolkit module for Android to facilitate in-depth profiling and benchmarking.
Stars: ✭ 48 (+2.13%)
Mutual labels:  toolkit
typed-prelude
Reliable, standards-oriented software for browsers & Node.
Stars: ✭ 48 (+2.13%)
Mutual labels:  toolkit
xss-http-injector
XSS HTTP Inject0r is a proof of concept tool that shows how XSS (Cross Site Scripting) flags can be exploited easily. It is written in HTML + Javascript + PHP and released under GPLv3.
Stars: ✭ 22 (-53.19%)
Mutual labels:  toolkit

Ensemble Graphics Toolkit

License Release

The Ensemble Graphics Toolkit (EGT) is a free and open-source C++ GUI widget toolkit for Microchip AT91/SAMA5 microprocessors. It is used to develop graphical embedded Linux applications. EGT provides modern and complete GUI functionality, look-and-feel, and performance.

Want to help out, make some changes, found a bug, or have a question? See Contributing. Send a pull request or open an issue.

Complete EGT Programmers Manual with API reference is available for the latest version.


Features

  • Anti-aliased 2D vector graphics.
  • Modern C++ design and simplicity.
  • Optimized for Microchip microprocessors running Linux.
  • DRM/KMS and X11 backends.
  • libinput, tslib, and evdev input support for mouse, keyboard, and touchscreen.
  • UTF-8 encoding with internationalization and localization support.
  • Support for libplanes and hardware LCD overlay planes.
  • Built in and simple animation support for creating custom effects.
  • A rich and extensible default widget set designed for embedded touchscreens.
  • Multimedia support for video playback, raster images, and vector graphics.
  • Customizable look and feel with themeable widget drawing, colors, and fonts.

Build

For more complete instructions, refer to the Getting Started section of the EGT Programmer's Manual.

To build for a PC, first install required dependencies:

sudo apt install git build-essential automake autoconf libtool pkg-config \
    libdrm-dev libinput-dev libcairo-dev libjpeg-dev libmagic-dev gettext

Optional, but recommended, dependencies include:

sudo apt install librsvg2-dev liblua5.3-dev libcurl4-openssl-dev \
     libxkbcommon-dev xkb-data
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libplplot-dev plplot-driver-cairo
sudo apt install libasound2-dev libsndfile1-dev

Then, clone the source and build.

git clone --recursive https://github.com/linux4sam/egt.git
cd egt
./autogen.sh
./configure
make

You can run the examples in the examples directory at this point.

cd examples/basic
./basic

If you need to compile against the EGT library, or run the compile example below, the simplest option is to simply install the library.

make install

On some systems, when running the install command, you may need root access. For example,

sudo make install

On some systems, the default install path will be under /usr/local/. You may need to follow up the install command by running ldconfig so that the dynamic loader can find the egt library. This may also require root access.

sudo ldconfig

Example

And now comes the obligatory complete EGT application that can be compiled and run (assuming you followed the steps above to build and install the EGT library). This example shows creating the Application object, and then a Window, and a Button on the center of the screen.

#include <egt/ui>

int main(int argc, char** argv)
{
    egt::Application app(argc, argv);

    egt::TopWindow window;
    egt::Button button(window, "Press Me");
    egt::center(button);
    window.show();

    return app.run();
}

To link this example application, saved as example.cpp, use g++ and pkgconfig to pull in the required compiler flags.

g++ -std=c++17 example.cpp -o example `pkg-config libegt --cflags --libs` -pthread

Then, run.

./example

Screenshots

Widgets TextBox Example

Widgets CheckBox Example

Easing Animation Example

i18n Example

Car Dashboard Example

Animating Images Example

Monitor Example

Audio Player Example


License

EGT is released under the terms of the Apache 2 license. See the COPYING file for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].