draw.h

C++ software renderer

src/draw.h

493 B
#pragma once

#include "globals.h"
#include "renderer.h"
#include "util_math.h"

struct ScreenTriangle {
    vec3f points[3];
    vec2f uv_over_w[3];
    vec3f color_over_w[3];
    float inv_w[3];
    float ndc_depth[3];
    u32   mat_idx;
};

void clear_color_buffer(u32 color, Window *window);
void draw_line_grid(u32 color, Window *window, u8 spacing);
void draw_line(int x0, int y0, int x1, int y1, u32 color, Window *window);
void rasterize_triangle(ScreenTriangle *tri, Window *window);