An OpenGL ES based minimal rendering engine. Works on Linux desktop/server (with GLX/EGL), iOS/MacOS and Android.
We have switched to using vcpkg to manage dependencies. To build and install mineola under Linux, please install vcpkg first, set the $VCPKG_ROOT environment variable, and run the following commands:
$ mkdir build
$ cmake -S src -B build --preset={GLX|EGL}\
> -DCMAKE_BUILD_TYPE={Debug|Release|MinSizeRel|RelWithDebInfo} # default=Release
$ cmake --build build --target=install
Run the examples inside the build/apps directory:
$ cd build/apps
$ ./cloth # press P to run simulation, Q to exit
$ ./ocean
$ ./gltfview resrc/CesiumMan.glb # press P to play animation, Q to exit
For building inside NVidia GPU enabled containers (eg. nvcr.io/nvidia/cudagl), use or modify the provided Dockerfile.build. For example, to build a docker image with headless EGL based server library installed, use the following commands:
$ docker build -f Dockerfile.build -t {tag} .
$ docker run --gpus=all -it -v .:/mineola {tag}
The headers and library will be installed in /usr/local/include
and /usr/local/lib
.
To build and update the library inside the container, mount the repository directoy (eg. `/mineola-1.4.2'), and use the following command:
# inside docker
root:/$ cd mineola-1.4.2
root:/mineola-1.4.2$ cmake -S src -B build --preset=EGL
root:/mineola-1.4.2$ cmake --build build --target=install -j12
root:/mineola-1.4.2$ cd build
root:/mineola-1.4.2/build$ cpack
This will produce a zip archive containing all files need for deployment.
Download from the release section or build your own as demonstrated above to get the mineola-1.4.2-Linux.zip archive. To use the generated archive for app development, extract the contents into /usr/local:
# inside docker
root:/$ unzip mineola-1.4.2-Linux.zip
root:/$ cd mineola-1.4.2-Linux
root:/mineola-1.4.2-Linux$ cp -r * /usr/local/
Then in your project's own CMakeLists.txt, use
find_package(mineola)
target_link_libraries(app PRIVATE mineola::mineola)
Directly build your app inside the mineola docker image:
$ docker run --gpus=all -it -v {app_dir}:/{app_dir} fyshen/mineola:1.4.2-egl-ubuntu20.04
Then use the cmake instructions to build your app.
We use vcpkg and CMake to generate an XCode project for iOS development. Install vcpkg and latest cmake, then:
$ mkdir build
$ cmake -S src -B build --preset=iOS\
> -DCMAKE_BUILD_TYPE={Debug|Release|MinSizeRel|RelWithDebInfo} # default=Release
Use xcode to open the generated mineola.xcodeproj in the build directory.