diff options
author | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-10-17 21:44:44 +1100 |
---|---|---|
committer | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-10-17 21:44:44 +1100 |
commit | 70175cfce551a6b534771bd2b1dea6cfb417be1f (patch) | |
tree | f29381cde897b024ecb781ff63cd75c3a16f6434 /examples/cube.c | |
parent | a5f1733a09aa99379cf48ed326b4660fbc17cb25 (diff) |
starting on cube
Diffstat (limited to 'examples/cube.c')
-rw-r--r-- | examples/cube.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/examples/cube.c b/examples/cube.c index e69de29..6642e2a 100644 --- a/examples/cube.c +++ b/examples/cube.c @@ -0,0 +1,57 @@ +#include <celeritas.h> + +// vertices + +pipeline_handle draw_pipeline; +buf_handle cube_vbuf; +tex_handle texture; + +void draw() { + render_pass_desc d = {}; + gpu_encoder* enc = ral_render_encoder(d); + ral_encode_bind_pipeline(enc, draw_pipeline); + ral_encode_set_vertex_buf(enc, cube_vbuf); + ral_encode_set_texture(enc, texture, 0); + ral_encode_draw_tris(enc, 0, 36); + ral_encoder_finish_and_submit(enc); +} + +int main() { + core_bringup("Celeritas Example: Triangle", NULL); + + // create rendering pipeline + gfx_pipeline_desc pipeline_desc = { + .label = "Textured cube pipeline", + .vertex_desc = static_3d_vertex_format(), + .vertex = { + .source = NULL, + .is_spirv = false, + .entry_point = "cubeVertexShader", + .stage = STAGE_VERTEX, + }, + .fragment = { + .source = NULL, + .is_spirv = false, + .entry_point = "cubeFragmentShader", + .stage = STAGE_FRAGMENT, + }, + }; + + draw_pipeline = ral_gfx_pipeline_create(pipeline_desc); + + // create the cube geometry + geometry cube = geo_cuboid(1.0, 1.0, 1.0); + + // upload vertex data to the gpu + cube_vbuf = ral_buffer_create(64 * 36, cube.vertex_data); + + while (!app_should_exit()) { + glfwPollEvents(); + + ral_frame_start(); + ral_frame_draw(&draw); + ral_frame_end(); + } + + return 0; +}
\ No newline at end of file |