Something went wrong. Try again.
Software renderer in C
Something went wrong. Try again.
889 B · 38 lines
C
at main
123456789101112131415161718192021222324252627282930313233343536373839#include "../backend.h"#include "../ve_renderer.h"
#define WINDOW_HEIGHT 480#define WINDOW_WIDTH 640
int main(int argc, char **argv) { ve_context ctx;
if (!backend_init(&ctx, "Gradient Triangle", WINDOW_WIDTH, WINDOW_HEIGHT)) { return 1; }
Color black = RGB(0, 0, 0); Color red = COLOR(255, 0, 0, 255); Color green = COLOR(0, 255, 0, 255); Color blue = COLOR(0, 0, 255, 255);
V2 p0 = {380, 80}; V2 p1 = {120, 400}; V2 p2 = {520, 400};
V2 center = {WINDOW_WIDTH / 2.0f, WINDOW_HEIGHT / 2.0f};
while (backend_event_loop(&ctx)) {
p0 = v2_rotate(p0, center, 0.1f * ctx.dt); p1 = v2_rotate(p1, center, 0.1f * ctx.dt); p2 = v2_rotate(p2, center, 0.1f * ctx.dt);
ve_clear(&ctx.ve_fb, black); ve_render_fps(&ctx);
Color colors[] = {red, green, blue}; ve_draw_triangle_gradient(&ctx.ve_fb, p0, p1, p2, colors); }; return 0;}