{"id":15662068,"url":"https://github.com/mlomb/orbitengine","last_synced_at":"2026-03-02T21:39:02.705Z","repository":{"id":50704277,"uuid":"99012019","full_name":"mlomb/OrbitEngine","owner":"mlomb","description":"Another hobby cross-platform, multi-API graphics engine","archived":false,"fork":false,"pushed_at":"2021-08-28T16:07:17.000Z","size":10010,"stargazers_count":20,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-04T13:29:54.525Z","etag":null,"topics":["cmake","cross-platform","direct3d","engine","graphics","opengl","opengles"],"latest_commit_sha":null,"homepage":"https://doc.oe.mlomb.me","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mlomb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-01T14:46:41.000Z","updated_at":"2023-06-15T11:10:47.000Z","dependencies_parsed_at":"2022-09-18T06:53:54.492Z","dependency_job_id":null,"html_url":"https://github.com/mlomb/OrbitEngine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlomb%2FOrbitEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlomb%2FOrbitEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlomb%2FOrbitEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlomb%2FOrbitEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlomb","download_url":"https://codeload.github.com/mlomb/OrbitEngine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221147562,"owners_count":16764150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmake","cross-platform","direct3d","engine","graphics","opengl","opengles"],"created_at":"2024-10-03T13:29:58.021Z","updated_at":"2026-03-02T21:38:57.545Z","avatar_url":"https://github.com/mlomb.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://img.shields.io/travis/mlomb/OrbitEngine.svg?label=Linux/OSX/Android/Emscripten%20builds)](https://travis-ci.org/mlomb/OrbitEngine)\n[![Build Status](https://img.shields.io/appveyor/ci/mlomb/OrbitEngine.svg?label=Windows/Linux%20build)](https://ci.appveyor.com/project/mlomb/orbitengine)\n\n# OrbitEngine\nOrbitEngine is a cross-platform and multi-API graphics engine. It is a personal project.\n\nSupported APIs:\n* OpenGL \u0026 OpenGLES\n* Direct3D11\n\nSupported platforms:\n* Android\n* Emscripten\n* Linux\n* Windows\n\n## Dependencies\nCurrently, OrbitEngine is making use of this libraries:\n* [FreeType](https://www.freetype.org/), an open source library to render fonts\n* [FreeImage](http://freeimage.sourceforge.net/), an open source library to manage popular graphics images formats\n* [XShaderCompiler](https://github.com/LukasBanana/XShaderCompiler/), an open source library to cross compiler shaders\n* [Assimp](https://github.com/assimp/assimp/), an open source library to import and export 3d model formats\n\nAll are included as submodules.\n\n## Building\nOrbitEngine relies on the [CMake build system](https://cmake.org/) and requires a CXX11 compiler.\n\nDon't forget to update the submodules or clone the repositry with `--recursive`.\n\n### Windows\nYou can just run `cmake` and then compile it with Visual Studio.\n\n### Web (Emscripten)\nOn Windows, you must to have installed the [Emscripten SDK](https://kripken.github.io/emscripten-site/docs/getting_started/downloads.html) and the [Ninja build system](https://ninja-build.org/).\n\nThen, you have to run `cmake` with the Emscripten toolchain and the generator `Ninja`. For example:\n```shell\ncmake -GNinja -DCMAKE_TOOLCHAIN_FILE=\"%EMSCRIPTEN_SDK%\\cmake\\Modules\\Platform\\Emscripten.cmake\"\n```\nAfter that, you can run `ninja` on the output directory.\n### Android\nTo build for Android on Windows, you must have the Android NDK 25.2.5. The newer versions of the NDK deprecated the way we create the APK files. (This is something to refactor)\n\nIn you Application CMakeLists you should call the procedure `android_create_apk` to generate the APK file:\n\n```cmake\nif(ANDROID)\t\n\t# Make sure that the Android entry point isnt getting stripped, find a better solution\n\tset(CMAKE_SHARED_LINKER_FLAGS \"${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate\")\n\n\tinclude(${OrbitEngine_SOURCE_DIR}/CMake/Android/APK.cmake)\n\tandroid_create_apk(Sandbox \"${CMAKE_BINARY_DIR}/APK\" \"libApplication.so\" \"\")\nendif()\n```\nDon't forget to link it as a shared library!\n\nNow you run CMake with the Android toolchain. For example:\n```shell\ncmake -GNinja -DCMAKE_TOOLCHAIN_FILE=\"%ANDROID_NDK%\\build\\cmake\\android.toolchain.cmake\" -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-21\n```\nThe entry point is handled by the Engine, you should use the common `main`. This allows the code only be written once between platforms.\n\n### Linux\nYou can use CMake with Make.\n\nDon't forget to download these packages:\n```shell\n# X11\nsudo apt-get install libx11-dev\n# GL\nsudo apt-get install freeglut3-dev\n# GLES1 \u0026 GLES2 \u0026 EGL\nsudo apt-get install libgles1-mesa libgles2-mesa-dev\n```\n\n## License\nSee [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlomb%2Forbitengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlomb%2Forbitengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlomb%2Forbitengine/lists"}