Compare commits
2 Commits
9f4137dac9
...
65dcd66f76
Author | SHA1 | Date | |
---|---|---|---|
65dcd66f76 | |||
5908cf3063 |
6
include/misc/misc_utils.h
Normal file
6
include/misc/misc_utils.h
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#ifndef MISC_UTILS_H
|
||||||
|
#define MISC_UTILS_H
|
||||||
|
|
||||||
|
#define ARR_LEN(ARR) sizeof(ARR) / sizeof(ARR[0])
|
||||||
|
|
||||||
|
#endif // !MISC_UTILS_H
|
@ -4,6 +4,11 @@
|
|||||||
#include "vector/vec.h"
|
#include "vector/vec.h"
|
||||||
#include "window/window.h"
|
#include "window/window.h"
|
||||||
|
|
||||||
void draw_line(window_t *wnd, vec2i_t p0, vec2i_t p1, colour_t colour);
|
typedef struct {
|
||||||
|
vec2i_t p0;
|
||||||
|
vec2i_t p1;
|
||||||
|
} line_t;
|
||||||
|
|
||||||
|
void draw_line(window_t *wnd, line_t line, colour_t colour);
|
||||||
|
|
||||||
#endif // !RASTERISER_H
|
#endif // !RASTERISER_H
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
#include "misc/misc_utils.h"
|
||||||
#include "rasteriser/rasteriser.h"
|
#include "rasteriser/rasteriser.h"
|
||||||
#include "vector/vec.h"
|
#include "vector/vec.h"
|
||||||
#include "window/window.h"
|
#include "window/window.h"
|
||||||
@ -22,8 +23,22 @@ int main(void) {
|
|||||||
// i32 h_min = ((i32)window.half_height) * -1;
|
// i32 h_min = ((i32)window.half_height) * -1;
|
||||||
// i32 h_max = (i32)window.half_height;
|
// i32 h_max = (i32)window.half_height;
|
||||||
|
|
||||||
vec2i_t a = {.x = -300, .y = 0};
|
line_t lines[] = {
|
||||||
vec2i_t b = {.x = 300, .y = 250};
|
(line_t){
|
||||||
|
(vec2i_t){.x = -300, .y = 0},
|
||||||
|
(vec2i_t){.x = 300, .y = 250},
|
||||||
|
},
|
||||||
|
(line_t){
|
||||||
|
(vec2i_t){.x = -200, .y = -100},
|
||||||
|
(vec2i_t){.x = 240, .y = 120},
|
||||||
|
},
|
||||||
|
(line_t){
|
||||||
|
(vec2i_t){.x = -50, .y = -200},
|
||||||
|
(vec2i_t){.x = 60, .y = 240},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
u32 count = ARR_LEN(lines);
|
||||||
|
|
||||||
while (running) {
|
while (running) {
|
||||||
while (SDL_PollEvent(&event)) {
|
while (SDL_PollEvent(&event)) {
|
||||||
@ -36,7 +51,9 @@ int main(void) {
|
|||||||
|
|
||||||
clear_window(&window, bg);
|
clear_window(&window, bg);
|
||||||
|
|
||||||
draw_line(&window, a, b, (colour_t){.colour = 0xffffffff});
|
for (u32 i = 0; i < count; ++i) {
|
||||||
|
draw_line(&window, lines[i], (colour_t){.colour = 0xffffffff});
|
||||||
|
}
|
||||||
|
|
||||||
swap_buffers(&window);
|
swap_buffers(&window);
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
|
#include "rasteriser/rasteriser.h"
|
||||||
#include "c_cpp_aliases/aliases.h"
|
#include "c_cpp_aliases/aliases.h"
|
||||||
#include "vector/vec.h"
|
#include "vector/vec.h"
|
||||||
#include "window/window.h"
|
#include "window/window.h"
|
||||||
|
|
||||||
void draw_line(window_t *wnd, vec2i_t p0, vec2i_t p1, colour_t colour) {
|
void draw_line(window_t *wnd, line_t line, colour_t colour) {
|
||||||
if (p1.x < p0.x) {
|
if (line.p1.x < line.p0.x) {
|
||||||
vec_swap(vec2i_t, p0, p1);
|
vec_swap(vec2i_t, line.p0, line.p1);
|
||||||
}
|
}
|
||||||
|
|
||||||
i32 x0 = p0.x;
|
i32 x0 = line.p0.x;
|
||||||
i32 y0 = p0.y;
|
i32 y0 = line.p0.y;
|
||||||
i32 x1 = p1.x;
|
i32 x1 = line.p1.x;
|
||||||
i32 y1 = p1.y;
|
i32 y1 = line.p1.y;
|
||||||
|
|
||||||
f32 a = ((f32)y1 - y0) / ((f32)x1 - x0);
|
f32 a = ((f32)y1 - y0) / ((f32)x1 - x0);
|
||||||
f32 y = y0;
|
f32 y = y0;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#include "scene/scene.h"
|
#include "scene/scene.h"
|
||||||
#include "c_cpp_aliases/aliases.h"
|
#include "c_cpp_aliases/aliases.h"
|
||||||
|
#include "misc/misc_utils.h"
|
||||||
#define ARR_LEN(ARR) sizeof(ARR) / sizeof(ARR[0])
|
|
||||||
|
|
||||||
internal const sphere_t spheres[] = {
|
internal const sphere_t spheres[] = {
|
||||||
(sphere_t){
|
(sphere_t){
|
||||||
|
Loading…
Reference in New Issue
Block a user