{"id":18831823,"url":"https://github.com/p0ryae/trs_24","last_synced_at":"2025-04-14T04:16:57.373Z","repository":{"id":209932477,"uuid":"716412254","full_name":"p0ryae/TRS_24","owner":"p0ryae","description":"🚂 An OpenGL-Powered Game Engine in Rust (OpenGL 2.0+)","archived":false,"fork":false,"pushed_at":"2024-08-11T20:12:08.000Z","size":20912,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-27T18:11:46.722Z","etag":null,"topics":["android","engine","game-development","game-engine","gamedev","gameengine","opengl","opengl2","opengles","rust","trs-24"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/p0ryae.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-09T04:38:44.000Z","updated_at":"2024-08-21T20:04:02.000Z","dependencies_parsed_at":"2024-03-12T20:41:01.064Z","dependency_job_id":null,"html_url":"https://github.com/p0ryae/TRS_24","commit_stats":null,"previous_names":["p0ryae/trs_24"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0ryae%2FTRS_24","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0ryae%2FTRS_24/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0ryae%2FTRS_24/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p0ryae%2FTRS_24/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/p0ryae","download_url":"https://codeload.github.com/p0ryae/TRS_24/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248585338,"owners_count":21128976,"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":["android","engine","game-development","game-engine","gamedev","gameengine","opengl","opengl2","opengles","rust","trs-24"],"created_at":"2024-11-08T01:56:04.216Z","updated_at":"2025-04-14T04:16:57.353Z","avatar_url":"https://github.com/p0ryae.png","language":"Rust","readme":"# TRS_24\n\n![License](https://img.shields.io/badge/license-MIT%2FApache-blue.svg)\n[![Crates.io](https://img.shields.io/crates/v/trs_24.svg)](https://crates.io/crates/trs_24)\n[![Downloads](https://img.shields.io/crates/d/trs_24.svg)](https://crates.io/crates/trs_24)\n[![Docs](https://docs.rs/trs_24/badge.svg)](https://docs.rs/trs_24/latest/trs_24/)\n\nAn OpenGL-Powered Game Engine in Rust (OpenGL 2.0+) \n\n## Features\n- **Multidimential**: Supports both 3D and 2D rendering.\n- **Performance**: Engineered for optimal performance.\n- **Cross-Platform**: Supports Windows, MacOS, Linux, and Android builds.\n- **OpenGL 2.0 API**: Opens door for diverse GPU/iGPU compatibility.\n- **Bundler (WIP)**: Built-in bundling system for Windows, MacOS, Linux, and Android.\n\n## Getting Started\nFundamentally, using two files is the ideal approach for using the engine. Primary file `lib.rs` solely used for running the window on Android and building a shared object (*.so).\nSecondary file `main.rs` solely used for testing purposes on the host machine, and building for **Non-Android platforms. Both of these files need to be in the `src` directory.\n\nFor both of these files to co-exist, the following needs to be in `Cargo.toml`:\n```toml\n[lib]\n# Causes the production of a dynamic system library\ncrate-type = [\"cdylib\"]\n\n[[bin]]\nname = \"test\"\npath = \"src/main.rs\"\n```\nBoth files will have their own respectable structure:\n\n- Structure for `lib.rs`:\n   \n\u003e [!NOTE] \n\u003e Notice the necessity of `#![cfg(target_os = \"android\")]` at the first line, and the `#[no_mangle]` attribute before the `android_main` function.\n\u003e They NEED to exist, otherwise you'll run to errors and crashes for compliation and building, respectively.\n\n```rust\n#![cfg(target_os = \"android\")]\n\nuse trs_24::overture::*;\n\n#[no_mangle]\npub fn android_main(app: AndroidApp) {\n    // Creates an event loop for android platforms only.\n    let event_loop = EventLoopBuilder::new().with_android_app(app).build();\n\n    // The rest of your code here...\n    // 99% of the time, this is the place for the content of the \n    // main function in main.rs, excluding the event_loop definition \n}\n```\n\n- Structure for `main.rs`:\n```rust\nuse trs_24::overture::*;\n\npub fn main() {\n    // Creates an event loop for non-android platforms only.\n    let event_loop = EventLoopBuilder::new().build();\n\n    // The rest of your code here...\n}\n```\nℹ️ To try and view a fully complete example, clone the repository and head to the `example` directory.\n\n## Build \u0026 Bundle\n\nFull instructions for **Android** and **Non-Android** target platforms are within the wiki page [Build \u0026 Bundle](https://github.com/p0ryae/TRS_24/wiki/Build-\u0026-Bundle).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp0ryae%2Ftrs_24","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp0ryae%2Ftrs_24","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp0ryae%2Ftrs_24/lists"}