|
2 | 2 | <img src="https://media.githubusercontent.com/media/lambda-sh/lambda/main/lambda/assets/logos/lambda_header.png" /> |
3 | 3 | </p> |
4 | 4 |
|
| 5 | +[](https://github.com/lambda-sh/lambda/actions/workflows/compile_lambda_rs.yml) |
| 6 | + |
| 7 | + |
| 8 | + |
5 | 9 | ## Table of contents |
6 | 10 | 1. [Description](#description) |
7 | 11 | 2. [API Documentation](#documentation) |
|
11 | 15 | 2. [Optional depedencies](#opt_deps) |
12 | 16 | 3. [Linux, Macos, Windows](#bash) |
13 | 17 | 5. [Getting started](#get_started) |
14 | | -6. [Planned additions](#plans) |
15 | | -7. [How to contribute](#contribute) |
16 | | -8. [Resources](#resources) |
| 18 | +6. [Examples](#examples) |
| 19 | +7. [Planned additions](#plans) |
| 20 | +8. [How to contribute](#contribute) |
| 21 | +9. [Resources](#resources) |
17 | 22 | ## Description <a name="description"></a> |
18 | 23 | Lambda is a framework for developing cross platform applications and workloads using Rust. |
19 | 24 |
|
@@ -88,37 +93,69 @@ If this works successfully, then lambda is ready to work on your system! |
88 | 93 | ## Getting started <a name="get_started"></a> |
89 | 94 | Coming soon. |
90 | 95 |
|
| 96 | +## Examples <a name="examples"></a> |
| 97 | +### Minimal |
| 98 | +A minimal example of an application with a working window using lambda. |
| 99 | +```rust |
| 100 | +cargo run --example minimal |
| 101 | +``` |
| 102 | + |
| 103 | +### Push Constants |
| 104 | +An example of using shaders with push constants to render a 3D image. |
| 105 | +```rust |
| 106 | +cargo run --example push_constants |
| 107 | +``` |
| 108 | + |
| 109 | +### Triangle |
| 110 | +An example using shaders to render a single triangle. |
| 111 | +```rust |
| 112 | +cargo run --example triangle |
| 113 | +``` |
| 114 | + |
| 115 | +### Triangles |
| 116 | +An example using shaders to render multiple triangles and keyboard input to move one of the triangles on screen. |
| 117 | +```rust |
| 118 | +cargo run --example triangles |
| 119 | +``` |
91 | 120 |
|
92 | 121 | ## Plans <a name="plans"></a> |
93 | | -- [x] Architecture support |
| 122 | +- ### Architecture support |
94 | 123 | - [x] x86 |
95 | 124 | - [x] arm64 |
96 | | -- [ ] Operating system support |
| 125 | +- ### Operating system support |
97 | 126 | - [x] MacOS |
98 | 127 | - [x] Linux |
99 | 128 | - [x] Windows 10/11 |
100 | 129 | - [ ] Xbox Series S|X (Long term goal) |
101 | 130 | - [ ] iOS (Long term goal) |
102 | 131 | - [ ] Android (Long term goal) |
103 | | -- [x] Rendering API support |
| 132 | +- ### Rendering API support |
104 | 133 | - [x] OpenGL |
105 | 134 | - [x] Vulkan |
106 | 135 | - [x] Metal |
107 | 136 | - [x] DirectX11 |
108 | 137 | - [x] DirectX12 |
109 | | -- [ ] Crates |
110 | | - - [ ] lambda-arch -- Architecture support |
111 | | - - [x] (WIP) lambda-platform -- Platform support |
112 | | - - [ ] (WIP) lambda-core -- Core library implementations |
113 | | - - [ ] lambda-cloud -- Cloud integrations |
114 | | - - [ ] (WIP) lambda -- The public Lambda API |
115 | | -- [ ] Tools |
116 | | - - [x] lambda-rs-demo -- 2D rendering demo |
117 | | - - [ ] lambda-rs-cube -- 3D rendering demo |
118 | | - - [ ] lambda-checker -- Checks system specifications against lambda requirements |
119 | | -- [ ] CI/CD |
120 | | - - [ ] Github action pipelines for creating downloadable builds from releases. |
121 | | - - [ ] Tests & benchmarking. |
| 138 | +- ### Crates |
| 139 | + - [x] (WIP) lambda-args -- Command line argument parsing. |
| 140 | + - [x] (WIP) lambda-platform -- Dependency wrappers & platform support. |
| 141 | + - [ ] lambda-cloud -- Cloud integrations. |
| 142 | + - [x] (WIP) lambda -- The public Lambda API. |
| 143 | +- ### Examples |
| 144 | + - [x] Minimal -- A minimal example of an application with a working window |
| 145 | + using lambda. |
| 146 | + - [x] Push Constants -- An example of using shaders with push constants to |
| 147 | + render a 3D image. |
| 148 | + - [x] Triangle -- An example using shaders to render a single triangle. |
| 149 | + - [x] Triangles -- An example using shaders to render multiple triangles and keyboard input to move one of the triangles on screen. |
| 150 | +- ### Tools |
| 151 | + - [x] obj-loader -- (WIP) Loads .obj files into lambda. Meshes need to be triangulated in order for it to render at the moment. |
| 152 | + - [ ] platform-info -- Utility for viewing information about the current platform. |
| 153 | +- ### CI/CD |
| 154 | + - [x] Github action pipelines for building lambda on all platforms. |
| 155 | + - [ ] Github action pipelines for creating downloadable builds from releases. |
| 156 | + - [ ] Tests & benchmarking. |
| 157 | + - [ ] Unit tests. |
| 158 | + - [ ] Nightly builds. |
122 | 159 |
|
123 | 160 | ## How to contribute <a name="contribute"></a> |
124 | 161 | Fork the current repository and then make the changes that you'd like to |
|
0 commit comments