srp
software rendering pipeline
Loading...
Searching...
No Matches
triangle.h
Go to the documentation of this file.
1// Software Rendering Pipeline (SRP) library
2// Licensed under GNU GPLv3
3
8#pragma once
9
10#include "srp/framebuffer.h"
11#include "srp/shaders.h"
12#include "srp/vec.h"
13
18typedef struct SRPTriangle {
20 vec3* p_ndc[3];
21 vec3 ss[3];
23 bool edgeTL[3];
27 float lambda[3];
28 float lambda_row[3];
29 float dldx[3];
30 float dldy[3];
31 float invW[3];
33 size_t id;
35
41bool setupTriangle(SRPTriangle* tri, const SRPFramebuffer* fb);
42
51 SRPTriangle* triangle, const SRPFramebuffer* fb,
52 const SRPShaderProgram* restrict sp, void* interpolatedBuffer
53);
54
// ingroup Rasterization
void rasterizeTriangle(SRPTriangle *triangle, const SRPFramebuffer *fb, const SRPShaderProgram *restrict sp, void *interpolatedBuffer)
Definition triangle.c:73
bool setupTriangle(SRPTriangle *tri, const SRPFramebuffer *fb)
Definition triangle.c:113
Definition framebuffer.h:18
Definition shaders.h:93
Definition triangle.h:18
float dldy[3]
Definition triangle.h:30
SRPVertexShaderOut v[3]
Definition triangle.h:19
float dldx[3]
Definition triangle.h:29
vec2 minBP
Definition triangle.h:25
bool edgeTL[3]
Definition triangle.h:23
vec2 maxBP
Definition triangle.h:26
float lambda_row[3]
Definition triangle.h:28
size_t id
Definition triangle.h:33
vec3 edge[3]
Definition triangle.h:22
float lambda[3]
Definition triangle.h:27
float invW[3]
Definition triangle.h:31
vec3 * p_ndc[3]
Definition triangle.h:20
vec3 ss[3]
Definition triangle.h:21
bool isFrontFacing
Definition triangle.h:32
Definition shaders.h:34
Definition vec.h:18
Definition vec.h:22