From 6536ec9afb5a9116463c41dfefe06ea1e036580e Mon Sep 17 00:00:00 2001 From: tijani Date: Sun, 4 Aug 2024 16:37:42 +0000 Subject: [PATCH] Some house keeping git-svn-id: https://svn.tlawal.org/svn/ragar@10 618e81bd-0769-42e7-8608-769e73fecc77 --- src/ragar/ragar_main.c | 33 +++++++++++++++++++++++++++++++-- src/renderer/display.c | 2 +- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/ragar/ragar_main.c b/src/ragar/ragar_main.c index 5b13ab8..dd1cf14 100644 --- a/src/ragar/ragar_main.c +++ b/src/ragar/ragar_main.c @@ -6,8 +6,13 @@ #include "base/base_inc.h" #include "renderer/display.h" +#include "renderer/vector.h" #include "renderer/display.c" +#include "renderer/vector.c" + +Vec3 cube_points[9 * 9 * 9] = {0}; // 9 x 9 x 9 cube +Vec2 projected_points[9 * 9 * 9]; int is_running; @@ -15,6 +20,23 @@ void setup(void) { colour_buffer = (u32 *)malloc(sizeof(u32) * window_width * window_height); colour_buffer_texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, window_width, window_height); + + // Load vector array + int point_count = 0; + for (f32 x = -1; x <= 1; x += 0.25) { + for (f32 y = -1; y <= 1; y += 0.25) { + for (f32 z = -1; z <= 1; z += 0.25) { + Vec3 new_point = {.x = x, .y = y, .z = z}; + cube_points[point_count++] = new_point; + } + } + } +} + +// Orthographic projection +Vec2 project(Vec3 point) { + Vec2 projected_point = {.x = point.x, .y = point.y}; + return projected_point; } void process_input(void) { @@ -35,14 +57,21 @@ void process_input(void) { } } -void update(void) {} +void update(void) { + for (int i = 0; i < (9*9*9); i++) { + Vec3 point = cube_points[i]; + Vec2 projected_point = project(point); + projected_points[i] = projected_point; + } +} void render(void) { // FrameMarkStart("render"); + draw_grid(0xFFFFFFFF); + SDL_SetRenderDrawColor(renderer, 28, 450, 560, 255); SDL_RenderClear(renderer); - draw_pixel(400, 400, 0xFF839149); render_colour_buffer(); // clear_colour_buffer(0xFF384893); clear_colour_buffer(0xFF000000); diff --git a/src/renderer/display.c b/src/renderer/display.c index a5fa2d3..6d87c45 100644 --- a/src/renderer/display.c +++ b/src/renderer/display.c @@ -59,7 +59,7 @@ void draw_dots(u32 colour) { void draw_grid(u32 colour) { for (s32 column = 0; column < window_height; column++) { for (s32 row = 0; row < window_width; row++) { - if ((row % 50) == 0 || (column % 100) == 0) { + if ((row % 10) == 0 || (column % 100) == 0) { colour_buffer[(window_width * column) + row] = colour; } }