ADA is an easy cross platform OpenGL ES 2.0 library for creating apps for Windows, MacOS, Linux (with or without an X11 Window Manager) and WASM (Emscripten WebAssembly).
- Visual Studio 2019 or higher. Make sure to check "Desktop development with C++" and "Universal Windows Platform development" are installed
- A git client
- CMake (through Scoop is recommended)
brew install glfw3 pkg-config
For video support (using FFMpeg library LIBAV), also do:
brew install ffmpeg --build-from-source
sudo apt install git cmake xorg-dev libglu1-mesa-dev
For video support (using FFMpeg library LIBAV), also do:
sudo apt install ffmpeg libavcodec-dev libavcodec-extra libavfilter-dev libavfilter-extra libavdevice-dev libavformat-dev libavutil-dev libswscale-dev libv4l-dev libjpeg-dev libpng-dev libtiff-dev
sudo apt install git cmake libgbm-dev libdrm-dev libegl1-mesa-dev libgles2-mesa-dev
sudo dnf install git gcc-c++ cmake mesa-libGLU-devel glfw-devel libXi-devel libXxf86vm-devel
sudo yum install libXdamage-devel
For video support (using FFMpeg library LIBAV), also do:
sudo dnf install ffmpeg ffmpeg-devel
sudo pacman -S glu glfw-x11
For video support (using FFMpeg library LIBAV), also do:
sudo pacman -S ffmpeg
Follow emscripten installation instructions:
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
git pull
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
cd ..
git clone https://github.com/patriciogonzalezvivo/ada_example.git
cd ada_test
mkdir build
cd build
cmake ..
make
./hello_world
git clone https://github.com/patriciogonzalezvivo/ada_example.git
cd ada_test
mkdir build
cd build
cmake -DNO_X11=TRUE ..
make
./hello_world
git clone https://github.com/patriciogonzalezvivo/ada_example.git
cd ada_test
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake
make
python3 -m http.server
Then open http://localhost:8000/
This library is highly inspired on openFrameworks, a dear framework and community very close to my heart. The Mesh, Node and Camera clases are VERY similar. The reason to branch ADA was to minimize the amount of code, dependencies and be hable to add it through CMake.