summaryrefslogtreecommitdiff
path: root/src/core/rasterizer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/rasterizer.h')
-rw-r--r--src/core/rasterizer.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/rasterizer.h b/src/core/rasterizer.h
new file mode 100644
index 0000000..e35b24a
--- /dev/null
+++ b/src/core/rasterizer.h
@@ -0,0 +1,17 @@
+#ifndef _SOFTSHADEROOM_GEOMETRY_H_
+#define _SOFTSHADEROOM_GEOMETRY_H_
+
+#include "../math/math.h"
+#include "shader.h"
+
+void ssrR_putline(int x0, int y0, int x1, int y1, Color color);
+
+float ssrR_area(Vec2* v1, Vec2* v2, Vec2* v3); /*计算三角形面积,注意v1v2v3按逆时针顺序定义*/
+
+bool ssrR_barycentric(Vec2* A, Vec2* B, Vec2* C, Vec2* p, Vec3* out); /*计算重心坐标*/
+void ssrR_center(Vec2* A, Vec2* B, Vec2* C, Vec2* out); /*获得重心*/
+bool ssrR_ispointintriangle(Vec2* A, Vec2* B, Vec2* C, Vec2* p);
+
+void ssrR_triangle(Vec4* CA, Vec4* CB, Vec4* CC, Vert* A, Vert* B, Vert* C, Program* program, UniformCollection* uniforms); /*绘制三角形图元*/
+
+#endif \ No newline at end of file