shithub: libgraphics

Download patch

ref: 6614b9c066b017be7b6a826904a6203ab6f2e9fe
parent: 39d66c58951286ec82b8ee283ad0dd42c479bbd4
author: rodri <rgl@antares-labs.eu>
date: Tue Apr 8 12:05:36 EDT 2025

render: replace the raster fn switch with a lut

there's no need to check for alien primitives,
the tilers already do that.

--- a/render.c
+++ b/render.c
@@ -377,6 +377,11 @@
 static void
 rasterizer(void *arg)
 {
+	static void(*rasterfn[])(Rastertask*) = {
+	 [PPoint]	rasterizept,
+	 [PLine]	rasterizeline,
+	 [PTriangle]	rasterizetri,
+	};
 	Rasterparam *rp;
 	Rastertask *task;
 	SUparams *params;
@@ -437,12 +442,7 @@
 
 		fsp.su = params;
 		task->fsp = &fsp;
-		switch(task->p.type){
-		case PPoint: rasterizept(task); break;
-		case PLine: rasterizeline(task); break;
-		case PTriangle: rasterizetri(task); break;
-		default: sysfatal("alien primitive detected");
-		}
+		(*rasterfn[task->p.type])(task);
 
 		_delvattrs(&v);
 		for(i = 0; i < task->p.type+1; i++)
--